eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR - przerwania zewnętrzne, usypianie i budzenie
Ilość wypowiedzi w tym wątku: 25

  • 11. Data: 2013-02-10 18:54:27
    Temat: Re: AVR - przerwania zewn?trzne, usypianie i budzenie
    Od: DJ <j...@p...onet.pl>

    On 2013-02-10 18:34:44 +0100, Atlantis <m...@w...pl> said:

    > W dniu 2013-02-10 18:26, DJ pisze:
    >
    >> przy INT0/1 jest notka, że budzenie poziomem.
    > > (...)
    >> Nie musisz. On już jest obudzony sprzętowo.
    >
    > Tylko poziomem?

    A tabelkę oglądałeś?
    W idle można zboczem, reszta trybów snu - poziomem.


    --
    DJ

    PS. przy odpisywaniu na priv usun antyspamowy wpis z adresu


  • 12. Data: 2013-02-10 19:21:43
    Temat: Re: AVR - przerwania zewn?trzne, usypianie i budzenie
    Od: Atlantis <m...@w...pl>

    W dniu 2013-02-10 18:40, DJ pisze:

    > Więc pewnie z tego powodu do budzenia musi być poziom, nie zbocze.

    Dobrze, w takim razie jeszcze jedno pytanie. Jak właściwie wygląda
    próbkowanie tego poziomu?
    Powiedzmy, że ustawiam INT0 i INT1 na wykrywanie stanu niskiego. Na
    liniach pojawia się logiczne zero trwające kilka sekund, a nawet całe
    minuty. Kiedy i ile razy wykona się przerwanie?


  • 13. Data: 2013-02-10 19:37:37
    Temat: Re: AVR - przerwania zewn?trzne, usypianie i budzenie
    Od: "J.F." <j...@p...onet.pl>

    Dnia Sun, 10 Feb 2013 18:34:44 +0100, Atlantis napisał(a):
    > W dniu 2013-02-10 18:26, DJ pisze:
    >> przy INT0/1 jest notka, że budzenie poziomem.
    >> (...)
    >> Nie musisz. On już jest obudzony sprzętowo.
    >
    > Tylko poziomem?
    > A jeśli przerwanie INT0/INT1 ustawię np. tak, żeby reagowało na
    > opadające zbocze i w funkcji wyzeruję bity MCUCR - obudzi się?

    Jak procek bedzie dobrze uspiony, to w "w funkcji przerwania" nie nastapi
    :-)
    A jesli nastepuje, to juz jest obudzony.

    Problem z przerwaniem na zbocze jest taki, ze ta funkcja jest czesto
    realizowana, jakby to okreslic ... mikroprogramowo ?
    Pin jest probkowany w okreslonym momencie cyklu zegarowego, i wewnetrzna
    logika rozpoznaje zbocze jak stan ulegl zmianie od poprzedniej probki.
    Ale w tym celu zegar musi dzialac, przynajmniej w ukladzie przerwan.

    No i czas impulsu musi byc odpowiednio dlugi ... i uwaga przy zegarze o
    zmiennej czestotliwosci. To samo zreszta przy "level"


    J.


  • 14. Data: 2013-02-11 01:10:19
    Temat: Re: AVR - przerwania zewn?trzne, usypianie i budzenie
    Od: Marek <f...@f...com>

    On Sun, 10 Feb 2013 19:37:37 +0100, "J.F."
    <j...@p...onet.pl> wrote:
    > Problem z przerwaniem na zbocze jest taki, ze ta funkcja jest czesto
    > realizowana, jakby to okreslic ... mikroprogramowo ?

    Wiesz jak jest konkretnie realizowana w Atmedze?

    --
    Marek


  • 15. Data: 2013-02-11 03:02:56
    Temat: Re: AVR - przerwania zewn?trzne, usypianie i budzenie
    Od: Michoo <m...@v...pl>

    On 10.02.2013 19:37, J.F. wrote:
    > Dnia Sun, 10 Feb 2013 18:34:44 +0100, Atlantis napisał(a):
    >> W dniu 2013-02-10 18:26, DJ pisze:
    >>> przy INT0/1 jest notka, że budzenie poziomem.
    >>> (...)
    >>> Nie musisz. On już jest obudzony sprzętowo.
    >>
    >> Tylko poziomem?
    >> A jeśli przerwanie INT0/INT1 ustawię np. tak, żeby reagowało na
    >> opadające zbocze i w funkcji wyzeruję bity MCUCR - obudzi się?
    >
    > Jak procek bedzie dobrze uspiony, to w "w funkcji przerwania" nie nastapi
    > :-)
    > A jesli nastepuje, to juz jest obudzony.
    >
    > Problem z przerwaniem na zbocze jest taki, ze ta funkcja jest czesto
    > realizowana, jakby to okreslic ... mikroprogramowo ?

    Wybudzanie za pomocą zbocza robi się w najprostszej postaci za pomocą 2
    przerzutników D w szeregu. Jak D1 XOR D2 == 1 to masz zbocze.
    Filtrowanie to zazwyczaj długa linia opóźniająca i stan "połówki" jest
    obliczany według większości bitów (np bufor na 14 bitów wycina
    pojedyncze zakłócenie do 3 cykli).

    > Pin jest probkowany w okreslonym momencie cyklu zegarowego, i wewnetrzna
    > logika rozpoznaje zbocze jak stan ulegl zmianie od poprzedniej probki.
    > Ale w tym celu zegar musi dzialac, przynajmniej w ukladzie przerwan.

    Ze względu m.i. na pobór prądu we współczesnych procesorach prawie
    wszystko jest synchronizowane zegarem.

    --
    Pozdrawiam
    Michoo


  • 16. Data: 2013-02-11 11:51:46
    Temat: Re: AVR - przerwania zewn?trzne, usypianie i budzenie
    Od: g...@s...invalid (Adam Wysocki)

    DJ <j...@p...onet.pl> wrote:

    > Więc pewnie z tego powodu do budzenia musi być poziom, nie zbocze.

    Musi być dlatego, że w power down główny zegar jest zatrzymany. W idle nie jest.

    --
    Gof
    http://www.chmurka.net/


  • 17. Data: 2013-02-20 23:15:52
    Temat: Re: AVR - przerwania zewnętrzne, usypianie i budzenie
    Od: Atlantis <m...@w...pl>

    BTW jeszcze jedno pytanie przyszło mi do głowy:
    Jak zachowuje się watchdog w stanie idle? Z dokumentacji wynika, że jest
    włączony, jednak skoro program się nie wykonuje, to nie ma co go
    resetować. A jeśli tak, to uC powinien zostać zrestartowany natychmiast
    po wprowadzeniu w stan idle z aktywnym watchdogiem. A to nie miałoby
    najmniejszego sensu... Więc jak to wygląda w rzeczywistości?


  • 18. Data: 2013-02-20 23:56:41
    Temat: Re: AVR - przerwania zewnętrzne, usypianie i budzenie
    Od: DJ <j...@p...onet.pl>

    On 2013-02-20 23:15:52 +0100, Atlantis <m...@w...pl> said:

    > BTW jeszcze jedno pytanie przyszło mi do głowy:
    > Jak zachowuje się watchdog w stanie idle? Z dokumentacji wynika, że
    > jest włączony, jednak skoro program się nie wykonuje, to nie ma co go
    > resetować.

    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.

    A jeśli tak, to uC powinien zostać zrestartowany natychmiast po
    wprowadzeniu w stan idle z aktywnym watchdogiem.

    czemu _natychmiast_? ustawiasz czas reakcji watchdoga na 0.00000000usec ;P

    --
    DJ

    PS. przy odpisywaniu na priv usun antyspamowy wpis z adresu


  • 19. Data: 2013-02-21 18:46:31
    Temat: Re: AVR - przerwania zewnętrzne, usypianie i budzenie
    Od: Atlantis <m...@w...pl>

    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?


    > czemu _natychmiast_? ustawiasz czas reakcji watchdoga na 0.00000000usec ;P

    Oj, skrót myślowy. Miałem na myśli perspektywę człowieka, a nie maszyny. ;)


  • 20. Data: 2013-02-22 00:26:44
    Temat: Re: AVR - przerwania zewnętrzne, usypianie i budzenie
    Od: Michoo <m...@v...pl>

    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

strony : 1 . [ 2 ] . 3


Szukaj w grupach

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: