Ich habe das angehängte Programm geschrieben um möglichst schnell nacheinander den Port D einzulesen. D.h. sobald am INT0 eine steigende Flanke erscheint soll der Zustand von Port D immer wieder eingelesen werden. Dass solange erneut eine steigende Flanke kommt.Alternativ soll die Messung verworfen werden, wenn mehr als 8 mal (maxAbt) gemessen wurde. Und da ist das Problem. Die Variable "messung" wird in der ISR Funktion INT0_vect zurückgesetzt bevor der Schwellwert 9 erreicht wird und damit die ISR verlassen wird. Je nach Einstellung der Optimierungen 00 - 0s im AVRStudio bekomme ich auch anderes Verhalten. Was mach ich falsch?
Hat sich erledigt! Die Variable "stepZustand[maxAbt]" wurde einmal mehr benutzt als initalisiert, dabei überschrieb sie den Wert von "messung". Anbei das funktionierende Programm mit "stepZustand[maxAbt+1]".
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.