Witam wszystkich
mam problem z miganiem dwoma diodami, ale czysto sprzętowo, za pomocą timera 3 (kanały 3 i 4) w trybie outpu compare.
Pisząc program wzorowałem się na kodzie ze strony
http://en.radzio.dxp.pl/stm32vldiscover ... dware.html .
Mój kod różni się tylko tym, że nie wykonuje tutaj remmapu, ponieważ w moim uC (stm32f103vct6) TIM3_CH3 i TIM3_CH4 jest podłączony do wyjść PB0 i PB1 w alternate function jako default, a nie remap.
Nie mam pojęcia w czym jest problem ale to nie działa. Chce uzyskać miganie obu diodek co pół sekundy.
Oto mój kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Nie wiem też czy dobrze rozumiem działanie trybu output compare (nie rozumiem także czym się różni output compare od capture/compare , pojęcia te w reference manual są używane i nie do końca dostrzegam różnice między nimi). Myśle, że tryb output compare działa w następujący sposób, licznik zlicza od zera do wartości zapisanej w ARR, podczas zliczania gdy wartość licznika zrówna się z wartością CCRx to wyjście OC wystawia stan wysoki lub niski (w zależności od ustawień w rejestrze), następnie po przepełnieniu się licznika cały cykl zaczyna się od nowa.
Bardzo prosił bym o pomoc co robię źle, dlaczego to nie działa, wcześniej miganie diodek realizowałem poprzez badanie flagi UIF i poprzez przerwania i wszystko mi ładnie działało,
ale chciałbym nauczyć się obsługiwać timer czysto sprzętowo.
Z góry dzięki, pozdrawiam