Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 24 sty 2025, o 04:03


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 19 lis 2016, o 11:50 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 31
Pomógł: 0

Witam,

mam taką konfiguraację timera3:

Składnia: [ Pobierz ] [ Ukryj ]
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:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


w funkcji obsługi przerwania:

Składnia: [ Pobierz ] [ Ukryj ]
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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2016, o 21:02 
Offline
Użytkownik

Dołączył(a): 29 lip 2014
Posty: 195
Pomógł: 44

Witam,
poniżej masz prawidłową sekwencję inicjalizującą ten timer. Kluczem do sukcesu jest rejestr EGR :-).
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdrawiam, QuadMan.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2016, o 21:22 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 31
Pomógł: 0

Niestety czegoś takiego nie mam:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


:(

Szukałem ale ta definicja bitu jest jakaś dziwna.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2016, o 23:10 
Offline
Użytkownik

Dołączył(a): 29 lip 2014
Posty: 195
Pomógł: 44

Witam ponownie.
To zostało z "czasów" SPL, bit bit b0, nie mam w tej chwili dostępu do kompa, pewnie poprawnie będzie tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdrawiam, QuadMan.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2016, o 11:55 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 31
Pomógł: 0

Bardzo dziękuję, sprawdziłem pobieżnie i wygląda, że działa. Próbowałem eksperymentowaćz bitem UIF z rejestru SR ale nie przynosił pożądanego efektu. Tzn. przynosił, ale tylko jeśli w pętli głównej był sam if{...}; jeśli tylko dodawałem jakąś funkcję to przestawało to działać.

Jeśli znajdę coś jeszcze to podzielę się doświadczeniami, może komuś się przyda.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO