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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.