Tom277 ---> oczywiście masz rację - no ale widzisz więcej urodzi się z konkretnych pytań ... bo niestety OGÓLNIE nie da się tego opowiedzieć w 2-3 zdaniach, ale też prawdą jest to co napisałem wyżej że liczenie każdego taktu mija się z celem programując w C.
A zatem - skoro jak piszesz znasz już jakby te podstawy (fajnie) .... to powiem znowu coś co może zaburzy tok twoich myśli ale postaram się doprecyzować. Otóż w niebieskiej książce mówię o flagach i nawet podaję taki jaskrawy przykład z przerwaniem INTx przy obsłudze PCF8583 gdzie zdaje się jedyna rzecz jaką robię w przerwaniu to ustawienie flagi i później sprawdzanie jej w pętli głónej. Ale to też tylko powstało do celów dydaktcznych i może się zdziwisz ale tak wręcz NIE NALEŻY robić jeśli w przerwaniu miałbyś TYLKO ustawiać flagę - bo po co? tworzyć flagę programową przerwania ?? tracić na nią cenną komórkę RAM ?? skoro przecież masz rejestr sprzętowy ze SPRZĘTOWYMI FLAGAMI przerwań i równie dobrze można je wykorzystać w pętli głównej ... pomyśl jaka oszczędność czasu , pamięci i kodu
zaglądamy szybko do noty PDF np procka ATmega8 , spójrz na rejestr GIFR - widzisz? masz tam dwie sprzętowe flagi INTF0 oraz INTF1
można je w pętli głównej wykorzystać wprost zamiast tej programowej którą pokazałem w książce
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
widzisz ? Mógłbyś zapytać - no dobra to po co pan panie kardaś wprowadzasz ludzi w błąd ?
.... nie - nie wprowadzam - ponieważ o wiele łatwiej wg mnie dotrzeć mi do początkującego i opowiedzieć mu o znaczeniu flag na takim przykładzie jak ja to opisałem bo tutaj jakbym podał z tym rejestrem - to początkująca osoba - popatrzy na to często i pomyśli - O! jakieś czary-mary pokazał i mądry - a ja nadal nie czaję o co chodzi z tymi kocimi flagami.
No ale też zdarza się że później ktoś np nie poczyta dalej albo całej książki i na podstawie tej informacji np zaczyna pisać sobie obsługę przerwania UART i zdarzało się , że nadsyła mi czytelnik kod w którym w przerwaniu UART'a wkleja też TYLKO TAKĄ flagę programową jak w tym przykładzie z PCF a później w pętli głównej chce odczytywać np UDR itp itd ... a ja pytam - a czytałeś pan dalej ?
przecież czym dalej w las tym pokazuję że więcej drzew i coraz bardziej różne podejście ....
REASUMUJĄC - w 10000% warto sobie zdać sprawę co to są flagi i jak się nimi posługiwać - nawet jeśli początkujący miałby tylko taką programową flagę majstrować zamiast używać tej sprzętowej - a dlaczego ? Ano dlatego że przygotowuję go do WAŻNEJ RZECZY w dalszej części książki jaką są np TIMERY PROGRAMOWE ! ..... to jest TO - na czym mi głównie zależy - do czego prowadzę ..... choć często początkująca osoba nie chce iść dalej w książce obawiając się że tam na końcu to coś gryzie i jest za trudno - zatrzymując się na jej początku bo też już coś zaczyna wychodzić i brnie czasem błądząc mocno dalej
Tymczasem jeszcze raz - flagę programową wprowadzaj wtedy jeśli w przerwaniu jeszcze inne rzeczy użyjesz np wyobraź sobie timer sprzętowy do obsługi multipleksowania.... działa sobie taki z częstotliwością np 200-300Hz .... no i coś tam robi - obraca tymi segmentami prawda? długo to nie trwa ale zawsze coś robi. No i wtedy - po co powoływać do życia nowy timer sprzętowy który miałby wyznaczać jakąś podstawę czasu żeby np migać sobie jakąś diodą LED co sekundę - jeśli mogę dodać kilka linijek do obsługi przerwania multipleksowania i zliczać te każde np 5ms (przy 200Hz) ... i gdy zliczę ich tyle że minie 1s to wtedy ustawię sobie flagę
i w pętli głównej przy okazji niejako będę miał poza fajnym multipleksowaniem to jeszcze flagę co 1s
... czyt tylko co 1s ? nie jak chcę to wprowadzę drugą np co 500ms albo i trzecią co 100ms .... tyle że zliczanie impulsów 5-cio milisekundowych będę realizował nadal w przerwaniu.
Dlatego też w takim wypadku nie ma co korzystać ze sprzętowej flagi przerwania ponieważ zostaje ono w sposób wypasiony użyte i to do wielu celów naraz
a zatem czytaj dalej książkę ale co najważniejsze - staraj się ćwiczyć każdy przykład na 100 różnych sposobów i nie opuszczaj ostatnich rozdziałów a szczególnie
"Wstępu do systemów czasu rzeczywistego" bo to jest CEL do którego Cię i każdego czytelnika staram się doprowadzić.
_________________
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 ]