Zasto se uopce gubiti u programiranju i mogucnostima hoce li WDT MCU-a izvuci mrtvaca iz groba. Evo jedan prijedlog dobrog WDT-A koji ja koristim, external WDT MAX1232... Unatoc internom WDT-u imam i eksterni WDT kojeg spajam na port mikrokontolera i na reset. To bi u c-u izgledalo ovako:
#define WDT P1_7^P1_7 \\* P1_7 je 6 bit na portu 1 na kojem generiramo eksterni WDT
static unsigned int malo_morgen;
//*****************************************
void ucini_nesto (void){
WDT;
malo_morgen=0;
}
//*****************************************
main(){
T0_inic();
bla_bla_bla();
jos_malo_bla_bla_bla();
WDT; \\ tu i tamo lupimo eksterni WDT
while(1){
if(malo_morgen>1254) ucini_nesto();
malo_morgen++:
\\*******************
WDT; \\* NE ZABORAVI NA EKSTERNI WDT
\\**********************
}
}
Svakih kad nam pukne ili ako vec hocemo ici u nekakvo preciziranje mozemo i racunati kada moramo opaliti eksterni WDT.. U slucaju da eksterni WDT ostane bez promjene stanja porta on ce resetirati MCU bez obzira na interni WDT.... Pogledaj DATASHEET MAX1232
Sto se tice sigurnosti WDT-A... meni ovo jos nije zakazalo, a prava primjena je bila kada sam s atmelom pokretao snazne trofazne motore kraj jakog frenkvecijskog odasiljaca. Bez eksternog WDT-a nista ne bi radilo jer u takvim uvjetima MCU se blokira svakih skoro.
WDT je 100 % siguran jer se u toj situaciji moze otici tako daleko da MCU salje kombinaciju bitova koju prikuplja kroz sve svoje rutine prema eksternom WDT-U.. no ako nestane struje :)
InTheStillOfTheNight