RTV forum PL | NewsGroups PL

elektryka - przebicie

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - elektryka - przebicie

Goto page Previous  1, 2, 3 ... 440, 441, 442 ... 585, 586, 587  Next

Michoo
Guest

Fri Feb 22, 2013 12:26 am   



On 21.02.2013 18:46, Atlantis wrote:
Quote:
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(;Wink
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(;Wink{
sleep();
wd_enable();
CARD->setup();
if(CARD->verify_access()){
DOOR->open();
busy_wait();
DOOR->close();
}
wd_disable();
}
}
--
Pozdrawiam
Michoo

Atlantis
Guest

Fri Feb 22, 2013 7:00 pm   



W dniu 2013-02-22 00:26, Michoo pisze:

Quote:
Przykład 1 - Czytasz dane z GPS po UART i zapisujesz na kartę.
- Procesor po starcie resetuje zewnętrzne urządzenia i przeprowadza
inicjalizację.

No cóż... Mi chodziło o sytuację odwrotną - UNIKNIĘCIE resetowania
zewnętrznego urządzenia (moduł) GSM i napisanie kodu w taki sposób, żeby
ATmega po ewentualnym restarcie sama zorientowała się gdzie stoi.

Załóżmy, że sam uC (ale nie modem) wiesza się w trakcie aktywnej rozmowy
telefonicznej. Watchdog go restartuje, ale moduł GSM działa dalej (co
najwyżej chwilowo tracąc komunikację z Atmegą).

Procedura inicjacji modułu jest tak napisana, żeby radzić sobie z
sytuacją, kiedy natknie się na już zainicjowany moduł - wtedy zostawia
go w spokoju spokoju.

W pętli znajduje się instrukcja sprawdzająca podniesienie słuchawki.
Jeśli słuchawka zostanie podniesiona (lub program po włączeniu natknie
się na podniesioną słuchawkę) wykonuje się seria instrukcji (m.in.
wybudzenie modułu). Potem odwołuję się do funkcji, która wysyła
"AT+CPAS\r\n" na potem czeka na ciąg +:CPAS: 00". Gdy ciąg się pojawi
funkcja oczekuje jeszcze na ostatnią cyferkę i zwraca wartość
odpowiadającą znakowi ASCII.

Dalej jest instrukcja switch(), która w zależności od zwróconej wartości
podejmuje odpowiednie działanie:
- Jeśli moduł zgłosił gotowość - uruchomienie procedury wybierania numeru.
- Jeśli moduł zgłosił połączenie przychodzące - odebranie odebranie go i
uruchomienie procedury obsługującej rozmowę
- Jeśli moduł zgłosił już aktywne połączenie (poprzednia sesja,
przerwana przez reset) - uruchomienie procedury obsługującej połączenie.

Michoo
Guest

Fri Feb 22, 2013 9:00 pm   



On 22.02.2013 19:00, Atlantis wrote:
Quote:
W dniu 2013-02-22 00:26, Michoo pisze:

Przykład 1 - Czytasz dane z GPS po UART i zapisujesz na kartę.
- Procesor po starcie resetuje zewnętrzne urządzenia i przeprowadza
inicjalizację.

No cóż... Mi chodziło o sytuację odwrotną - UNIKNIĘCIE resetowania
zewnętrznego urządzenia (moduł) GSM i napisanie kodu w taki sposób, żeby
ATmega po ewentualnym restarcie sama zorientowała się gdzie stoi.

Ale czemu atmega miała się zresetować?

Quote:

Załóżmy, że sam uC (ale nie modem) wiesza się w trakcie aktywnej rozmowy
telefonicznej.

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.


Quote:
Watchdog go restartuje, ale moduł GSM działa dalej (co
najwyżej chwilowo tracąc komunikację z Atmegą).


Procedura inicjacji modułu jest tak napisana, żeby radzić sobie z
sytuacją, kiedy natknie się na już zainicjowany moduł - wtedy zostawia
go w spokoju spokoju.

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. (Któreś telefony tak miały, że po padzie
komunikacji robiły soft reset podsystemu GSM, w efekcie wszystko
wyglądało ok (zasięg, sieć, etc), tylko moduł nie sygnalizował
przychodzących połączeń.)

Quote:

W pętli znajduje się instrukcja sprawdzająca podniesienie słuchawki.
Jeśli słuchawka zostanie podniesiona (lub program po włączeniu natknie
się na podniesioną słuchawkę) wykonuje się seria instrukcji (m.in.
wybudzenie modułu). Potem odwołuję się do funkcji, która wysyła
"AT+CPAS\r\n" na potem czeka na ciąg +:CPAS: 00". Gdy ciąg się pojawi
funkcja oczekuje jeszcze na ostatnią cyferkę i zwraca wartość
odpowiadającą znakowi ASCII.
foo:

Czekasz na
+:CPAS: 00
a dostajesz
+:CPAS: 01 (albo jeszcze lepiej 05, bo wybudzenie się nie powiodło)
watchdag robi reset, goto foo.


Quote:

Dalej jest instrukcja switch(), która w zależności od zwróconej wartości
podejmuje odpowiednie działanie:
- Jeśli moduł zgłosił gotowość - uruchomienie procedury wybierania numeru.
- Jeśli moduł zgłosił połączenie przychodzące - odebranie odebranie go i
uruchomienie procedury obsługującej rozmowę
- Jeśli moduł zgłosił już aktywne połączenie (poprzednia sesja,
przerwana przez reset) - uruchomienie procedury obsługującej połączenie.

A jeżeli zgłosił 1,2,5?

--
Pozdrawiam
Michoo

Atlantis
Guest

Sat Feb 23, 2013 8:59 am   



W dniu 2013-02-22 21:00, Michoo pisze:

Quote:
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.


Quote:
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.


Quote:
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.


Quote:
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? Wink
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.


Quote:
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.

Michoo
Guest

Sat Feb 23, 2013 12:54 pm   



On 23.02.2013 08:59, Atlantis wrote:
Quote:
W dniu 2013-02-22 21:00, Michoo pisze:

Ale czemu atmega miała się zresetować?

W powodu watchdoga?

To jest skutek równoważny z - "dlaczego watchdog zadziałał" - bo coś go
nie zresetowało, ale dlaczego?

Quote:
Może inaczej. Czy przypadkiem mikrokontrolerowi nie zdarza się czasem
(choćby niezmiernie rzadko) zawiesić się, tak po prostu zaprzestać
pracy?

Po odliczeniu błędów zasilania - nie. [1] To by oznaczało, że nie można
go bezpiecznie używać.


[1] W teorii możesz mieć przypadek w którym jakiś błąd jest zależny od
czasu i temperatury, ale prawdopodobieństwo jest minimalne. W praktyce
zdarza się czasami jakiś błąd w przerwaniach (na krzemie) i w określonym
przypadku procesor się nie budzi, ale to będzie raczej tylko missed
interrupt a nie zwis, w bardzo specyficznych warunkach (no i trafi do
erraty). Może też oberwać cząstką wysokoenergetyczną, ale to raczej na
orbicie.

Quote:
Jeśli tak, to chodzi mi właśnie o ochronę przed taką sytuacją.

Taka sytuacja byłaby nielogiczna - na co komu urządzenie, które się
losowo zawiesza?

Załóżmy, że masz szansę na zadziałanie w cyklu 6

Atlantis
Guest

Sat Feb 23, 2013 5:50 pm   



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

[quote]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

Adam Dybkowski
Guest

Tue Apr 16, 2013 10:27 pm   



W dniu 2013-04-16 09:34 Sergiusz Rozanski napisał(a):

Quote:
Wg mnie dużo sensowniejsze byłoby zastosowanie WiFi. Dongle wifi na USB
kosztuje teraz na tyle mało że dosyć tanio możnaby go rozwałkować na
płytce głównej budzika i ściągać czas przez NTP. IMHO w wielu miejscach
w domu złapie się WiFi, gdzie z sygnałem GPS czy DCF już nie jest tak łatwo.

Wymyślacie jak zrobić najdroższy zegarek naścienny? Sugeruję mechanizm
ze złota, platyny, srebra ;)

