Hej!
Może jestem trochę monotematyczny jeśli chodzi o te PWM'y ale z moim
poprzednim problemem odnośnie uruchomienia 2 PWMów na Atmedze8 sobie
poradziłem.
Nie mogę niestety poradzić sobie z uruchomieniem aż 4 PWMów w
Atmedze16. Chcę mieć tylko różne wypełnienie, ale mogą chodzić na tej
samej częstotliwości. Czy ktoś się może zna i zapisał mi fragment kodu do
skonfigurowania 4 PWM'ów? (Udało mi się na Atmedze16 odpalić już 2,
zrobiłem analogicznie jak w Atmedze8:
//do Atmegi8:
TCCR1A = _BV(WGM10) | _BV(WGM11) | _BV(COM1A0) | _BV(COM1B0) |
_BV(COM1A1) | _BV(COM1B1);
TCCR1B = _BV(CS10);
DDRB = _BV(PB1) | _BV(PB2);
// i potem w kodzie zmiana wypełnienia:
OCR1A = jakas_wartosc_pwm;
OCR1B = jakas_wartosc_pwm_2;
//KONIEC
W Atmedze16 2 pierwsze PWMy zaprogramowałem analogicznie,
oczywiście uwzględniając zmiany położenia PWMów (są na innych pinach)
Na rejestrach OCR1A i OCR1B wszystko działa idealnie;
Nie wiem jednak, jak pobudzić do działania dwa pozostałe.
Co muszę dopisać do tego, co mam wyżej?
/* zmiany w kodzie do PWMów Atmegi16 w porównaniu do 8'ki:/*
//zamiast DDRB = _BV(PB1) | _BV(PB2);
//DDRD = _BV(PD4) | _BV(PD5);
--> kolejne PWMy znajdują się z tego co pamiętam na PD7 i PB3.
Proszę o odzew i dziękuję za ew. pomoc.
KoTu
Może jestem trochę monotematyczny jeśli chodzi o te PWM'y ale z moim
poprzednim problemem odnośnie uruchomienia 2 PWMów na Atmedze8 sobie
poradziłem.
Nie mogę niestety poradzić sobie z uruchomieniem aż 4 PWMów w
Atmedze16. Chcę mieć tylko różne wypełnienie, ale mogą chodzić na tej
samej częstotliwości. Czy ktoś się może zna i zapisał mi fragment kodu do
skonfigurowania 4 PWM'ów? (Udało mi się na Atmedze16 odpalić już 2,
zrobiłem analogicznie jak w Atmedze8:
//do Atmegi8:
TCCR1A = _BV(WGM10) | _BV(WGM11) | _BV(COM1A0) | _BV(COM1B0) |
_BV(COM1A1) | _BV(COM1B1);
TCCR1B = _BV(CS10);
DDRB = _BV(PB1) | _BV(PB2);
// i potem w kodzie zmiana wypełnienia:
OCR1A = jakas_wartosc_pwm;
OCR1B = jakas_wartosc_pwm_2;
//KONIEC
W Atmedze16 2 pierwsze PWMy zaprogramowałem analogicznie,
oczywiście uwzględniając zmiany położenia PWMów (są na innych pinach)
Na rejestrach OCR1A i OCR1B wszystko działa idealnie;
Nie wiem jednak, jak pobudzić do działania dwa pozostałe.
Co muszę dopisać do tego, co mam wyżej?
/* zmiany w kodzie do PWMów Atmegi16 w porównaniu do 8'ki:/*
//zamiast DDRB = _BV(PB1) | _BV(PB2);
//DDRD = _BV(PD4) | _BV(PD5);
--> kolejne PWMy znajdują się z tego co pamiętam na PD7 i PB3.
Proszę o odzew i dziękuję za ew. pomoc.
KoTu