Hallo, ich möchte eine PWM mit einer Frequenz von 1kHz und einem Duty Cycle von 30% programmieren. Ich verwende einen AT90PWM316 mit 8MHz. Als TOP-Value möchte ich OCR1A (Mode 15) verwenden. Bei einem Prescaler von 8 brauche ich den Wert 999 für OCR1A als TOP-Value um eine PWM-Frequenz von 1kHz zu generieren. Wie kann ich aber nun den compare match setzen, wenn ich OCR1A bereits als TOP-Value verwendet habe?
Gast
#3068871
Hi >Wie kann ich aber nun den compare match setzen, wenn ich OCR1A bereits >als TOP-Value verwendet habe? Mit OCR1B. Oder du nimmst Mode14. Dann ist ICR1 der Tp-Wert und OCR1A der Compare-Wert. MfG spess
Danke! Werde ich gleich probieren!
Hallo, ich hab das jetzt versucht, erhalte aber am OC1B eine PWM mit 8Hz ? Eigentlich sollten es 1kHz sein. Hier der Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Gast
#3068985
Hi Zumindest ein Fehler ist da drin: >TCCR1A = (1 << COM1B1) + (1 << WGM11) +(1 << WGM10) ^^^^^^ >TCCR1B = (1 << WGM13) + (1 << WGM12) + (1 << WGM11) + (1 << WGM10) + (1 << CS11); MfG Spess ^^^^^^
Gast
#3068989
Hi Noch mal richtig: Zumindest ein Fehler ist da drin: >TCCR1A = (1 << COM1B1) + (1 << WGM11) +(1 << WGM10) ^^^^^^ >TCCR1B = (1 << WGM13) + (1 << WGM12) + (1 << WGM11) + (1 << WGM10) + (1 << CS11); ^^^^^^ MfG Spess
Oh ja! So, jetzt geht´s!
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.