Hallo habe folgende Frage: Ich verwenden den PIC 16F877 / programmierung in BASIC ist es möglich mittels eines Befehls (z.b BUTTON o.Ä) eine Variable bei Tastendruck im Hintergrund zu verändern. Später frage ich im Programm nach ob diese Variable gesetzt wurde, wenn ja --> best. Routine ?? PS: der Taster MUSS an PortD.3 hängen!! Das ganze sollte ohne Interrupt funktionieren!! Danke Mit freundlichen Grüßen Bernhard Schwärzler
Sowas sollte gehen. Das machen verschiedene meiner Programme, allerdings auf einem AVR... Was meinst du mit "im Hintergrund"? Das, was du schilderst ist prädestiniert für einen Interrupt und einer gewissen Parallelverarbeitung.
Ich meine dass der Programmverlauf nicht gestört werden sollte wie bei einem Interrupt sondern normal weiterlaufen. Später wird eine Variable abgefragt ob sie gesetzt ist oder nicht Mfg Bernhard
Bernhard wrote: > Ich meine dass der Programmverlauf nicht gestört werden sollte wie bei > einem Interrupt sondern normal weiterlaufen. Na ja. Eine kleine 'Störung' wirst du da immer in Kauf nehmen müssen. Ein einzelner µC kann nun mal nur eine Sache auf einmal machen. Die Frage ist aber eher: stört es, wenn der Prozessor seine momentane Aufgabe für wenige Nanosekunden unterbricht um das Button-Ereignis zu bearbeiten oder stört das nicht. In den meisten Fällen wird das nicht stören, wenn aber doch dann kannst du das Problem softwareseitig sowieso nicht in den Griff kriegen sondern musst auf externe Hardware ausweichen: Der Button kommt an ein Flip-Flip und dann hat das Programm alle Zeit der Welt irgendwann das Flip-Flip abzufragen, ob es gesetzt ist.
ja grundsätzlich würde es nicht stören, aber da der PortD.3 kein "Interrupt - port" ist müsste ich einen Timer - Interrupt machen. Diesen benötige ich aber für eine andere Sache. mfg bernhard
Dann lass doch den Timer Int laufen und jedesmal, wenn ein Overflow kommt, kannst du den Tasterpin abfragen und ggf. die Variable ändern. Habe sehr viele meiner Programme so geschrieben. Da wird z.B. Tastatur, Drehgeber, DCF-77, usw. abgefragt. Gruß, Tubie
Bernhard wrote: > ja grundsätzlich würde es nicht stören, aber da der PortD.3 kein > "Interrupt - port" ist müsste ich einen Timer - Interrupt machen. Diesen > benötige ich aber für eine andere Sache. Es ist nicht verboten, im Timerinterrupt mehrere Sachen zu machen. Ganz im Gegenteil, es wird sogar sehr häufig gemacht. Bei den neueren AVRs könnte man ohne Timer auskommen, da kann man fast jeden Pin als Interrupt definieren, auch mehrere. Peter
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.