Cześć, mam tutaj taki kod z obsługą Fast PWM na Atmedze8A i nasuwa mi się kilka pytań.
1. Czy dobrze rozumiem, że rejestr ICR1 służy do ustawienia maksymalnie wartości jaką możemy wpisać do rejestrów OCR1A i OCR1B?
2. Rejestry OCR1A i OCR1B służą w tym przypadku do kontrolowania jasności diody?
3. Czy dobrze rozumiem, że współczynnik wypełnienia zależy tutaj od wartości jaką wpiszemy do ICR1, czyli np. ICR1 = 1000, OCR1A = 500 współczynnik wypełnienia równy 50%?
4. Dlaczego jak do OCR1A wpiszę 10, a do OCR1B = 500 do obydwie diody świecą tak jakby do obydwóch rejestrów wpisał wartość 10 i jak mogę zrobić, żeby jedna świeciła mocniejszym, a druga słabszym światłem?
5. Jeżeli to co napisałem w punkcie 3 to prawda to skąd nagle taka metoda wyznaczania współczynnika wypełnienia skoro jest on dany wzorem Czas impulsu / Okres * 100%?
6. Czy jeżeli wartość OCR1A == TCNT1 to mogę temu zdarzeniu odpowiada przerwanie TIMER1 COMPA, a dla OCR1B TIMER1 COMPB?
1. Czy dobrze rozumiem, że rejestr ICR1 służy do ustawienia maksymalnie wartości jaką możemy wpisać do rejestrów OCR1A i OCR1B?
2. Rejestry OCR1A i OCR1B służą w tym przypadku do kontrolowania jasności diody?
3. Czy dobrze rozumiem, że współczynnik wypełnienia zależy tutaj od wartości jaką wpiszemy do ICR1, czyli np. ICR1 = 1000, OCR1A = 500 współczynnik wypełnienia równy 50%?
4. Dlaczego jak do OCR1A wpiszę 10, a do OCR1B = 500 do obydwie diody świecą tak jakby do obydwóch rejestrów wpisał wartość 10 i jak mogę zrobić, żeby jedna świeciła mocniejszym, a druga słabszym światłem?
5. Jeżeli to co napisałem w punkcie 3 to prawda to skąd nagle taka metoda wyznaczania współczynnika wypełnienia skoro jest on dany wzorem Czas impulsu / Okres * 100%?
6. Czy jeżeli wartość OCR1A == TCNT1 to mogę temu zdarzeniu odpowiada przerwanie TIMER1 COMPA, a dla OCR1B TIMER1 COMPB?
Kod: C / C++