Hi zusammen,
Möchte eine PWM mit - sagen wir mal - 10kHz und einem Tastverhältnis 50%
einstellen.
=> Prescaler auf CK/2 , ORC1B: 80d OCR1A: 40d
nach meiner Rechnung ergibt das 1,6MHz/2/80=10kHz
Raus kommen aber 112kHz!!
Ich gehe davon aus, dass ich ein Verständnisproblem habe aber ich komme
nicht drauf....
Kann mir jemand sagen, wie ich die Frequenz berechne und einstelle??
Danke und Gruß
1 | ; PB1 Ausgang PWM
|
2 |
|
3 | .include "tn15def.inc"
|
4 |
|
5 |
|
6 |
|
7 | rcall Init
|
8 | rjmp Main
|
9 |
|
10 | Init:
|
11 |
|
12 | ldi R16,0x00|(1<<PB1)|(1<<PB2)|(1<<PB3) ; PB1 als Ausgang
|
13 | out DDRB,R16
|
14 |
|
15 | ;PWM einstellen
|
16 |
|
17 | ldi R16,(0<<CS13)|(1<<CS12)|(1<<CS11)|(0<<CS10)|(1<<CTC1)|(1<<PWM1)|(1<<COM1A1)|(1<<COM1A0) ; invertierte PWM einsschalten -> Geschwindigkeit CK
|
18 | out TCCR1,R16
|
19 |
|
20 | ldi R16,0x50 ;Frequenz
|
21 | out OCR1B,R16
|
22 |
|
23 |
|
24 | ldi R16,0x28 ;Pulsweite einstellen
|
25 | out OCR1A,R16
|
26 |
|
27 |
|
28 | ret ;zurückspringen
|
29 |
|
30 | Main:
|
31 |
|
32 | nop
|
33 |
|
34 | rjmp Main
|