Po za tym zarówno GPS jak i WIFI są energochłonne, a zegarek domowy chodzi
typowo na bateriach

Chyba Twój.

Ja bardzo sobie cenię wygodny odczyt w nocy budzika z 7-seg
wyświetlaczach LED (marki DIY). I tak jest na stałe podłączony do prądu
(w środku mam CR2032 do podtrzymania RTC) więc dorzucenie WiFi dużo mu
by nie zmieniło.

Wychodzi na to, że muszę wymodzić sobie nowy budzik, np. bazujący na
Raspberry Pi A + WiFi dongle. Taniej się chyba nie da, bo gotowe
malutkie moduliki WiFi (np. do Arduino) są jeszcze droższe.

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

zapinio
Guest

Wed Apr 17, 2013 9:02 am   



Ja sobie bardzo cenię tykanie starego zegara, który co pół godziny
uspokajająco bije, a na okrągłą godzinę wygrywa (też uspokajająco) Big Bena.
Bez WiFi.
Cenię też sobie nieposiadanie telewizora i błogą świadomość nieodbierania
nonstop bardzo ważnych informacji nie mających żadnego znaczenia.
Radzę spróbować.

badworm
Guest

Thu Apr 18, 2013 6:22 pm   



Dnia Wed, 17 Apr 2013 00:27:31 +0200, Adam Dybkowski napisał(a):

