Atmega88 Timer2 mit externem Takt

Gast #1418050
Lesenswert?

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
}
#1418056
Lesenswert?

Gregor schrieb:
> 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?

Und dein Problem lautet wie?

>
1
//[...]
2
>

Könnte es sein, dass der Watchdog läuft?
Was passiert, wenn du den Schlafmodus weglässt?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren