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



Teraz jest 28 wrz 2024, o 11:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 21 gru 2012, o 11:37 
Offline
Użytkownik

Dołączył(a): 27 mar 2012
Posty: 511
Lokalizacja: Sląsk
Pomógł: 14

Witam
Mam taki kłopot że Musze zrobić timer programowy który co określony czas będzie zmieniał stan diody na przeciwny.
To jest opis w skrócie tego co chcę zrobić.
Przyjmijmy że co 3us , 300us, 3000us ma mrugać nasza dioda
Zlepiłem taki kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Żeby diody tak mrugały to trzeba ustawić, że przerwanie timera ma być co 1us czyli 1MHz
Jednak ja widzę jak one mrugają jak to możliwe? Przecież to jest bardzo duża częstotliwość!!
Na pewno coś źle policzyłem ale co?
Proszę o pomoc. Będę bardzo wdzięczny.

_________________
Programowanie to styl życia :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 gru 2012, o 12:09 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27296
Lokalizacja: Szczecin
Pomógł: 1041

Panowie, panowie panowie .... :( no bo się rozpłaczę zaraz :(

no ile razy mam powtarzać, że już 1ms rozdzielczości czasowej dla timerów programowych to jakiś pomysł z KOSMOSU, a tu proszę kolega zapędził się jeszcze dalej - dla timerów programowych zachciało mu się 1us !!!!!!! to już pewnie podpowiedź Alfa z planety Melmak :(

proszę jednak wrócić do książki do rozdziału o wstępie do systemów czasu rzeczywistego i poczytać troszeczkę jak się dobiera rozdzielczość czasową i dlaczego to tak ważne oraz dlaczego jeśli programujemy w C to w zasadzie nie powinna ona być mniejsza niż 10ms !

Poza tym co to za nieziemskie miganie diodą LED co 300us albo jeszcze lepiej co 3us ..... no proszę chociaż troszeczkę się zastanowić - bo jeśli kolega chce odróżniać to własnym okiem i widzi różnicę pomiędzy miganiem diody co 3us od migania co 300us to przepraszam - no może ja czegoś nie wiem a kolega jest matrixem. Nie mówię tego broń boże kąśliwie ... jeśli tak to odbierzesz to przepraszam ....

ale zacznij testy od rozdzielczości czasowej 10ms tak jak to opisuję w książce i poczytaj dlaczego tak - a jak nie zrozumiesz czegoś to wtedy dopytaj ok? chętnie pomogę wtedy ....

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 gru 2012, o 12:16 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Z opisu wynika, że wywołujesz przerwanie teoretycznie co 8 cykli maszynowych. A ile cykli maszynowych trwa procedura przerwania? Na moje oko zanim skończysz dekrementować zmienne Timer to licznik timera już postawi flagę do następnego przerwania. A gdzie reszta programu w pętli głównej. No i obsługa LCD co każdy obieg pętli głównej to niezły hardcor. Stan żadnej z diod się nie zmieni dopóki nie zakończysz obsługi wyświetlacza. I nie ma znaczenia jak szybko będzie napierniczał timer programowy.

_________________
sig off ;(



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO