HI Leute,
ich habe eine Anfängerfrage und ich glaube, da hakt es bei mir irgendwo
im Grundlagenverständnis. Ich weiß aber nicht wo.
Ich arbeite mit einem atmega8 und habe daran eine LED und zwei Buttons
angeschlossen.
Die LED soll nun einfach zur Übung leuchten, wenn eine der beiden
Buttons gedrückt wird.
Wenn ich diesen Code nutze, klappt auch alles:
1 | int
|
2 | main (void)
|
3 | {
|
4 | // Set Input (Button 1 und 2)
|
5 | PORTC = (1 << PC0) | (1 << PC1);
|
6 |
|
7 | // Set output (LED)
|
8 | DDRB = (1 << DDB1);
|
9 |
|
10 | while (1)
|
11 | {
|
12 | if (PINC & (1 << PC0) )
|
13 | {
|
14 | PORTB |= (1<<PB1);
|
15 | }
|
16 | else
|
17 | {
|
18 | PORTB &= ~(1 << PB1);
|
19 | }
|
20 | }
|
21 | }
|
Füge ich allerdings die Abfrage für den zweiten Button ein, dann klappt
gar nichts mehr:
1 | while (1)
|
2 | {
|
3 | if (PINC & (1 << PC0) )
|
4 | {
|
5 | PORTB |= (1<<PB1);
|
6 | }
|
7 | else if (PINC & (1 << PC1) )
|
8 | {
|
9 | PORTB |= (1<<PB1);
|
10 | }
|
11 | else
|
12 | {
|
13 | PORTB &= ~(1 << PB1);
|
14 | }
|
15 | }
|
Kann mir jemand verraten was ich falsch mache / falsch verstanden habe?
Beste Grüße