f
Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 548

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 549

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/page_header.php on line 343
And-Tech :: Zobacz temat - Funkcja Wait

Strona korzysta z plików cookie w celu realizacji usług zgodnie z Politykš prywatnoœci.

Możesz okreœlić warunki przechowywania lub dostępu do cookie w Twojej przeglšdarce lub konfiguracji usługi.

And-Tech Strona Główna And-Tech
Forum firmy And-Tech

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum  DownloadDownload

Poprzedni temat «» Następny temat
Funkcja Wait
Autor Wiadomość
Pabloos

Dołączył: 18 Mar 2011
Posty: 2
Wysłany: Pią Mar 18, 2011 1:38 pm   Funkcja Wait

Witam,
W nawiązaniu do 2 części kursu,

Mam pytanie odnośnie działania funkcji "Wait". Co robi mikrokontroler podczas gdy napotka ww. funkcję? Czy marnuje bezczynnie czas czekając np. 1s? Jeśli tak, to teoretycznie tracimy możliwość panowania nad innymi rzeczami. Przykładowo chcę by dioda migała a w międzyczasie steruję silnikiem krokowym. Co zrobić by pogodzić te 2 rzeczy?

Z góry dziękuję za odpowiedź
 
     
piotr94 
Site Admin

Dołączył: 02 Lut 2010
Posty: 606
Skąd: Kraków
Wysłany: Pią Mar 18, 2011 5:00 pm   

Witam, w tym czasie procesor wykonuje odpowiednią ilość razy assemblerową funkcję NOP w pętli -czyli jak słusznie zauważasz marnuje bezczynnie czas i tracimy tym samym możliwość kontroli nad innym zadaniem.
Nie wiem czy doczytałeś już może część 5 o timerach, ale tam rzucam nieco światła na tę sprawę na przykładzie niezależnego sterowania diodami. Otóż tak czy inaczej wyjaśnię sprawę, iż w takim przypadku stosujemy właśnie timery, które odmierzają czas (niezależnie od działania reszty programu), a w pętli głównej do ... loop sprawdzamy np. czy program przerwania wystawił nam flagę upłynięcia określonego czasu, wyzerował jakiś programowy licznik itp. (zależy od tego jak realizujemy wielozadaniowość). W takim przypadku możemy bez problemu migać kilkoma diodami, sterować silnikami krokowymi i co tylko jeszcze przyjdzie nam do głowy, a wszystko można ułożyć tak, aby procesor działał prawie że wielozadaniowo. Mam nadzieję że rozwiałem nieco wątpliwości.
_________________
http://www.piotr94.net21.pl/
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group