no show...........
no show...........
hab jetzt eigentlich nur noch ein problem & zwar wird der ausgang ab & zu selber gesetzt ohne das ne taste gedrückt wird bzw ein interrupt impuls auslöst?!
hat wer ne idee
aktuelle code, hab sogar ne doppelte abfrage drinnen aber komischer weise gehts noch immer nicht.
hilft da vielleicht der debounce befehl?
Code:$regfile = "m8def.dat" $baud = 9600 $crystal = 8000000 Set Pinb.2 Config Pinb.1 = Output 'LCD-Ausgabe Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 2 '' Interrupt Int0 config Config Int0 = Falling On Int0 Irq0 Enable Interrupts Enable Int0 Dim Irq0 As Word Do Cls Cursor Off Lcd Irq0 Print ''abfrage ob taste gedrückt & Kontrolle ob irq0 noch nicht über 800 Abfrage: If Pinb.2 = 0 Then Waitms 250 If Pinb.2 = 0 Then Gosub Rauf Else Gosub Halt End If End If Waitms 100 If Irq0 > 6 Then Gosub Halt Irq0 = 0 Else End If Loop '' bei Int0 wird irq0 um 1 erhöht Irq0: Incr Irq0 Return '' wenn 800 impulse ereicht dann motor stopp Halt: Portb = &B00000000 Waitms 100 Return '' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter Rauf: Portb = &B11111111 Return
Hast Du womöglich irgendeine Störeinstrahlung z.B. von einem Handy oder Schnurlostelefon das in der Nähe liegt?
hy leute
hab mir gestern den l293d vom c geholt und heute alles mal zusammengestöpselt.
http://focus.ti.com/lit/ds/symlink/l293d.pdf
der en eingang vom 293 hängt über 10k auf vcc (5v)
die motoransteuerung erfolgt über pd5/ pd6
in das programm hab ich ne zusätzliche abfrage für einen 2. taster eingebaut bzw das programm mit einer "rolo runter" subroutine erweitert
das ganze arbeitet eigentlich so wie es soll, nur ab & zu schaltet sich der motor ein, hab mal ein handy hingehalten und nen anruf getätigt aber da tut sich nichts, denk mal es liegt eventuell an der verdrahtung, da noch alles ein bisschen kreuz & quer liegt.
jedenfalls es funktioniert mal im groben so wie ich mir das seit langem gedacht hab.
taste 1 // motor links
taste2 // motor rechts
hier mal das programm
werd dem nächst den motor aufs fenster montieren und das rolo montieren, muss mir noch ein bisschen gedanken machen über die montierung.Code:$regfile = "m8def.dat" $baud = 9600 $crystal = 8000000 Set Pinb.2 Set Pinb.1 Config Pind.5 = Output Config Pind.6 = Output 'LCD-Ausgabe Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 2 '' Interrupt Int0 config Config Int0 = Falling On Int0 Irq0 Enable Interrupts Enable Int0 Dim Irq0 As Word Do Cls Cursor Off Lcd Irq0 Print ''abfrage ob taste gedrückt & Kontrolle ob irq0 noch nicht über 800 Abfrage: If Pinb.2 = 0 Then Waitms 250 If Pinb.2 = 0 Then Gosub Runter Else End If End If Waitms 100 If Pinb.1 = 0 Then Waitms 250 If Pinb.1 = 0 Then Gosub Rauf Else End If End If Waitms 100 If Irq0 > 10 Then Gosub Halt Irq0 = 0 Else End If Loop '' bei Int0 wird irq0 um 1 erhöht Irq0: Incr Irq0 Return '' wenn 800 impulse ereicht dann motor stopp Halt: Reset Portd.5 Reset Portd.6 waitms 100 Return '' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter Rauf: Set Portd.5 Reset Portd.6 Waitms 100 Return Runter: Reset Portd.5 Set Portd.6 Waitms 100 Return
eventuell werd ich vielleicht doch noch endschalter einbaunen sicherheitshalber, oder vielleicht genügt es ja wenn ich abgeschiermte leitungen verwende um störsignale zu vermeiden.
jedenfalls ein dank an alle die mir bei der realisierung geholfen haben!!!
hab in einem monat echt viel über meinen mega8 dazugelernt!!!!)))
mfg
piri
ps. weitere dokumentation folgt!
Sind das fertige Rolladenmotore oder baust du die Motorengeschichte selbst?
Käufliche Motoren sind Wechselstrommotore.
War das dein fertiges Program oben, die Irq-Variable paßt?
Gibt einiges zu verbessern:
Also, die Tasterabfrage würde ich mit
DEBOUNCE Px.y , state , label [ , SUB]
machen, da der Taster dadurch entprellt wird.
Dann würde ich den Watchdog benutzen:
CONFIG WATCHDOG = time
steht einiges in der Hilfe über die Befehle.
Gibt immer was zu verbessern![]()
Lesezeichen