Hallo Leute
Der Winterblues hat mir wohl das Hirn zugekleistert.
Ich nehme gerade eine Schaltung mit einem ATmega88
in Betrieb. Der Prozessor taktet mit 16MHz.
Mein erster Versuch: "Taste schalteteinen blaue LED"
hat noch prima geklappt.
Jetzt soll, mit Hilfe von Timer 1, die gleiche
LED mit etwa 0,4768Hz blinken. Dazu habe ich das folgende
kleine "Programm" geschrieben.
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 |
|
5 | //Makros für die Bitverarbeitung
|
6 | #define SETBIT(adr, bit) (adr |= (1<<bit))
|
7 | #define CLEARBIT(adr, bit) (adr &= ~(1<<bit))
|
8 | #define TOOGELBIT(adr, bit) (adr ^= (1<<bit))
|
9 | #define CHECKBIT(adr, bit) (adr & (1<<bit))
|
10 |
|
11 | //Anschlussklemmen der blauen 3mm LED auf dem Board
|
12 | #define led_blau PORTB3 //blaue LED
|
13 | #define port_led PORTB
|
14 |
|
15 |
|
16 | int main(void)
|
17 | {
|
18 | SETBIT(DDRB,DDB3); //blauer LED Pin zum Ausgangen machen
|
19 |
|
20 | TCCR1B = (1<<CS12); //Vorteiler 256
|
21 | TIMSK1 = (1<<TOIE1); //16-Bit Timer Überlauf nach 65536
|
22 | sei(); //16E6Hz / (65536*256) = 0,95Hz
|
23 |
|
24 | while(1)
|
25 |
|
26 | return 0;
|
27 | }
|
28 |
|
29 | ISR(TIMER1_OVF_vect)
|
30 | {
|
31 | TOOGELBIT(port_led,led_blau);
|
32 | }
|
Aber die LED geht jetzt gar nicht an ;-(
Wo ist das Problem??