patrick bateman schrieb:
> Bezugnehmend auf [[Beitrag "Schnelles Schalten mit Interrupt 2"]]
>
> Im Fall der Interrupt wird ausgelöst und der Port geschaltet...
>
>
1 | >
|
2 | > ISR (TIMER1_COMPA_vect)
|
3 | > {
|
4 | > PORTA |=(1<<PA0); // falls kein Puls PA0 aktivieren
|
5 | > }
|
6 | >
|
>
> wie lange wird der Port geschaltet oder bleibt der dann aktiv?
Das sind jetzt aber schon Grundlagen.
Warum soll der denn von alleine einen anderen Zustand einnehmen.
Das wäre ein klein wenig ungeschickt, wenn ein µC da ein Eigenleben
entwickelt. Ein stink normaler Portpin (also keiner der auf
Spezialfunktion wie PWM oder dgl. geschaltet wurde) behält seinen
Zustand bei, bis dein Programm ihn ändert. Hast du denn nie LED blinken
lassen?
> kann man
> auch hier ein Unterprogramm starten lassen, das eine Endlosschleife
> ausführt?
können tust du schon. Aber dann kommt das Programm nie aus der
Endlosschleife zurück und daher wird dann auch nie der INterrupt fertig
und da während der Behandlung eines Interrupts alle Interrupts gesperrt
sind, kommt dann auch kein anderer Interrupt mehr durch. Ganz abgesehen
davon, dass dann auch der Stack nie aufgelöst wird. etc.
d.h. 'können' tust du schon. In dem Sinne, dass dich keiner daran
hindern kann. Aber schlau ist es nicht.
>
> kann man globale Interrupts mit sei(); auch erst nach einem Tastendruck
> aktivieren?
sicher. Warum soll man das nicht können.
Der µC kann sich ja nicht wehren. Was du programmierst, das macht der.
Die Frage ist halt immer, ob das was du programmierst auch Sinn ergibt.
> oder ist das ungeschickt? Ich würde das Programm gern erst
> aktivieren, wenn man eine Button drückt.
Das 'Programm aktivierst' du überhaupt nicht. Denn 'das Programm' läuft,
sobald der µC Saft bekommt.
Aber nichts und niemand hindert dich daran, dass du dir zb Variablen
einführst, die ganz per Abfragen dazu führen, dass Programmteile
übersprungen werden, wenn die Variablen bestimmte von dir definierte
Werte haben.
Und wieder die Frage:
Hast du denn nie mit den üblichen Anfänger-Übungen angefangen, also LED
einschalten, LED ausschalten, LED blinken lassen, diverse LED-Muster
blinken lassen, Lauflicht von links nach rechts, von rechts nach links
etc. etc. etc.
Das rächt sich eben jetzt alles, wenn man denkt das braucht man alles
nicht.