µC-Neuling schrieb:
> ist dies -zeilenorientiert-?
Ja
> oder liest die CPU das ganze Programm durch und schaltet dann beide
> Ausgänge unabhängig von der Wartezeit ein?
Nein.
Die CPU macht das was du ins Programm geschrieben hast. Und zwar genau
das.
> was ja eigentlich Sinn macht..
Das mag schon sein, das das für dich Sinn macht, ist aber nicht das was
passiert. Wenn du programmierst, dass die CPU 5 Sekunden Däumchen drehen
soll, dann dreht die auch 5 Sekunden Däumchen und macht sonst nichts
anderes. Interrupts kommen noch durch, aber abgesehen davon wird
Däumchen gedreht.
Wenn du etwas anderes willst, dann musst du das prorammieren oder ein
entsprechendes Framework benutzen.
Nur so als Anregung. Du hast geschrieben
1 | wenn Eingang 1 = low
|
2 | Warte 5sex
|
3 | ....
|
wie ist das denn jetzt? Beginnt die Wartezeit jedesmal wieder neu von
vorne, wenn der Eingang low ist? Bedenke, dass dein Arduino viele
tausend mal pro Sekunde den Eingang überwacht. D.h. wenn der Pin eine
halbe Stunde auf Low liegt, wie ist das dann mit der Wartezeit? Beginnt
jetzt praktisch die Wartezeit erst dann, wenn der Pin wieder auf High
gegangen ist? Oder fängt das an, wenn das erste mal Low detektiert wird?
Oder wie?
Was ist wenn während der Wartezeit der Pin auf High und dann wieder auf
Low geht? Beginnen die 5 Sekunden dann wieder von vorne?
Was ist wenn nach Ablauf der Wartezeit der Pin immer noch auf Low liegt?
Was soll dann passieren?
Fragen über Fragen. Der einzige, der sie beantworten kann, das ist der
Programmierer. Der muss sich diesen Fragen stellen und entsprechend im
Programm berücksichtigen.
PS: Wenn du erst mal ein wenig mehr Erfahrung hast, dann wirst du
schnell merken, dass ein "Warte x Sekunden" sowieso Mist ist. Das Um und
Auf, damit ein Programm scheinbar mehrere Dinge gleichzeitig machen
kann, besteht darin eben keine derartigen Däumchen-Dreh Aktionen zu
machen. Dazu gibt es andere Techniken.