Hi
ich wollte gerne die OCR Werte automatisch berechnen lassen, weil ich in
der Entwicklungsphase mehrere Zeiten ausprobieren möchte. (Und in
Zukunft generell die Zeiten mit der Formel berechnen)
Kann ich das einfach so machen, oder gibt es bei zu großen Werten einen
Überlauf bzw. bei vielen "Teil"-aufgaben, abgeschnittene Werte?
Habe mir das so vorgestellt:
1 | #define F_CPU 4000000UL
|
2 | #define Prescaler 256
|
3 |
|
4 | #define time 50 //(in ms)
|
5 |
|
6 | //mit Taschenrechner gerechnet: 50ms bei 4MHz OCR1A = 781
|
7 |
|
8 | OCR1A = (F_CPU * 50) / Prescaler / 1000;
|
9 | //bzw.
|
10 | OCR1A = (F_CPU / Prescaler / 1000) * 50;
|
Geht das so?
weil
1.: 4.000.000 * 50 = 200.000.000 (Überlauf?)
2.: 4.000.000 256 1000 = 15,625 (15 oder 16?)
Wäre cool wenn ihr die Antwort allgemein haltet, vielleicht brauche ich
irgendwann mal andere Werte. z.B. F_CPU 1MHz, Prescaler 1024, etc.
Schönen Gruß
fortgeschrittener Anfänger