Hallo liebe Community, ich komme wieder direkt zu meinem Problem und hoffe, dass ihr mir wieder helfen mögt. Ich habe ein kleines Lauflicht programmiert, welches mit 3 Tastern "gesteuert" wird. Pause, Start, Aus Das Pausieren und anschließende Starten funktioniert wunderbar, wenn ich allerdings aus dem "Aus" heraus starten möchte, läuft das Lauflicht nicht wirklich rund. "Start" definiert eine Startbedingung, wenn zuvor "Aus" war, diese wird nicht eingehalten. Manchmal funktioniert es, allerdings nur extrem selten. Meißtens leuchten einfach alle LED's. Ein Prellen der Taste sollte in dem Programm eigentlich kein Problem darstellen. Ich habe mal das Main-File angehängt und hoffe, dass ihr meinen Fehler finden könnt. Vielen Dank schonmal für eure Zeit, euren Einsatz weiß ich wirklich sehr zu schätzen!
Ps.: Ich weiß, dass es kein schöner Programmierstil ist. Ich stecke hier gerade noch in den Kinderschuhen und bin daher für jeden Verbesserungsvorschlag offen. Allerdings sollten die Vorschläge noch "Anfängertauglich" sein ;)
Beim start nach stopp wird die variable "start" nicht neu belegt. Was das für Konsequenzen hat, überlasse ich dem OP als Hausaufgabe.
facepalm Ich dachte, ich hätte alle "Startbedingungen" wiederhergestellt. Dem war wohl nicht so. Allerdings hat das mein Problem noch nicht gelöst. ich habe jetzt:
1 | if(!(PIND & (1<<PD0))) |
2 | {
|
3 | if(waraus==true) |
4 | {
|
5 | PORTB = 0x01; |
6 | waraus=false; |
7 | start=true; |
8 | } |
9 | los=true; |
10 | } |
hier die Startbedingung mit eingefügt, das Problem bleibt bestehen :/
bzw.: ein mal läuft das Lauflicht nach links durch, dann nicht mehr...
Ok, hab meine Hausaufgaben gemacht, jetzt funktioniert es. Vielen Dank für den Tip! Es gab natürlich noch ein paar andere Startbedingungen, die zurückgesetzt werden mussten...
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.