Moin.

Wieder mal ein neues Problem. An nem ATMega2560-Modul (von Robotikhardware) ist ja an TOSC1/TOSC2 ein 32768Hz-Uhrenquarz. Hab jetzt versucht, den für die Uhr zu verwenden, was aber nicht klappt.

Hier die relevanten Codeteile:
Code:
void Clock_Start(ui8_t timer)
{
  TIMSK2 |= (1<<TOIE2);
}

void Clock_Init(void)
{
  TIMSK2 &= ~((1<<OCIE2A)|(1<<OCIE2B)|(1<<TOIE2));    // Disable any interrupts from Timer 2
  ASSR |= (1 << AS2);                                 // Select 32768 Hz Clock
  TCCR2A = 0;                                         // Standard timer (No Counting, No PWM)
  TCCR2B = 0 | (1<<CS22) | (1<<CS20);                 // Prescaler = 128
  TCNT2 = TCNT2_REL;                                  // Reload
  while(ASSR & ((1<<TCR2BUB)|(1<<TCR2AUB)|(1<<TCN2UB)));    // wait until clock has switched
  TIFR2 |= ((1<<OCF2A)|(1<<OCF2B)|(1<<TOV2));         // Clear Interrupt flags
  ONBOARD_LED_DDR |= (1 << ONBOARD_LED_PIN);
}

ISR (SIG_OVERFLOW2)
{
  TCNT2 = TCNT2_REL;
  ONBOARD_LED_PORT ^= (1 << ONBOARD_LED_PIN);
}
Das Programm selbst bleibt bei der "while"-Anweisung stehen; ohne das while läuft zwar der Rest vom Programm; die ISR wird jedoch nicht angesprungen (was man sonst an einer blinkenden LED sehen würde)

Sieht hier jemand nen Fehler?

mfG