eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR - przerwania zewnętrzne, usypianie i budzenieRe: AVR - przerwania zewn?trzne, usypianie i budzenie
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!wsisiz.edu.pl!.POSTED!not-for-mail
    From: Atlantis <m...@w...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: AVR - przerwania zewn?trzne, usypianie i budzenie
    Date: Sat, 09 Feb 2013 20:27:38 +0100
    Organization: http://www.wit.edu.pl
    Lines: 41
    Message-ID: <kf67vf$dsf$1@portraits.wsisiz.edu.pl>
    References: <kf63bu$c0q$1@portraits.wsisiz.edu.pl>
    <511699b1$0$26693$65785112@news.neostrada.pl>
    NNTP-Posting-Host: avt135.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: portraits.wsisiz.edu.pl 1360438063 14223 83.27.53.135 (9 Feb 2013 19:27:43
    GMT)
    X-Complaints-To: a...@w...edu.pl
    NNTP-Posting-Date: Sat, 9 Feb 2013 19:27:43 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107
    Thunderbird/17.0.2
    In-Reply-To: <511699b1$0$26693$65785112@news.neostrada.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:642293
    [ ukryj nagłówki ]

    W dniu 2013-02-09 19:47, michal pisze:

    > liczniki liczą, uart pracuje, program nie jest wykonywany,
    > pojawiajace sie przerwanie budzi mikrosterownik, wykonuje dane
    > przerwanie i wznawia wykonywanie następnego kodu po instrukcji sleep.

    Każde przerwanie, dobrze rozumiem? Czyli jeśli USART mi coś wyśle, to po
    wykonaniu funkcji obsługi przerwana odbioru znaku program rozpocznie
    normalne działanie, nawet jeśli funkcja sama w sobie nie będzie
    zawierała instrukcji wybudzenia?


    > dokładnie następna instrukcja po sleep. (lub przerwanie trzeba popatrzeć do
    > manuala
    > aczkolwiek to zazwyczaj bez znaczenia)

    Chcę po prostu upewnić się, czy moje rozumienie tematu jest poprawne,
    zanim zabiorę się za pisanie kodu. Generalnie program ma być uśpiony
    przez większość czasu. Budzić mają go dwa zdarzenia:
    1) Pojawienie się sygnału dzwonka (linia RI współpracującego modułu GSM)
    2) Podniesienie słuchawki telefonicznej.
    Linie podpięte są odpowiednio do INT0 i INT1. Przerwania wyzwalane
    pojawieniem się stanu niskiego (a może zbocze odpadające byłoby lepszym
    pomysłem?). Wewnątrz obsługujących je funkcji znajduje się tylko
    instrukcja wybudzenia.

    W funkcji main znajduje się nieskończona pętla. W niej dwie instrukcje
    warunkowe. Jedna sprawdza obecność stanu niskiego na RI, druga
    podniesienie słuchawki. Dopóki warunki te są spełnione, w pętlach
    wykonują się właściwe operacje.

    Za instrukcjami warunkowymi, na końcu nieskończonej pętli znajduje się
    instrukcja wprowadzająca moduł w stan uśpienia, tak więc po następnym
    wybudzeniu sprawdzanie zacznie od następnej iteracji nieskończonej pętli.

    Tak to powinno wyglądać czy coś pomieszałem?


    > (tych trybów jest kilka i trochę różnie na różnych prockach działają).

    Mi akurat chodzi o zwykłą Atmegę8. ;)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: