www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Interni vsv. eksterni watchdog
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programiranje embedded sistemov
Poglej prejšnjo temo :: Poglej naslednjo temo  

Watchdog?
Ga ne uporabljam
44%
 44%  [ 11 ]
uporabljam Interni watchdog
56%
 56%  [ 14 ]
uporabljam zunanji watchdog
0%
 0%  [ 0 ]
Skupaj glasov : 25

Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.02
Kraj: Dragomer

PrispevekObjavljeno: Sob Jan 08, 2011 11:07 pm    Naslov sporočila:  Interni vsv. eksterni watchdog Odgovori s citatom

Koliko vas uporablja eksterni watchdog, v kolikor ga sploh uporabljate.

Redno uporabljam interni watchdog, in vendar se mi zgodi, da mi mikro kljub temu izvisi in ga moram resetirati.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 75208.62

PrispevekObjavljeno: Sob Jan 08, 2011 11:10 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14557
Aktiv.: 65.26
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Jan 08, 2011 11:16 pm    Naslov sporočila:   Odgovori s citatom

Uporabljam ga občasno - zelo zavisi od aplikacije.
Vilko,
WDT je čisto hardwerska varovalka. V koliko ti WDT ne resetira mikrokontrolerja, se ti je program zazankal v delu procedure, kjer se WDT briše. Torej lahko je programska napaka, ali pa celo napaka v kaki višjenivojski proceduri, na katero ti nimaš vpliva. Zelo preprost test lahko narediš tako, da program zazankaš ob pritisnjeni tipki. V zanki wdt ne brišeš. Procesor MORA iti v reset, če je WDT vključen.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.02
Kraj: Dragomer

PrispevekObjavljeno: Sob Jan 08, 2011 11:19 pm    Naslov sporočila:   Odgovori s citatom

Hvala za odziv!

Uporabljam atmel mega različne čipe.

Mikro mi upravlja centralno ogrevanje.
Predvidevam, da občasno pride do neke motnje, ne v programu, ampak v kaki napetosti (napajalni, po mreži). Za lažjo analizo štejem v programu četrtinke sekunde od 0 do 239 (to je cela sekunda) in watchdog imam nastavljen na dve sekundi.

A zgodi, se, ne pogosto, recimo enkrat na dva meseca, da zadeva ugasne, na LCD-u pe stanje, ki stalno kaže števec od 1-239 stoji.

Prepričan sem, da bi zunanji wd me rešil, a se čudim, da me notranji ne, saj ima, kot pravijo svoj oscilator.

Če imaš izkušnje mi svetuj, kateri zunanji wd naj uporabim. Doslej sem samo notranje.

Pozdrav
vs
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14557
Aktiv.: 65.26
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Jan 08, 2011 11:26 pm    Naslov sporočila:   Odgovori s citatom

Sam LCD je sila neprimerna zadeva za kontrolo delovanja toka programa. A program dela še kaj drugega razen izpisuje na displej? Če, a tisto deluje normalno? Za kotnrolo toka programa raje uporabi ledico, ki jo izmenično prižigaš in ugašaš.

Velika verjetnost je, da je prišlo do kake motnje, ki je zmedla displej. Recimo izpisuje se lahko izven vidnega dela displeja.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.02
Kraj: Dragomer

PrispevekObjavljeno: Sob Jan 08, 2011 11:29 pm    Naslov sporočila:   Odgovori s citatom

Program je seveda obsežen, komunicira na razna mesta, meri temperature, po urniku naravnava mešalne ventile, izpisuje različna stanja na LCD, itd,.

Ni samo LCD zmrznil, le tega iniciiram vsako minuto, tudi centralna ni več grela, ha!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14557
Aktiv.: 65.26
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Jan 08, 2011 11:37 pm    Naslov sporočila:   Odgovori s citatom

Težka bo... Kot sem napisal WDT je hardwerska varovalka. Števec teče z lastnim oscilatorjem, ne glede kaj se dogaja s programom. V koliko je WDT vključen, ter števec prekorači preden je obrisan pride od WDT reseta. Da se v tvojem primeru to ne zgodi je lahko vzrok to, da je program zabluzil ravno tam, kjer se WDT briše. (če je zabluzil drugje je itak šel v WDT reset pa tega nisi opazil- poskusi wdt izključit, boš videl, če bodo težave pogostejše) Oz. ti kaka višjenivojska procedura WDT izklaplja. Hardwerska okvara WDT po moji presoji ni možna.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.02
Kraj: Dragomer

PrispevekObjavljeno: Sob Jan 08, 2011 11:45 pm    Naslov sporočila:   Odgovori s citatom

Ja, res bo težko, saj vem, kako naj bi delal interni wdt.
program se odvija v ciklusih, ki jih diktira timer na 250 msec ki v interrupt rutini postavi zastavico, bit, in v glavnem programu, vsakokrat, resetiram wdt, šele potem grem delat druge stvari.

No, saj stvar ni boleča, le srbi, ker zadeva ne dela kot se šika. Moj ponos je malce prizadet. Je potrebno pač pritisniti na reset tipko. A to isto naredi zunanji wdt, pa računam, da bi tako pometel kako stvar pod preprogo.

Hvala in lahko noč.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14557
Aktiv.: 65.26
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Jan 08, 2011 11:49 pm    Naslov sporočila:   Odgovori s citatom

Ne vem sicer kako pravilno rabiti WDT v višjenivojskih jezikih, kajti že v samem assemblerju moraš biti sila previden, kje boš WDT brisal, da bo res delal tako kot mora.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 63.78
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Ned Jan 09, 2011 1:34 am    Naslov sporočila:   Odgovori s citatom

WDT je potuha slabim programerjem !

Program mora biti napisan tako, da se nikoli ne zacikla ! Šele ko je program stestiran tudi s najbolj nemogočimi podatki lahko WDT vklopimo. Pogoj za to je seveda pravilno napisan program. Če program ni napisan pravilno nam WDT situacije ne reši.

Ker imam načeloma vedno še kakšno idejo, kaj bom dodal v program so moji programi več ali manj vedno nedokončani. Posledično je WDT le redko vklopljen.

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14557
Aktiv.: 65.26
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jan 09, 2011 11:57 am    Naslov sporočila:   Odgovori s citatom

VolkD je napisal/a:
WDT je potuha slabim programerjem !...



Darko, to ne drži ravno. Potem bi moral dodati še slabim konstruktorjem ter načrtovalcem vezja. Da motenj oz. "preskoka" programa lahko pride tudi zaradi zunanjih vplivov - motenj iz okolice, torej ni nujno, da gre za programsko napako. Z WDT lahko preprečiš "nevarne" situacije, ki bi lahko v takem primeru nastale. Res pa je, da imaš lahko popoln nadzor z WDT edino v assemblerski kodi, kjer so ti znane dolžine trajanja rutin. Pa še tam moraš biti sila previden kje boš WDT brisal!. Brisanje WDT v vsaki zanki, kjer se program v določenih situacijah zadržuje je nesmiselno. S tem nisi naredil nič. Če ti v primeru "preskoka" program skoči v to zanko WDT ne bo povzročil WDT reseta. (nekaj podobnega se po moje dogaja pri Vilkotu)
Še vprašanje za Vilkota. A v svoji kodi večkrat brišeš WDT? Če, potem se ti program zazanka v eni od tistih zank, kjer se WDT briše. Če ne, potem ti ga kaka procedura izklaplja oz. gre za programsko napako.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
SimonS
Član
Član



Pridružen-a: Čet 01 Jul 2004 11:18
Prispevkov: 4592
Aktiv.: 20.58
Kraj: Kobarid

PrispevekObjavljeno: Ned Jan 09, 2011 12:20 pm    Naslov sporočila:   Odgovori s citatom

Vilko
imel sem podobne težave le z ARMi. Program se je zaštekal, kljub WD. Na koncu sem prišel do spoznanja, da je WD sicer opravil svoje delo, le da se procesor po resetu ni uspel pravilno zagnati. Pri NXP ARMu, pa je potrebno WD zagnati programsko in tako je procesor ostal nekje v svojem svetu....
Krivec. Kondenzator PRED 3.3V regulatorjem.

_________________
Lep dan
Simon
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 42.17
Kraj: Kranj - struževo

PrispevekObjavljeno: Ned Jan 09, 2011 12:22 pm    Naslov sporočila:   Odgovori s citatom

Uporabljam interni watchdog, kjer je to le mogoče.
Ne toliko za potuho pri načrtovanju programa in vezja, temveč za zunanje vplive - prenapetostne konice, sevanja,...
Do sedaj še nisem oapazil, da bi se kdaj program zaciklal in WD resetiral mikrota. Ampak nikoli se ne ve; sploh če je aplikacija uporabljena kje na terenu in je od nje odvisno delovanje kakšnega večjega stroja Whistle

Seveda mora biti ukaz za brisanje WDT pametno postavljen. Ne v kakšni zanki, ki se zelo pogosto izvaja / ponavlja, temveč mora biti uporabljen samo enkrat in to na delu, ki se najbolj na redko, a še vedno periodično izvaja.
Še ena varianta je, da ob štartu programa pobrišeš ves SRAM in vse pomembne registre...


