Hallo allerseits,
ich habe folgendes Problem. Ich versuche grade einen simplen Timer zu
programmieren, der nach einer bestimmmten Zeit eine LED aus und eine
andere anschalten soll. Folgenden Code habe ich dazu geschrieben, wird
auch ordentlich compiliert, allerdings sagt er zu meiner for-schleife,
dass diese keine Funtion hat. Da sthe ich jetz auf dem Schlauch. Ich
glaube, dass ich noc was im Code vergessen habe..nur was?
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 |
|
5 |
|
6 | int main(void) //Hauptprogramm
|
7 | {
|
8 | int i;
|
9 | sei(); //globale Interrupts aktivieren
|
10 | DDRD |=0b01100000; //PD5 & PD6 Ausgang, Rest Eingang
|
11 | PORTD |=0b00100000; //PD5 high, PD6 low
|
12 | TCCR0 |= (1<<CS00)|(1<<CS02); //TIMER0 auf 1/1024 Quarz-Takt
|
13 | TIFR |=0b00000010; //Overflow Flag löschen
|
14 | TIMSK |= _BV(TOIE0);
|
15 |
|
16 | for(i;i<=150;i++)
|
17 | {
|
18 |
|
19 | while((TIFR&0b00000010)==0) //Overflow Flag abwarten
|
20 | {
|
21 | PORTD |=(1<<PD5); //PD5 immer noch high
|
22 | }
|
23 | TIFR |=0b00000010; //Overflow Flag löschen
|
24 | PORTD &=~(1<<PD5); //PD5 low
|
25 | PORTD |= (1<<PD6); //PD6 high
|
26 | }
|
27 | return 0;
|
28 |
|
29 | }
|
wer mag mir weiterhelfen oder sieht den/die Fehler?
Gruß Lars