Ich hab ein kleines Programm geschrieben was eigenzlich auf einen
Tstendruck einen Zähler hochzählen soll und das Ergebnis auf 4
Leuchtdioden ausgeben soll.
Irgendwie hab ich das Gefühl das das Programm nur ein mal durchlaufen
wird.
Ich hab zum lernen ein AVR-C Tutorial von 2007. Ich hoffe das passt noch
halbwegs da ich Anfänger bin und noch nicht die Ahnung hab.
Hier mal das Programm:
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 | #define F_CPU 1000000UL
|
4 |
|
5 | int main (void) {
|
6 | DDRD= 0x0f; //Port D die unteren 4 Bit als Ausgang
|
7 | DDRB= 0b00000000;
|
8 | PORTB = 0x02;// pull Up Wiederstand für ALLE PinS aktiviert
|
9 |
|
10 |
|
11 |
|
12 | uint8_t tg=0;
|
13 | uint8_t taste=0;
|
14 | uint8_t dioden = 0;
|
15 | PORTD=0x0f;
|
16 | _delay_ms(500);
|
17 | PORTD=0x00;
|
18 | _delay_ms(100);
|
19 |
|
20 | while(1){
|
21 |
|
22 | if (!(PINB & (1<<PB1))){
|
23 | dioden++;
|
24 | PORTD=dioden;
|
25 | _delay_ms(100);
|
26 | loop_until_bit_is_set(PINC,PC3);
|
27 | }
|
28 | PORTD ^= (1<<PD3);
|
29 | _delay_ms(200);
|
30 | PORTD ^= (1<<PD3);
|
31 |
|
32 | //dioden &= 0x0f;
|
33 | //PORTD = ++dioden;
|
34 | //PORTD = taste;
|
35 | return 0;
|
36 | }
|
37 |
|
38 | }
|
Ich hoffe es kann mir mal einer erklähren warum die Diode an PD3 nicht
laufend blinkt.
MfG Fritz