Quote:
Wg mnie dużo sensowniejsze byłoby zastosowanie WiFi. Dongle wifi na USB
kosztuje teraz na tyle mało że dosyć tanio możnaby go rozwałkować na
płytce głównej budzika i ściągać czas przez NTP. IMHO w wielu miejscach
w domu złapie się WiFi, gdzie z sygnałem GPS czy DCF już nie jest tak łatwo.

Pozwolę sobie tutaj odpisać bo starszych postów nie widzę: akurat w
kwestii odbioru DCF to można się pozytywnie zdziwić. Odbiornik wcale nie
musi być umieszczony blisko okna. Przeszkadzają inne urządzenia
elektroniczne siejące zakłóceniami ale beton nie jest najmniejszym
problemem. Przeniosłem ostatnio zegarek (moduł do montażu na panelu) DCF
do piwnicy w bloku z wielkiej płyty i synchronizuje się bez problemów.
Podobne obserwacje mam z pracy, gdzie niejeden elektroniczny licznik
energii elektrycznej jest synchronizowany DCFem a znajduje się gdzieś w
piwnicy.
--
Pozdrawiam Bad Worm badworm[maupa]post{kropek}pl
GG#2400455 ICQ#320399066

Anerys
Guest

Fri May 24, 2013 2:39 pm   



Użytkownik "artibus" <k.m.krawczyk@wp.pl> napisał w wiadomości
news:519f4c96$0$1269$65785112@news.neostrada.pl...
Quote:
Mam przyjemność zaprosić Państwa na dobry film Polski, na nowy portal
filmowy: www.fajnyfilm.pl

W chuju mam wszystkie portale filmowe, anonsowane nie tam, gdzie trzeba.

--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.

Tomek
Guest

Fri May 24, 2013 4:52 pm   



Quote:
W chuju mam wszystkie portale filmowe, anonsowane nie tam, gdzie trzeba.

Niech zgadnę.
Jesteś ze stolycy i na 95% w niedzielę biegasz do kościoła?
Mam rację?

Anerys
Guest

Fri May 24, 2013 6:58 pm   



Użytkownik "Tomek" <tomasz987@o23.eu> napisał w wiadomości
news:519f9acd$0$1256$65785112@news.neostrada.pl...
Quote:
W chuju mam wszystkie portale filmowe, anonsowane nie tam, gdzie trzeba.

Niech zgadnę.
Jesteś ze stolycy i na 95% w niedzielę biegasz do kościoła?
Mam rację?

A ma to znaczenie? Co cię to obchodzi?
Jeśli chodzę, to co?
Jeśli nie chodzę, to co?
Jeśli jestem, to co?
Jeśli nie jestem, to co?
Nie lubię spamerów i nazywam to po imieniu.

--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.

ToMasz
Guest

Fri May 24, 2013 7:21 pm   



W dniu 24.05.2013 20:58, Anerys pisze:
Quote:

Użytkownik "Tomek" <tomasz987@o23.eu> napisał w wiadomości
news:519f9acd$0$1256$65785112@news.neostrada.pl...
W chuju mam wszystkie portale filmowe, anonsowane nie tam, gdzie trzeba.

Niech zgadnę.
Jesteś ze stolycy i na 95% w niedzielę biegasz do kościoła?
Mam rację?

A ma to znaczenie? Co cię to obchodzi?
Jeśli chodzę, to co?
Jeśli nie chodzę, to co?
Jeśli jestem, to co?
Jeśli nie jestem, to co?
Nie lubię spamerów i nazywam to po imieniu.

jeśli Tomek zgadł, to jemu chodzi o ostatnią sentencje "nazywam to po

imieniu." Masz prawo do chodzenia do kościoła i niechodzenia również.
TAk samo masz prawo do nieżyczenia sobie spamu i ogłoszeń na grupie.
tylko po kija się rzucać, jak ogłoszeniodawca i tak tego nie czyta?

ToMasz

Anerys
Guest

Sat May 25, 2013 1:26 am   



Użytkownik "ToMasz" <news.neostrada.pl@news.neostrada.pl> napisał w
wiadomości news:519fbdb3$0$26693$65785112@news.neostrada.pl...
Quote:
jeśli Tomek zgadł, to jemu chodzi o ostatnią sentencje "nazywam to po
imieniu." Masz prawo do chodzenia do kościoła i niechodzenia również.

Każdy ma. Wolny kraj.

Quote:
TAk samo masz prawo do nieżyczenia sobie spamu i ogłoszeń na grupie. tylko
po kija się rzucać, jak ogłoszeniodawca i tak tego nie czyta?

Przyznaję, że moja reakcja była mocno niemiła, jeśli kogoś uraziłem, to
przepraszam. Ale organicznie nie cierpię spamerów, spamerstwa. Dla mnie są
jak złodzieje, bo kradną conajmniej mój czas i moje zasoby mózgowe, prądowe
i wszelkie z tym związane, wolę dać menelowi na piwo. Zamiast pomyśleć np. o
gołych babach i podrapać się po jajcach, czy dupie, muszę zużywać swoje
zasoby (komputerowe także - sektory mi na dysku rozmagnesowuje) na
odgarnianie srań takich kutafonów, jak gówna z wycieraczki, czy z chodnika,
bo pies sąsiada nasrał, takie porównanie. Pardon... nic na to nie poradzę,
to silniejsze ode mie. I tak 5-10 lat temu rąbnąłbym znacznie ostrzej, ale
coraz lepiej wychodzi mi powstrzymanie się od pewnych niemiłych działań.
Czy spamer nie czyta... Z doświadczenia wiem, że często jednak czyta...

--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.

Adam Górski
Guest

Sat May 25, 2013 10:37 am   



Quote:
jeśli Tomek zgadł, to jemu chodzi o ostatnią sentencje "nazywam to po
imieniu." Masz prawo do chodzenia do kościoła i niechodzenia również.

Każdy ma. Wolny kraj.

TAk samo masz prawo do nieżyczenia sobie spamu i ogłoszeń na grupie.
tylko po kija się rzucać, jak ogłoszeniodawca i tak tego nie czyta?

Przyznaję, że moja reakcja była mocno niemiła, jeśli kogoś uraziłem, to
przepraszam. Ale organicznie nie cierpię spamerów, spamerstwa. Dla mnie
są jak złodzieje, bo kradną conajmniej mój czas i moje zasoby mózgowe,
prądowe i wszelkie z tym związane, wolę dać menelowi na piwo. Zamiast
pomyśleć np. o gołych babach i podrapać się po jajcach, czy dupie, muszę
zużywać swoje zasoby (komputerowe także - sektory mi na dysku
rozmagnesowuje) na odgarnianie srań takich kutafonów, jak gówna z
wycieraczki, czy z chodnika, bo pies sąsiada nasrał, takie porównanie.
Pardon... nic na to nie poradzę, to silniejsze ode mie. I tak 5-10 lat
temu rąbnąłbym znacznie ostrzej, ale coraz lepiej wychodzi mi
powstrzymanie się od pewnych niemiłych działań.
Czy spamer nie czyta... Z doświadczenia wiem, że często jednak czyta...


Nie masz się z czego tłumaczyć. Naturalna, zdrowa reakcja.
Niech wy....la z całą resztą reklamodawców zmuszających ludzi do
roznoszenia ulotek i oglądania całego tego ich smrodu.

Niech żyje ostatnie wolne miejsce od reklam !


Pzdr

Adam

Goto page Previous  1, 2, 3 ... 440, 441, 442 ... 585, 586, 587  Next

elektroda NewsGroups Forum Index - Elektronika Polska - elektryka - przebicie

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map