Seveda pa te WDT ne reši pred LATCH-UP, ki se zna zgoditi ob večjih prenapetostnih konicah. V takenm primeru se čip "hardversko zacikla" in je edina rešitev odklop napajanja.
Mogoče se v vilkotovem primeru dogaja točno to.
Vilko, če imaš možnost, meri tok napajanja v mikrokontroler ko le ta normalno obratuje ter takrat, ko zmrzne. Seveda brez da bi ga odklopil z napajanja.
Prvi znak za Latch-up je bistveno povečan tok v napajalne pine...

SimonS je napisal/a:
Krivec. Kondenzator PRED 3.3V regulatorjem.

Očitno je regulator osciliral in delal "štalo". Sem preizkusil tak primer.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.02
Kraj: Dragomer

PrispevekObjavljeno: Ned Jan 09, 2011 12:32 pm    Naslov sporočila:   Odgovori s citatom

V Bascomu uporabljamo Watchdog z nekaj ukazi:

Koda:
Config Watchdog = 2048                                      '2 sekundi!
Stop Watchdog
Reset  Watchdog   
Start Watchdog


Z config definiramo števec, do kam na šteje, Z Reset postavimo števec na 0
Z start in stop pa zaustavimo ali poženemo števec.
Če števec doseže zadani maksimum, tedaj resetira mikrokrmilnik.

Še enkrat sem šel skozi program, na hitro:

V startni veji je watchdog definiran na 2048, kar je pri tej frekvenci cca 2 sekundi (to je maksimum, ki ga ukaz dovoli)

Na začetku glavne programske zanke imam:
Koda:
Enable Interrupts
Mainloop:
Do
   Start Watchdog
   Reset Watchdog



Na več mestih, kadar program najde kako anomalijo, namenoma gre v watchdog reset tako:
Koda:
       Disable Interrupts
       Wait 20        ' watchdog reset namenoma resetiram mikro

No, to se mi ne dogaja, ali vsaj ne vem, ali se dogaja.

Nikjer v programu, razen v startni veji, ni Stop Watchdog.
Reset watchdog je še na nekaterih mestih, kjer so i/o ukazi, ki potrebujejo več časa a niso v kaki podzanki (Sofwareski izhodni uart).

Če koga zanima, lahko pripnem cel program, a kot rečeno je precej obsežen, blizu 32K

A razmišljam tako: Če pridem iz situacije z pritiskom na tipko reset, tedaj bi me gotovo rešil iz take situacije zunanji WDT. Seveda pa me to stane en pin mikrokrmilnika. Moram se malo razgledati in probati.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.02
Kraj: Dragomer

PrispevekObjavljeno: Ned Jan 09, 2011 12:43 pm    Naslov sporočila:   Odgovori s citatom

Hvala Aly

Še odgovor tebi:
aly je napisal/a:

Še ena varianta je, da ob štartu programa pobrišeš ves SRAM in vse pomembne registre...

To naredi Bascom sam od sebe, razen če mu to izrecno ne prepoveš
aly je napisal/a:

Seveda pa te WDT ne reši pred LATCH-UP, ki se zna zgoditi ob večjih prenapetostnih konicah. V takenm primeru se čip "hardversko zacikla" in je edina rešitev odklop napajanja.
Mogoče se v vilkotovem primeru dogaja točno to.
Vilko, če imaš možnost, meri tok napajanja v mikrokontroler ko le ta normalno obratuje ter takrat, ko zmrzne. Seveda brez da bi ga odklopil z napajanja.
Prvi znak za Latch-up je bistveno povečan tok v napajalne pine...


Hja, v ta namen bi moral imeti ampermeter stalno priključen na napravo, saj se naknadno le tega ne da priključiti brez večjih ceremonij, ne da bi odklopil napravo od napajanja. Nerodno je, ker je vse že montirano in v kurilnici.
Poleg tega sem v fazi razširitve naprave na dva uporabnika, dva tokokroga, kjer bo vsak imel svoj mešalni ventil in obtočno črpalko in si bo vsak uporabnik po svoje nastavljal temperaturo in dnevni program. Tudi imam namen zamenjati GSM telefon z namenskim GSM modulom in dodati beleženje delovanja na SD kartico.
In, kot mislim, mi izkušnja kaže, bo nova naprava imela zunanji WDT.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programiranje embedded sistemov Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 78 dni


Powered by phpBB © 2001, 2005 phpBB Group