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



Teraz jest 24 mar 2026, o 14:40


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 27 lip 2013, o 15:46 
Offline
Nowy

Dołączył(a): 19 lip 2013
Posty: 1
Pomógł: 0

Otóż sprawa jest taka, że napisałem programik do odczytywania przycisków z klawiatury i wyświetlania ich wartości na 7 segmentowym.

Samo odczytywanie i wyświetlanie działa bez problemu, jedynie problem jest z użyciem timera.

Poniższy kod działa prawidłowo (proszę nie starać się dogłębnie analizować, chodzi tylko o część z timerem co wyjaśnie nieco niżej):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdy zamiast tej pętli sprawdzającej flagę czy timer już się przepełnił :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wykorzystam pętlę która działa dopóki nie wystąpi przerwanie, to wszystko się sypie :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zmienna koniec jest zmieniana w przerwaniu na =1 żeby wyjść z pętli, oczywiście dopisałem do jej definicji volatile


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




Konfiguracja timera jest dokładnie ta sama, tyle że dochodzi uruchomienie przerwań przez TIMSK oraz sei().

Wskazywana powyżej pętla while(koniec==0) albo w ogóle się nie wykonuje, albo trwa zdecydowanie krócej niż 0,5 sekundy przez które powinna, zanim pojawi sie przerwanie (nie jestem tego w stanie określić na oko :P)

Naprawdę doprowadza mnie to do białej gorączki, jeżeli pomnożę OCR1A = 7812 razy np 4 (czyli timer liczy do 2 sek) to pętla raz działa dobrze a raz znowu zachowuje się jakby przerwanie występowało po ułamku sekundy.

Co jest nie tak ?



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: 1 ] 

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