Hallo,
ist es möglich die Ports PB1 (OC1A) und PB2 (OC1B) unterschiedlich zu
"schalten".
Also zwei voneinander unabhänginge PWM-Signale auf PB1 und PB2 mit dem
Timer 1 auszugeben (ohne die Interrupt Service Routine (ISR)
aufzurufen).
Mit 1nem PWM Signal funktioniert das ja so auf Port PB1:
1 | //Timer 1
|
2 | TCCR1A = (1<<COM1A0); //Toogle OC1A
|
3 | TCCR1B = (1<<WGM12)|(1<<CS10); //Timer ein, Clock/1, CTC Modus
|
4 | OCR1A = 32000;
|
Jetzt soll auf PB2 aber ein anderes Signal sein, auf PB1 das gleiche wie
oben. Folgender Code sollte nicht funktionieren:
1 | TCCR1A = (1<<COM1A0)|(1<<COM1B0); //Toogle OC1A
|
2 | TCCR1B = (1<<WGM12)|(1<<CS10); //Timer ein, Clock/1, CTC Modus
|
3 | OCR1A = 32000;
|
4 | OCR1B = 64000;
|
Die LED sollte also auf PB1 doppelt so schnell blinken wie auf PB2.
Sinn sollte Sein für OC1A sollte auf OCR1A verglichen werden und für
OC1B mit OCR1B, aber das geht nicht. Es steht eigentl. auch im
Datenblatt das auf OCR1A verglichen wird. Für was ist dann OCR1B?
Was müsste verändert werden?
Danke
Stefan