|
Wyjście Spis treści Wstecz Dalej
Autor artykułu |
©2026 mgr Jerzy Wałaszek
|

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s
permission is not required when using copyrighted material in:
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

Generacja czasu martwego opiera się na dwóch 4-bitowych licznikach zliczających w dół, które odliczają czas martwy, co pokazuje rysunek powyżej. Przed generatorem czasu martwego znajduje się dedykowany preskaler, który może dzielić zegar timera/licznika 1 (PCK lub CK) przez 1, 2, 4 lub 8. Udostępnia to duży zakres czasów martwych do generowania. Preskaler jest sterowany dwoma bitami DTPS1[1:0] z rejestru we/wy pod adresem 0x23. Blok posiada również detektor zboczy narastającego i opadającego, który jest używany do wyzwalania okresu zliczania czasu martwego. W zależności od zbocza jedno z przejść przy zboczach narastających OC1x lub OC1x jest opóźniane, aż licznik zliczy do zera. Komparator jest używany do porównywania licznika z zerem i zatrzymywania wstawiania czasu martwego po osiągnięciu zera. Licznik jest ładowany 4-bitową wartością DT1xH lub DT1xL z rejestru we/wy DT1x, zależnie od zbocza na wyjściu generatora PWM generator, gdy rozpoczęte zostało wstawienie czasu martwego.

Długość okresu zliczania ustawia użytkownik przez wybór
ustawień preskalera w rejestrze 0x23 i wybór wartości czasu
martwego w rejestrze we/wy DT1x. Rejestr DT1x składa się z dwóch
4-bitowych pól: DT1xH
i DT1xL, które oddzielnie kontrolują okresy czasu martwego
wyjścia PWM i jego wyjścia komplementarnego. W ten sposób
narastające zbocza na końcówkach OC1x i
OC1x mogą
posiadać różne okresy czasu martwego. Czas martwy jest ustawiany
jako liczba preskalowanych taktów zegarowych generatora czasu
martwego.

| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0x23 | – | – | – | – | – | – | DTPS11 | DTPS10 | DTPS1 |
| Zapis/Odczyt | O | O | O | O | O | O | Z/O | Z/O | |
| Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Dedykowany preskaler czasu martwego znajdujący się przed generatorem czasu martwego może dzielić zegar timera/licznika 1 (PCK lub CK) przez 1, 2, 4 lub 8 udostępniając szeroki zakres czasów martwych, które mogą być generowane. Preskaler czasu martwego sterowany jest dwoma bitami DTPS1[1:0], które definiują współczynnik podziału preskalera wg poniższej tabelki.
| DTPS11 | DTPS10 | Podział zegara timera/licznika 1 |
| 0 | 0 | przez 1 (bez dzielenia) |
| 0 | 1 | przez 2 |
| 1 | 0 | przez 4 |
| 1 | 1 | przez 8 |
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0x25 | DT1AH3 | DT1AH2 | DT1AH1 | DT1AH0 | DT1AL3 | DT1AL2 | DT1AL1 | DT1AL0 | DT1A |
| Zapis/Odczyt | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
| Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Rejestr A wartości czasu martwego jest 8-bitowym rejestrem do zapisu/odczytu.
Opóźnienie czasu martwego na końcówkach OC1A i OC1A jest ustawiane przez wartość w rejestrze DT1A. Rejestr składa się z dwóch pól, DT1AH[3:0] i DT1AL[3:0], po jednym dla każdego komplementarnego wyjścia. Stąd różne czasy martwe można ustawić dla zbocza narastającego wyjścia OC1A i OC1A.
Czas martwy wyjścia OC1A. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
Czas martwy wyjścia OC1A. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0x24 | DT1BH3 | DT1BH2 | DT1BH1 | DT1BH0 | DT1BL3 | DT1BL2 | DT1BL1 | DT1BL0 | DT1B |
| Zapis/Odczyt | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
| Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Rejestr B wartości czasu martwego jest 8-bitowym rejestrem do zapisu/odczytu.
Opóźnienie czasu martwego na końcówkach OC1B i OC1B jest ustawiane przez wartość w rejestrze DT1B. Rejestr składa się z dwóch pól, DT1BH[3:0] i DT1BL[3:0], po jednym dla każdego komplementarnego wyjścia. Stąd różne czasy martwe można ustawić dla zbocza narastającego wyjścia OC1B i OC1B.
Czas martwy wyjścia OC1B. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
Czas martwy wyjścia OC1B. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.