Hallo, das Programm soll am PB0 ein Rechtecksignal ausgeben, Der Takt dazu wird mit einem Frequenzgenerator auf PB6 eingespeist. Ich habe keine Ahnung wo mein Fehler liegt. Ich benutze AVR Studio 4, der build läuft ohne Warnungen durch. Kann jemand helfen?
1 | #include <avr/io.h> |
2 | #include <avr/interrupt.h> |
3 | #include <avr/sleep.h> |
4 | |
5 | #define F_CPU 1000000
|
6 | |
7 | int main (void) //Benutzt Timer2, hat 8Bit |
8 | {
|
9 | DDRB |= (1 << PB0); // LED an Pin12 |
10 | DDRB |= (0<<PB6); // PB6 Eingang |
11 | TCCR2B |= (1 << WGM12); // Timer 2 in CTC mode |
12 | ASSR |= (1<<AS2); // Ext. Taktquelle an TOSC1 |
13 | TIMSK2 |= (1 << OCIE1A); // Enable CTC interrupt |
14 | sei(); // Enable global interrupts |
15 | TCCR2B |= ((0<<CS20)|(0<<CS21)|(1<<CS22)); // Prescaler 31,2Hz |
16 | OCR2A = 64; // Vergleichswert |
17 | for (;;) |
18 | {
|
19 | set_sleep_mode(SLEEP_MODE_PWR_SAVE); |
20 | sleep_mode(); // in den Schlafmodus wechseln |
21 | }
|
22 | }
|
23 | |
24 | ISR(TIMER2_COMPA_vect) |
25 | {
|
26 | PORTB ^= (1 << 0); // Toggle Pin12 |
27 | }
|