eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR - przerwania zewnętrzne, usypianie i budzenieRe: AVR - przerwania zewnętrzne, usypianie i budzenie
  • Data: 2013-02-23 17:50:41
    Temat: Re: AVR - przerwania zewnętrzne, usypianie i budzenie
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2013-02-23 12:54, Michoo pisze:

    > Po odliczeniu błędów zasilania - nie. [1] To by oznaczało, że nie można
    > go bezpiecznie używać.
    > (...)
    > Załóżmy, że masz szansę na zadziałanie w cyklu 6? - to by oznaczało, że
    > procesor lecący na 20MHz zawiesza się średnio co 25 sekund...

    Chodziło mi raczej o znacznie, znacznie rzadsze przypadki. Kiedy uC
    pracuje non stop. Założyłem, że w pewnym momencie może wystąpić jakaś
    "sprzętowa" przyczyna zawieszenia i w związku z tym stosowanie watchdoga
    ma sens.


    > Błędnie - to jest jedyne z czym się będziesz musiał mierzyć w typowych
    > przypadkach.

    Rozumiałem przez to "pomijam w tych rozważaniach" a nie "pomijam w całym
    projekcie udając, że zagadnienie nie istnieje". ;)

    > W sprzęcie bateryjnym trochę z tym gorzej - dlatego robi się obwód
    > resetu na długim przytrzymaniu włącznika.

    Sprzętowy włącznik też przecież można zainstalować. ;)


    > A spora część współczesnych SoC ma odrębne bloki funkcjonalne z
    > niezależnym wejściem zegara i asynchroniczne moduły komunikacyjne po to,
    > żeby cała reszta mogła spać.

    Z tego co wyczytałem w dokumentacji, to w D15 działa to trochę inaczej.
    Żeby wybudzić moduł ze stanu uśpienia trzeba wysłać jakikolwiek, krótki
    ciąg znaków i odczekać 30ms. Wysłana wiadomość przepada. Dopiero potem
    można nawiązać właściwą komunikację.


    > No tak, ale właśnie w ten sposób - przez zostawienie nieobsłużonych
    > przypadków - tworzy się zawieszające się urządzenia. Dobra praktyka -
    > zawsze dajesz default a jak nie wiesz co tam wstawić to wstawiasz
    > logowanie błędu + reset.

    Nieobsłużony jest w tej chwili, bo jak na razie nie mam nawet wykonanych
    połączeń, które umożliwiłyby mi przeprowadzenie resetu modułu z poziomu
    mikrosterownika.


    > A co w momencie gdy przyjdzie zakłócenie i zamiast cyferki przyjdzie coś
    > niezrozumiałego?

    Przedstawione rozwiązanie było tymczasowym. Teraz wyciągam liczbę za
    pomocą sscanf(). Przy czym rzecz jasna przed zakłóceniem w komunikacji
    przez USART mnie to nie obroni. Jak będzie miało dojść do przekłamania,
    to do niego dojdzie. Jeśli zastosuję twoje rozwiązanie - całe urządzenie
    się wtedy zrestartuje.
    Jeśli zrobię to po mojemu - dioda zamiga informując mnie, że coś jest
    nie tak. Odłożę słuchawkę i spróbuję podnieść ją ponownie.

    Jak widać każda filozofia ma swoje złe i dobre strony. ;)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

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: