-
Data: 2013-02-23 08:59:43
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-22 21:00, Michoo pisze:
> Ale czemu atmega miała się zresetować?
W powodu watchdoga?
Może inaczej. Czy przypadkiem mikrokontrolerowi nie zdarza się czasem
(choćby niezmiernie rzadko) zawiesić się, tak po prostu zaprzestać
pracy? Jeśli tak, to chodzi mi właśnie o ochronę przed taką sytuacją.
Bo rozumiem, że czasem jakiś niuans w samym kodzie (np. pętla, która w
określonych okolicznościach zacznie się wykonywać w nieskończoność) może
spowodować zawias, ale to na razie pomijam.
> Oznacza to:
> a) błąd w programie. należy go wyeliminować
> b) błąd w module albo zakłócenie w komunikacji. stan systemu jest
> prawdopodobnie niespójny. Twardy reset jest w takiej sytuacji
> najbezpieczniejszym wyjściem.
Dla jasności: nigdy takiej sytuacji nie miałem. Nie zdarzyło mi się,
żeby moduł albo uC się zawiesił. Wszystkie przypadki, kiedy coś działało
nieprawidłowo okazywały się efektem jakiegoś drobnego błędu w programie.
A co do twardego resetu, to modem D15 nie ma nawet odpowiedniego pinu.
Jedynym rozwiązaniem z tego co widzę jest odcięcie zasilania, a to mogę
zrobić ręcznie.
> Ja bym w takim wypadku zrobił sprawdził na ile stan wygląda "dobrze" i w
> rzie czego zrobił power-cycle. Skoro był reboot to znaczy, ze coś się
> poważnie spieprzyło. Nic ci nie gwarantuje, że moduł będzie po czymś
> takim pracował poprawnie.
Proces inicjacji modułu GSM oczywiście przeprowadza elementarną
diagnostykę, nawet jeśli zastanie go w stanie włączonym. Jeśli coś jest
nie tak, zgłasza kod błędu migając diodą. Trochę "diagnostyki" jest też
po podniesieniu słuchawki - pytanie o status, sprawdzenie poziomu
sygnału itp. Słowem raczej można się połapać, gdy coś nie działa.
> foo:
> Czekasz na
> +:CPAS: 00
> a dostajesz
> +:CPAS: 01 (albo jeszcze lepiej 05, bo wybudzenie się nie powiodło)
> watchdag robi reset, goto foo.
Tak swoją drogą co zwraca "+CPAS: 001" gdy modem jest niedostępny albo
"+CPAS: 005" gdy znajduje się w stanie uśpienia, skoro przecież jest
niedostępny albo znajduje się w stanie uśpienia? ;)
Tutaj chyba chodzi o jakieś bardzo specyficzne sytuacje?
W funkcji sprawdzającej o stan modemu umieściłem po prostu licznik.
Funkcja zwraca odpowiednią wartość, gdy program nie otrzyma odpowiedzi
przed upływem 500 ms. Jeszcze tego nie zagospodarowałem, ale myślałem o
zwykłym komunikacie błędu.
> A jeżeli zgłosił 1,2,5?
Jeszcze niezagospodarowane, ale to kwestia dodania kolejnego "case"
wewnątrz instrukcji switch(). Jak już mówiłem funkcja odpowiedzialna za
obsługę CPAS czeka po prostu aż przyjdzie stała część komunikatu (+CPAS:
00) a potem czeka na pojawienie się ostatniej cyferki, pobiera ją,
konwertuje z ASCII na liczbę i zwraca programowi.
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
Najnowsze wątki
- 2025-01-27 Warszawa => Java Developer <=
- 2025-01-27 Warszawa => Data Engineer (Tech Lead) <=
- 2025-01-27 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-27 Kto ma PRAWNĄ rację? poseł KO mec. R. Giertych v. mec. B. Lewandowski
- 2025-01-27 Gliwice => IT Expert (Network Systems area) <=
- 2025-01-27 Koszyk okrągły, walec 3x AA, na duże paluszki R6
- 2025-01-27 Warszawa => QA Engineer <=
- 2025-01-27 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-01-27 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-27 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-27 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-27 Kraków => User Experience Designer <=
- 2025-01-27 Kraków => iOS Developer (Swift experience) <=
- 2025-01-26 Trump-2 JUŻ bardzo łaskawy [1_500 ułaskawień skazanych za Bidena za "Kawkę na Kapitolu"]
- 2025-01-26 Brak bolca ochronnego ładowarki oznacza pożar