Hallo Ich möchte mir mit einem ATmega32 eine Steuerung für ein Fahrgeschäft bauen. den Avr programmiere ich mit Bascom. Jetzt möchte ich, dass ich mit einem Taster den Motor so lange laufen lassen kann, wie ich den Taster drücke oder bis der Motor einen Endschalter schaltet. Ich habe scho versucht mit einer while-wend Schleife, dass hat aber nicht richtig funkioniert. Hat jemand einen Denkanstoss oder ein Programmschnipsel für mich?? Vielen Dank!
Taster, Motor, Bascom... - Habe ich hier mal gesehen: Beitrag "Re: Eine kleine Frage zur Programmierung" MfG
Vielen Dank für den Link. Aber da ich noch blutiger Anfänger in diesen Thema bin, hilft mir das nicht viel weiter...
Chris B. schrieb: > Taster drücke oder bis der Motor einen Endschalter schaltet. > Ich habe scho versucht mit einer while-wend Schleife, dass hat aber > nicht richtig funkioniert. > > Hat jemand einen Denkanstoss oder ein Programmschnipsel für mich?? Poste deinen Code! Im Prinzip ist dein Gedankengang ja gar nicht schlecht. Der Motor soll laufen, solange nicht gilt ( Taster ist losgelassen oder Endschalter ist erreicht ) Wahrscheinlich hast du dich irgendwo bei den UND ODER NICHT vertan. Das passiert schon mal, weil wir Menschen im täglich Leben bei derartigen Dingen sehr schlampig agieren. In diesem Zusammenhang ist auch der De'Morgan wichtig ( NICHT A ) UND ( NICHT B ) <==> NICHT( A ODER B )
Oke underdessen habe ich es selber geschafft.... Habe den Fehler selber gefunden. Habe vergessen den Endschalter ausserhalb der While-Wend Schleife vergessen abzufragen Hier der funktionierende Code
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
zumindest solltest du den Code einrücken, damit man besser sieht, wie die einzelnen Verschachtelungsebenen sind:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
den letzten Teil deiner Funktion solltest du dir noch einmal genauer ansehen. Und auch die do - Loop ist ein wenig sinnlos, wenn sowieso auf jeden Fall aus der Loop ausgestiegen wird. M was spricht gegen
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Die Funktion ist so ausgelegt, (wie deine auch) dass sie von einer anderen Stelle regelmässig aufgerufen werden muss.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.