Witam,
mam taką konfiguraację timera3:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w pętlie głównej while dzieje sięcoś takiego:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w funkcji obsługi przerwania:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Niestety timer zaraz po resecie wskakuje do przerwania. Odkryłem przestawiając różne bity, że odpowiedzialny za to jest TIM3->DIER = TIM_DIER_UIE; Włączenie przerwań Update Interrupt Enable powoduje natychmiastowe wskoczenie do przerwania.
Moim celem jest mieć ustawiony timer i startować go czasem żeby odmierzyć czas. Jeśli timer raz sobie wskoczy do przerwania po inicjalizacji potem działa już sprawnie. Niestety ja chcę nim czasem coś wyzwalać i jak tylko zainiacjalizuję timer mam już to co powinienem wyzwalać po jakimś odstępnie czasu.
Próbowałem w różnych miejscach zerować flagę UIF z rejestru SR albo ustawiać bit UIE w różnych miejscach ale nic to nie daje. Jak tylko zresetuję timer mam przerwanie (a czas obliczony na 2 sekundy) a potem już działa ok.
Jakieś pomysły?
UPDATE: źle się wyraziłem. TImer w tym przypadku wskakuje do przerwania zaraz po pierwszym ustawieniu bitu CEN czyli po pierwszym wciśnięciu przycisku a nie po resecie.