Od pewnego czasu próbuję wykonać prosty falownik aby uruchomić silnik 3 fazowy. Ponieważ falownik nie ma mieć żadnych "wodotrysków" postanowiłem użyć do tego celu Atmegi8. Atmega steruje trzema sterownikami MOSFET IR21094. Generuje sobie trzy przebiegi przesunięte o 120 stopni korzystając z 3 wyjść PWM (OC1A, OC1B, OC2).
Co mogę robić źle? Poniżej kod programu:
Siedzę nad tym już jakiś czas i nie mam pojęcia co jest źle. Gdy każe mu przepisywać w rejestry od PWM'a wartości tablicy pwm1 przebieg wygląda ok. Natomiast gdy wpisuje wartości z tablic pwm2 lub pwm3 pojawia się szpilka na przebiegu co jest raczej niepożądane. Gdy wstawię wartości z tablicy pwm1 "szpilka" jest na samym szczycie sinusoidy i jej nie widać. Ewidentnie jest to problem kodu i nawrotu do k=0 ale gdzie popełniam błąd nie wiem.
Co mogę robić źle? Poniżej kod programu:
Kod: C / C++
Siedzę nad tym już jakiś czas i nie mam pojęcia co jest źle. Gdy każe mu przepisywać w rejestry od PWM'a wartości tablicy pwm1 przebieg wygląda ok. Natomiast gdy wpisuje wartości z tablic pwm2 lub pwm3 pojawia się szpilka na przebiegu co jest raczej niepożądane. Gdy wstawię wartości z tablicy pwm1 "szpilka" jest na samym szczycie sinusoidy i jej nie widać. Ewidentnie jest to problem kodu i nawrotu do k=0 ale gdzie popełniam błąd nie wiem.
