Hallo, Wie kann ich in BASCOM mittels eines Interrupts an den Anfang der Hauptprogrammschleife springen ? Momentan hab ichs mit jmp gelöst, jedoch springt er dann sofort wieder zu der Stelle wo er unterbrochen wurde. MfG, Neostrider
Das ist der Witz des interrupts. Nachher geht's dort weiter wo unterbrochen wurde. Wenn man sowas will : 1)im interrupt eine boolean setzen 2)in hauptprogramm dieses flag bafragen F
Einen Boolean sorry stehe grade aufm Schlauch was hat das mit ja nein zu tun ?
noch nie irgenein Flag gesetzt? Muss auch kein Boolean sein. Kannst auch nen String verwenden wenn dir danach ist. So z.B. "Interrupt" und "kein Interrupt". bye Frank
Gibt's keine Boolean in Bascom ? Waaa..... Hilfe.
gibts bestimmt, muss aber nicht sein. Geht schliesslich mit so ziemlich jeder Variablen. Ressourcensparend ist BASCOM eh nicht, da kommts darauf dann auch nicht mehr an. bye Frank
Robert Avr wrote: > Hallo, > > Wie kann ich in BASCOM mittels eines Interrupts an den Anfang der > Hauptprogrammschleife springen ? Kannst Du uns bitte erklären, warum man mittels eines Interrupts zum Anfang der Hauptschleife springen sollte? Ich bin eigentlich ganz froh, dass der AVR nach einem Interrupt seine normale Arbeit genau dort fortsetzt, wo er unterbrochen wurde. ...
Um einen BCD Schalter abzufragen und dann ins Hauptprogramm zu springen und das jeweilige unterprogramm auszuwählen. Ich kann nicht alles in die Hauptschleife packen, weil ich dann nicht weis wie ich Zeitkritische Schleifen, hell dunkel faden und so machen soll.
Robert Avr wrote: > Um einen BCD Schalter abzufragen und dann ins Hauptprogramm zu springen > und das jeweilige unterprogramm auszuwählen. Der BCD-Schalter (falls es wirklich einer ist und kein Drehgeber) braucht keinen Interrupt, dessen Zustand kann man pollen. Man liest also den Porteingang (PINx) ein, maskiert die benutzten Bits (ein BCD-Schalter hat meist 4 Bit), schiebt sie ggf. nach unten und hat eine Zahl (0..15) anhand der das Programm verzweigen kann. > Ich kann nicht alles in die Hauptschleife packen, Wieso nicht? Wo willst Du das denn sonst auswerten? > weil ich dann nicht > weis wie ich Zeitkritische Schleifen, hell dunkel faden und so machen > soll. Was meinst Du, was man in einer Hauptschleife alles parallel nebeneinander tun kann? Du darfst allerdings nicht versuchen, eine Arbeit "fertig" zu machen und mittels WAIT auf den nächsten Schritt zu warten. Mache stattdessen von jedem zu erledigenden Job nur einen einzigen Schritt, den nächsten Schritt machst Du dann in der nächsten Runde der Mainloop. Ich bremse in meinen (ASM-) Programmen die Mainloop meist noch mittels Timer aus, indem ich den AVR nach jedem Mainloop-Durchlauf bis zum nächsten Interrupt schlafen schicke. Es ist aber keine Frage der Programmiersprache, sondern eine Frage des Programmierstils. ...
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.