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



Teraz jest 25 lut 2025, o 08:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 20 sty 2017, o 13:11 
Offline
Użytkownik

Dołączył(a): 27 wrz 2014
Posty: 32
Pomógł: 0

Chciałbym nauczyć się jak używać timera z preskalerem.

[ sorry ale tym razem poleciał warn dla kolegi szanownego - poprawiłem tytuł wątku - żeby był małymi literami i tego proszę się trzymać na przyszłość - mirekk36 ]

Potrzebuję najprostrzy z możliwych przykład np.
Wykorzystując Timer, Preskaler i przerwania zapalać diodę.

Muszę wykorzystać przykładowo:

timer.c

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


i main.c

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


Chciałbym w momencie wystąpienia przerwania zmienić stan diody.
Trzeba przestawić licznik przerwania tak by można zaobserwować miganie diody.
W momencie wystąpienia przerwania zmienić stan na pinie.

Wiem, że to nie ma większego sensu chodzi mi tylko o zrozumienie jak muszę poprawić te kody i jak je połączyć bym mógł wykorzystywać przerwanie po odliczeniu przez timer odpowiedniej ilości czasu.



Ostatnio edytowano 20 sty 2017, o 14:12 przez urchin, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2017, o 13:15 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1085
Pomógł: 73

Zapomniałeś o globalnym zezwoleniu na przerwania sei();



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2017, o 13:23 
Offline
Użytkownik

Dołączył(a): 27 wrz 2014
Posty: 32
Pomógł: 0

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



czy tych plików: main.c i timer.c nie trzeba jakoś połączyć?



Ostatnio edytowano 20 sty 2017, o 14:13 przez urchin, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2017, o 13:43 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1085
Pomógł: 73

po sei(); wpisz led_init(); oraz while(1){};

------------------------ [ Dodano po: 1 minucie ]

W procedurze obsługi przerwania zmieniaj stan diody na przeciwny


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2017, o 14:01 
Offline
Użytkownik

Dołączył(a): 27 wrz 2014
Posty: 32
Pomógł: 0

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


i zadziałało miga dioda 8.

Opóźnienie wykonania kodu w przerwaniu nie ma sensu, zrobiłem tak by nauczyć się wykorzystywać przerwanie.

Dzięki za pomoc.



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ł: Bing [Bot] i 0 gości


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO