-
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, 23 Feb 2013 08:59:43 +0100
Organization: http://www.wit.edu.pl
Lines: 67
Message-ID: <kg9stn$6pq$1@portraits.wsisiz.edu.pl>
References: <kg3hur$15n$1@portraits.wsisiz.edu.pl> <kg3kbm$97a$1@news.dialog.net.pl>
<kg5mhs$6ag$2@portraits.wsisiz.edu.pl> <kg6aul$tba$1@mx1.internetia.pl>
<kg8bo1$f64$1@portraits.wsisiz.edu.pl> <kg8j7e$fqk$1@mx1.internetia.pl>
NNTP-Posting-Host: bse195.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: portraits.wsisiz.edu.pl 1361606391 6970 83.29.124.195 (23 Feb 2013 07:59:51
GMT)
X-Complaints-To: a...@w...edu.pl
NNTP-Posting-Date: Sat, 23 Feb 2013 07:59:51 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130215
Thunderbird/17.0.3
In-Reply-To: <kg8j7e$fqk$1@mx1.internetia.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:643042
[ ukryj 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
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
Najnowsze wątki
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-13 Kraków => QA Inżynier <=
- 2024-11-13 Żerniki => Dyspozytor Międzynarodowy <=