Hallo Leute
Ich hab hier nen ATmega32, der, wenn die Variable "Wuerfel" auf 1
gesetzt ist, einen Motor einschalten soll und, wenn PINB,7 gedrückt (auf
null gesetzt) ist, den Motor wieder ausschalten soll.
Code:
1 | case 4: // Zucker ausgeben Teil 1
|
2 | if (wuerfel==0)
|
3 | {menu = 6;}
|
4 | if (wuerfel==1)
|
5 | {menu = 5;}
|
6 | break;
|
7 | case 5: // Teil 2
|
8 | PORTA = 0x01;
|
9 | loop_until_bit_is_clear(PINA,7);
|
10 | PORTA = 0x00;
|
11 | menu++;
|
12 | break;
|
Wenn wuerfel also null ist wird der Teil (case 5) übersprungen. Das
macht er auch. Wenn wuerfel aber 1 ist, springt er wie gewollt auch in
case 5 und schaltet den motor an. Nach schätzungsweise 100ms schaltet er
ihn aber wieder ab. Egal ob der Taster gedrückt ist oder nicht. Hab mit
Multimeter und Oszi schon nachgemessen welche Spannung vom Taster kommt.
Er ist aber nicht dauerhaft gedrückt.
Liegt das Problem am Code?
Mit freundlichen Grüßen
Valentin S.