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



Teraz jest 25 lis 2024, o 13:49


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 30 lis 2014, o 01:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Witam

Czasem zdarza się zamigać ledem w jakiejś częstotliwości którą odczyta ludzkie oko, po prostu najzwyklejsze miganie. Okazuje się że przykłady w większości oparte są na delay który marnuje czas - a ja chciałbym zaprezentować trochę inne podejście nie marnujące czasu.

Najlepiej na przykładzie pokaże o co mi chodzi:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wyżej popularne podejście do migania ledem co sekundę.

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


Tak można fajnie mierzyć jakieś nie precyzyjnie odstępy czasowe nie zatrzymując głównej pętli aplikacji, w makrze BEGIN... argument pierwszy jest nazwą zmiennej pomocniczej i przy okazji nazwą sekcji kodu który ma się wykonać co zadany czas w argumencie drugim, jak nie trudno się domyślić są to milisekundy tzn co ile milisekund ma zostać wykonany kod pomiędzy BEGIN_WAITMS a END_WAITMS .
To wszystko, a prostych zastosowań jest bardzo wiele, jak np wygaszanie LEDa po jakimś czasie, wyłączenie piszczyka po jakimś czasie itd itd.

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


Bardzo dobrze się to sprawdza na mikrokontrolerach ARM gdzie praktycznie standardowo mamy przerwanie generowane co 1ms w celu inkrementacji SysTickCount, natomiast w AVR też to jest możliwe uzyskać taką zmienną.

Pozdrawiam
XBary



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