Hallo zusammen,
ich versuche erneut die pwm an meinem Atmega168 zu programmieren nur
leider mit mäßigen erfolg.
1 |
|
2 |
|
3 | void main(void) {
|
4 |
|
5 | DDRD = (1 << PD6 );
|
6 |
|
7 |
|
8 | TCCR1A = (1<<COM1A1) | (1<<WGM11);
|
9 | TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);
|
10 | ICR1 = 0xFFFF;
|
11 |
|
12 | OCR1A = 0x3FFF;
|
13 |
|
14 | while (1) {}
|
15 |
|
16 | return 0;
|
17 |
|
18 | }
|
Ich verstehe an diesem Tutorial zwei sachen absolut nicht
1. was bedeutet ICR1 = 0xFFFF ?
2. der Atmega168 hat so wie ich das sehe 3 PWM Ausgänge PD3, PD5 und
PD6.
lt. DB;
PD6 (PCINT22/OC0A/AIN0)
PD5 (PCINT21/OC0B/T1)
PD3 (PCINT19/OC2B/INT1)
Ist es dann richtig wenn ich OCR1A einfach in OCR0A für PD6 ändere und
bekomme ich dann bei einem "OCR0A" Wert von 128 nur 50% der Spannung an
PD6?
Danke für eure Erläuchtung.