Hallo, habe mit nachfolgendem Text so meine Probleme. Mit einer Taste soll eine "Sub" aufgerufen werden, die dann losläuft. Das klappt soweit, wenn es sich um einen "Durchgang" handelt. Sobald das Unterprogramm aber eine Schleife (hier eine simple Blinkvariante) darstellt (Do-Loop) kann man natürlich nicht zur nächsten "Sub" weiterspringen. Einzige Möglichkeit wäre der RESET-Taster. While- wend habe ich getestet, braucht aber einen weiteren Taster. Die Möglichkeit einen Interrupt extern bekomme ich nicht hin. Wer kann mir was raten? Leider war eine Suche ohne Erfolg, darum dieser Thread. MFG Holger $regfile = "2313def.dat" Config Pind.0 =Input 'Taster Config Portb = Output Pind.0 = 1 Dim A As Byte Afg: A = 0 Do Debounce Pind.0 , 0 , Cnt , Sub Loop End Cnt: Incr A If A = 1 Then Gosub Eins If A = 2 Then Gosub Zwei If A = 3 Then Gosub Drei If A = 4 Then Goto Afg Return Eins: 'Sub1 'Do Portb.0 = 1 Waitms 750 Portb.0 = 0 Waitms 750 'loop Return Zwei: 'Sub2 'Do Portb.1 = 1 Waitms 350 Portb.1 = 0 Waitms 350 'Loop Return Drei: 'Sub3 'Do Portb.2 = 1 Waitms 200 Portb.2 = 0 Waitms 200 'Loop Return
Moin Holger, Du musst die Interrupts erstmal definieren und Enable nicht vergessen. Du kannst die Interrupts auch in der Unterprogramm schleife sperren, so dass sie zuerst abgearbeitet werden muss. Zum Blinken einer LED würde ich aber immer Timer verwenden, weil sonnst Dein Programm unnötig steht (350ms ist ne Menge). Das Thema ist sehr schön in der Bascom Doku beschrieben, empfehle eh das Handbuch auszudrucken ! (Wenn man Einsteiger ist) mfg Oliver
Hallo , danke zuerst ! Die Hilfe hatte ich sowieso gedruckt, aber ich werde nicht so richtig schlau daraus. Die Freischaltung des Interrupts mit ...Enable interrupt... habe ich eingefügt. Aber was muß die Interruptroutine ISR enthalten. Ich habe sie als Sub-Routine zwar angefügt, aber was muß rein? Da ich ja keinen TIMER verwende , brauch ich ihn ja nicht auf "0" zu setzen. Wie wird er in einer Schleife gesperrt ? Vielleicht könntest Du mir das etwas erläutern? Danke und fF noch. (frohes Fest noch) Holger
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.