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