Wert einer Variable mit digitalem Input ändern

OP (Firma: FOS FFB) #5833067
Lesenswert?

Servus,
Ich würde gerne mit einem digitalen Input den Wert einer Integervariable 
i zu ändern. Jedoch ändert sich i nicht und bleibt null. Deswegen wird 
aus dem Feld immer der nullte Wert auf den Ausgang gegeben. Wäre nett 
wenn mir jemand verraten könnte was ich dafür in den code schreiben 
muss.
Danke
Angehängte Dateien:
Gast #5833251
Lesenswert?

Max M. schrieb:
> Jedoch ändert sich i nicht und bleibt null. Deswegen wird
> aus dem Feld immer der nullte Wert auf den Ausgang gegeben.

Laut Programm Du verwendest 2 Eingänge. Du änderst die Variable mit 
einem 1
 auf Eingang 1, aber der Ausgang wird nur dann aktualisiert wenn der 2. 
Eingang auch 1 ist. Ist es so gewollt? Ich gehe davon aus, dass alle 
Ein- und Ausgänge richtig initialisiert sind.
Gast #5833292
Lesenswert?

Deine variable i läuft immer über 8, weil der conrontroller bei jedem 
Schleifendurchlauf (Vermutlich im Mhz Bereich) inkrementiert. Abhilfe 
schafft die Abfrage einer zusätzlichen Variable. War der Eingang schon 
HI dann zähle nicht. Erst nachdem wieder ein LOW registriert wurde und 
damit die Blockvariable zurückgesetzt wurde darf weitergezählt werden.
Gast #5834401
Lesenswert?

Walter K. schrieb:
> warum beendet Return die Funktion Main() nicht?

Tut sie das nicht? Das bin ich anders gewohnt. Indiesem Zusammenhang 
sollte man hinterfragen, welches Programm die CPU denn nach main() 
ausführt. Der avr-gcc lässt die CPU dann in einer Endlos-Schleife auf 
der Stelle treten. Andere Compiler lassen sie vielleicht ins leere 
laufen, was eventuell irgendwann einen Neustart bewirkt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren