PLL beeinflußt Timer0 des ATtiny261

OP #2160156
Lesenswert?

Hallo,

mein Code soll alle 100 µs ein kurzen Puls (1 µs) an einem Pin ausgeben.
Dazu habe ich folgendes geschrieben:
1
int main()
2
{
3
//  InitAVR_PLL();    // configure clock with PLL    
4
  InitAVR_ADC();    // init A/D-converter
5
  InitAVR_PWM();    // init PWM
6
  InitAVR_IO();    // define I/O-pins
7
  InitAVR_Timer0();  // define Timer0
8

9
  sei();        // activate interrupts
10
  while(1);
11
}

Das funktioniert auch solange gut, bis ich den PLL aktiviere. Dann löst 
der Timer nicht mehr alle 100 µs aus sondern nur noch alle ~130 µs.

Verdopple ich den Timer auf 200 µs, schafft es der µC, in der 
vorgegebenen Zeit Interrupts auszuführen.

Verringere ich den Timer auf 50 µs geht, zeigt er mir immer noch ~130 µs 
an.

Ich habe auch getestet, ob es an den anderen Funktionen liegt, aber 
diese zu deaktivieren und nur PLL aktivieren verlängerte die Abtastzeit 
von 50 µs auf ~140 µs.

Woran liegt das?

Vielen Dank,
laberkeks
Gast #2160163
Lesenswert?

Falls es sein sollte, dass die PLL irgendwas mit dem Interrupt zu tun 
hat, könnte es sein, dass die Rechenzeit in einem höher priorisierten 
Interrupt zu lang ist und den ganzen Laden aufhält.
MfG

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