Hallo,
ich möchte gerne ein 38kHz Signal an meinem AtMega32 augeben um eine IR
Fernbedienung nachzubilden.
Habe im Datenblatt gelesen für eine Fast PWM müssen folgende
Einstellungen vorgenommen werden
1 | int main (void) {
|
2 |
|
3 | //fast PWM
|
4 | DDRD |= (1<<PD5); // Ausgang schalten
|
5 | TCCR1A |= (1 << WGM12) | (1 << WGM11);
|
6 | TCCR1B |= (1 << WGM13) | (1 << CS10);
|
7 |
|
8 | //Formel zur Berechnung von TOP als ICR1
|
9 |
|
10 | ICR1 = ((16000000 / 38000) - 1); //AVR läuft mit 16MHz
|
11 | OCR1A = ((16000000 / 38000) - 1)/4 ; // Tastverhältnis von 1:4
|
Am e*scope kommt auch alles schön und gut an, leider Stimmt die
Periodenlänge nicht.
eigentlich müsste ich eine Periodendauer von 0,0263ms bekommen.
Berechne ich es wie oben, wie im Datenblatt, bekomme ich aber die
doppelte Periode.
Klar kann ich einfach einen Teiler 2 einbauen - aber wie kommt das zu
stande? Was habe ich übersehen?
Bin über jeden Hinweis dankbar :)
btw: wieso werden LaTeX Formel so groß dargestellt?