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
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
