Hallo zusammen, ich scheine in diesem Gebiet doch etwas mehr eingerostet zu sein als ich dachte... Ich hätte gerne, dass mein Bord mir kurz nach dem einschalten einen Port schaltet. Dies soll jedoch nur nach dem einschalten passieren. Mein erster Gedanke war:
1 | #ifndef F_CPU
|
2 | #define F_CPU 3686400UL
|
3 | #endif
|
4 | |
5 | #include <avr/io.h> |
6 | #include <util/delay.h> |
7 | |
8 | |
9 | int main(void) |
10 | {
|
11 | DDRC = 0b00000000; |
12 | DDRB = 0b00100111; |
13 | DDRD = 0b10000000; |
14 | PORTC = 0b00111100; |
15 | _delay_ms(2000); |
16 | PORTB = 0b00100000; |
17 | _delay_ms(1000); |
18 | |
19 | while(1) |
20 | {
|
21 | if(bit_is_clear(PINC,2)) |
22 | {
|
23 | PORTB = 0b00000100; |
24 | }
|
25 | PORTB = 0b00000000; |
26 | if(bit_is_clear(PINC,3)) |
27 | {
|
28 | PORTB = 0b00000010; |
29 | }
|
30 | PORTB = 0b00000000; |
31 | if(bit_is_clear(PINC,4)) |
32 | {
|
33 | PORTB = 0b00000001; |
34 | }
|
35 | PORTB = 0b00000000; |
36 | if(bit_is_clear(PINC,5)) |
37 | {
|
38 | PORTD = 0b10000000; |
39 | }
|
40 | PORTD = 0b00000000; |
41 | }
|
42 | }
|
Jedoch schaltet er den Port immer wieder. Sollte das Programm nicht in der while(1) Schleife laufen und auf die Schalter warten? Was hab ich da falsch gemacht?