@ Alex S. (sirius7)
>was muss ich eigentlich beachten beim wählen eines Prescaller?
Die englische Rechtschreibung ;-)
>z.B. möchte ich eine ADC Wandlung mit 10 Hz vornehmen. Dazu würde ich
>Timer in CTC Mode nutzen und OCR-Vergleichswert berechnen.
Ja.
>Die Formel für Vergleichswert ist ja
Nicht ganz.
>Aber ich frage mich, ob es irgendwelche Richtlinien für Prescaller gibt.
Nicht wirklich.
>Da würden ja eigentlich Prescaller-Werte 1024 und 64 beide passen.
Wirklich? Bei Prescaler 64 und F_CPU=16MHz kommt raus ORC = 24999
Das schafft nur Timer1 mit 16 Bit. Timer0 kann das nicht, der aber bei
neueren AVRs auch den CTC Modus kann.
>Wie wird eine solche Entscheidung getroffen?
Praktisch braucht man in den meisten Programmen eine Zeitbasis, sprich
einen Timer-Interrupt mit 1-100ms. Dabei nimmt man meist den kleinsten,
benötigten Wert und leitet alle langsameren daraus per Software und
Zählern (Variablen) ab.
1 | // 1ms Timer
|
2 |
|
3 | isr(timer1) {
|
4 | static cnt_100ms;
|
5 |
|
6 | cnt100ms++;
|
7 | if (cnt100ms==100) {
|
8 | cnt100ms=0;
|
9 | // mach was alle 100ms
|
10 | }
|
11 | }
|