Gast
#181088
Hallo,
in meinem Projekt nutze ich ADC, Timer0 und Timer2 (jeweils PWM), RS232
- quasi fast alles was es gibt und es funktioniert einwandfrei ...
Nur der Timer1 bereitet mir Probleme.
Hier mein code:
void CTimer::Init()
{
TCCR1A = 0x00;
TCCR1B = 0x1d; // Prescaler 1024
OCR1AH = (15625 & 0xff00) >> 8;
OCR1AL = (15625 & 0x00ff); // 2sec bei 8MHz
Start();
}
void CTimer::Start()
{
TCNT1H = 0x00; // timerval auf 0 zurücksetzen
TCNT1L = 0x00;
TIMSK |= 0x10; // Timer erneut aktivieren
}
ich hab dazu noch eine Interruptroutine:
SIGNAL (SIG_OUTPUT_COMPARE1A)
{
// blabla
}
Der Timer läuft von 0 bis 0xfffe und bleibt dann stehen - die
Interruptroutine wird nie ausgeführt ... Normalerweise hab ich in
meiner Interruptroutine noch ein TIMSK |= 0x10 drin ...
Laut dem Datenblatt des ATMEGA16 hab ich alles richtig gemacht ...
Weiß jemand, wo mein Problem liegt?
Wie gesagt - alles andere funktioniert ...