ATTINY24, a PWM z wyjściem przeciwsobnym - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: ATTINY24, a PWM z wyjściem przeciwsobnym (/watek-attiny24-a-pwm-z-wyj%C5%9Bciem-przeciwsobnym) |
ATTINY24, a PWM z wyjściem przeciwsobnym - aj123 - 07-08-2020 Witajcie. Sytuacja wygląda w ten sposób; potrzebuję zaprogramować uC attiny24 do generowania przebiegu PWM o zmiennym wypełnieniu na wyjściu OC1A oraz tego samego przebiegu, ale o odwróconym stanie i w zgodnej fazie na wyjściu OC1B. W zasadzie najprościej byłoby generować tylko jeden sygnał PWM, a następnie przy pomocy tranzystora PNP dorobić drugie, przeciwsobne wyjście, ale; - skomplikuje to konstrukcję - potrzebuję mieć również możliwość programowego ustawienia stanu niskiego na obu tych wyjściach (to też da się zrobić na tranzystorach, ale jeszcze bardziej skomplikuje układ, a miejsca jest niewiele) Podsumowując; nie wiem w jaki sposób ustawić rejestry timera żeby na dwóch wyjściach generował komplementarny PWM w taki sposób aby nie występowała sytuacja, w której na obu wyjściach jednocześnie będzie stan wysoki. Natomiast, w moim przypadku, kwestię deadtime-u oraz częstotliwości generowanego przebiegu można pominąć. Pamiętam, że kiedyś chyba zrobiłem coś podobnego na arduino z użyciem biblioteki TimerOne, ale w tym przypadku arduino jest jedynie programatorem dla wspomnianego uC, natomiast biblioteka TimerOne go nie obsługuje. Będę wdzięczny za pomoc RE: ATTINY24, a PWM z wyjściem przeciwsobnym - Agregacik - 08-08-2020 A nie da się w ten deseń: digitalWrite(OC1B,!digitalRead(OC1A)); Pomysł z kategorii zwariowanych RE: ATTINY24, a PWM z wyjściem przeciwsobnym - aj123 - 10-08-2020 Ty tak na poważnie? RE: ATTINY24, a PWM z wyjściem przeciwsobnym - Agregacik - 10-08-2020 No nie próbowałem, zwykle jak odpowiadam to albo wiem albo to przetestowałem. Ta odpowiedź była na zasadzie spróbuj. Jak nie działa to do kosza i już. Jak wiesz, że takie coś jest niemożliwe to napisz słówko. Ja raczkuję w programowaniu i na pewno nigdy nie będę sprinterem RE: ATTINY24, a PWM z wyjściem przeciwsobnym - kaczakat - 11-08-2020 Zobacz ten temat: PWM przesuniete w fazie RE: ATTINY24, a PWM z wyjściem przeciwsobnym - aj123 - 12-08-2020 Chyba nie do końca o to chodzi, a przynajmniej tak wynika z filmów zamieszczanych tam przez autorów. Owszem, mają dwa wyjścia PWM i zależność, że jeśli na wyjściu A jest wypełnienie 25% to na wyjściu B jest 75%, ale brakuje tej synchronizacji, że stan wysoki na wyjściu B jest _tylko_ wtedy, gdy na wyjściu A jest stan niski. RE: ATTINY24, a PWM z wyjściem przeciwsobnym - aj123 - 13-08-2020 Naprawdę, nikt nic? RE: ATTINY24, a PWM z wyjściem przeciwsobnym - Jarewa0606 - 13-08-2020 Nie można timer ustawić na przepełnienie, i przerwaniu machać pinami?? Timer w locie prze konfigurować i mamy zmienną PWM i częstotliwość. A jedno wyjście jest synchronizowane z drugim i mozemy mieć przeciwne stany.. Tylko pewnie zbyt dużej częstotliwości nie można mówić.. RE: ATTINY24, a PWM z wyjściem przeciwsobnym - aj123 - 13-08-2020 Generalnie nie zależy mi na częstotliwości. Myślę, że te kilkaset Hz wystarczy. Jak ustawić ten timer? RE: ATTINY24, a PWM z wyjściem przeciwsobnym - Jarewa0606 - 13-08-2020 to zalezy jaką chcesz częstotliwość Ale to będzie wyglądało mniej więcej tak, Ustaw timer1 do przerwania ISR(TIMER1_COMPA_vect) w przerwaniu ISR(TIMER1_COMPA_vect) prze konfiguruj timer na przerwanie ISR(TIMER1_COMPB_vect) a w przerwaniu ISR(TIMER1_COMPB_vect) prze konfiguruj go na przerwanie ISR(TIMER1_COMPA_vect) i w każdym przerwaniu machaj pinami dwóch wyjść .... w jednym i drugim przerwaniu będzie trzeba ustawić OCR1A i OCR1B a wypełnienie to własnie stosunek ich czasów... Wiec jak chcesz częstotliwość stała 1kHz to suma OCR1A i OCR1B musi być zawsze równa 1ms... |