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!news.supermedia.pl!plix.pl!newsfeed2.plix.pl!news.nask.pl!news.nask.or
    g.pl!news.internetia.pl!not-for-mail
    From: Michoo <m...@v...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: AVR - przerwania zewnętrzne, usypianie i budzenie
    Date: Fri, 22 Feb 2013 00:26:44 +0100
    Organization: Netia S.A.
    Lines: 72
    Message-ID: <kg6aul$tba$1@mx1.internetia.pl>
    References: <kg3hur$15n$1@portraits.wsisiz.edu.pl> <kg3kbm$97a$1@news.dialog.net.pl>
    <kg5mhs$6ag$2@portraits.wsisiz.edu.pl>
    NNTP-Posting-Host: 83.238.197.12
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: mx1.internetia.pl 1361489685 30058 83.238.197.12 (21 Feb 2013 23:34:45 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Thu, 21 Feb 2013 23:34:45 +0000 (UTC)
    In-Reply-To: <kg5mhs$6ag$2@portraits.wsisiz.edu.pl>
    X-Tech-Contact: u...@i...pl
    User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.11) Gecko/20121123
    Icedove/10.0.11
    X-Server-Info: http://www.internetia.pl/
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:642994
    [ ukryj nagłówki ]

    On 21.02.2013 18:46, Atlantis wrote:
    > W dniu 2013-02-20 23:56, DJ pisze:
    >
    >> Tak musisz program przemyśleć żeby miał okazję resetować watchdoga, jako
    >> objaw normalnej pracy. Np przerwaniami z timerów, czy czegokolwiek
    >> innego co występuje zawsze częściej niż okres watchdoga.
    >> Jeśli chcesz uśpić uC na amen na 30 minut, bo np po takim czasie
    >> przjdzie Ci INT0/1, to watchdoga w tym czasie użyć nie możesz.
    >
    > Czyli tak jak myślałem... Czy w takim razie duże jest zagrożenie
    > zawieszeniem się uC w trybie uśpienia?

    Jeżeli projekt jest poprawnie zaprojektowany to nie istnieje ryzyko
    "zawieszenia".

    Przykład 1 - Czytasz dane z GPS po UART i zapisujesz na kartę.
    - Procesor po starcie resetuje zewnętrzne urządzenia i przeprowadza
    inicjalizację.
    - Procesor przechodzi w tryb IDLE.
    - Przerwania UART powodują pakowanie bajtów do bufora i sparsowanie
    wiadomości po \n.
    - Przerwanie zegarowe rozpoczyna zapis na kartę po SPI.
    - Przerwania obsługują transmisję po SPI.
    - Jeżeli nie będzie przez dłuższy czas komunikacji od GPS, albo zamrze
    komunikacja z kartą watchdog wywoła reset pozwalając.

    Szablon wygląda +- tak:
    main(){
    if(watch_dog_reset){
    report_error();
    GPS->force_reset();
    CARD->force_reset();
    }
    GPS->setup();
    CARD->setup();
    //...
    for(;;)
    sleep();
    }

    Przykład 2 - czekasz na naciśnięcie przycisku i otwierasz zamek jeżeli
    się zgadza karta.
    - Procesor po starcie resetuje zewnętrzne urządzenia i przeprowadza
    inicjalizację.
    - Procesor przechodzi w tryb STANDBY.
    - Jedynym zdarzeniem na które czeka procesor jest przycisk, więc wd jest
    wyłączony.
    - W czasie kiedy następuje komunikacja z kartą włączasz wd.

    Szablon wygląda +- tak:
    main(){
    if(watch_dog_reset){
    report_error();
    cleanup();
    }
    BTN1->setup();

    for(;;){
    sleep();
    wd_enable();
    CARD->setup();
    if(CARD->verify_access()){
    DOOR->open();
    busy_wait();
    DOOR->close();
    }
    wd_disable();
    }
    }
    --
    Pozdrawiam
    Michoo

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: