BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Radiocomandi (https://www.baronerosso.it/forum/radiocomandi/)
-   -   Dubbi sul 2.4GHz.. (https://www.baronerosso.it/forum/radiocomandi/215592-dubbi-sul-2-4ghz.html)

romoloman 23 giugno 11 21:28

Citazione:

Originalmente inviato da Naraj (Messaggio 2651778)
Esatto, infatti questa funzione è già programmata nel microprocessore, quindi a mio avviso, è sempre una funzione software e non è "ferramenta dura" (hardware). :D

Naraj.

No.....
Il watchdog non è un programma....
Se abiliti il watchdog (flag di programmazione) non fai altro che consentire a un timer hardware di andare a incrementare un counter (hardware).
Se a software (ovvero nel programma che viene inserito nella CPU) non prevedi il reset di questo contatore, sull'overflow del contatore hardware viene attivata la linea di reset della CPU...
Quindi il software funziona solo per inibire il reset non per generarlo...
Tant'è che un errore di programmazione abbastanza banale consiste nell'abilitazione del watchdog senza che a codice si sia prevista la sua gestione ovvero reset continuo...
Per avere un watchdog che non funziona dovrebbero aver sbagliato il design hardware della CPU...
Se fosse software verrebbe a cadere il concetto stesso di watchdog...

Naraj 23 giugno 11 22:08

Citazione:

Originalmente inviato da romoloman (Messaggio 2651800)
No.....
Il watchdog non è un programma....
Se abiliti il watchdog (flag di programmazione) non fai altro che consentire a un timer hardware di andare a incrementare un counter (hardware).
Se a software (ovvero nel programma che viene inserito nella CPU) non prevedi il reset di questo contatore, sull'overflow del contatore hardware viene attivata la linea di reset della CPU...
Quindi il software funziona solo per inibire il reset non per generarlo...
Tant'è che un errore di programmazione abbastanza banale consiste nell'abilitazione del watchdog senza che a codice si sia prevista la sua gestione ovvero reset continuo...
Per avere un watchdog che non funziona dovrebbero aver sbagliato il design hardware della CPU...
Se fosse software verrebbe a cadere il concetto stesso di watchdog...

Non voglio dirottare la discussione iniziale per una mia "fissa".
Sono pienamente d'accordo sulle vostre risposte, anche perchè in passato ho usato molte volte la funzione watchdog.

Quello che mi sembra di capire nei microprocessori, è che la possibilità di saltare a un indirizzo di reset (o ad altra rutine), quando un contatore lo permette, questa, è una funzione software implementata nel micro.

Scusatemi se sbaglio.

Naraj.

romoloman 23 giugno 11 22:47

Citazione:

Originalmente inviato da Naraj (Messaggio 2651866)
Non voglio dirottare la discussione iniziale per una mia "fissa".
Sono pienamente d'accordo sulle vostre risposte, anche perchè in passato ho usato molte volte la funzione watchdog.

Quello che mi sembra di capire nei microprocessori, è che la possibilità di saltare a un indirizzo di reset (o ad altra rutine), quando un contatore lo permette, questa, è una funzione software implementata nel micro.

Scusatemi se sbaglio.

Naraj.

Giusto un chiarimento e poi magari spostiamo la discussione sui watchdog in elettronica per non contaminare il 3d..
L'interrupt che gestisce il salto alla routine di reset del contatore è gestito a volte a software e come tale se il software o il micro si sono piantati il salto non avviene...
Ma proprio per quello c'è il watchdog... se il salto non avviene il contatore continua a crescere (cosa che normalmente non dovrebbe avvenire), crescendo troppo scatta il reset della CPU e questo avviene in hardware...

Da non confondere i due reset ben diversi fra loro...

BBC25185 23 giugno 11 23:13

l'uso del Watchdog Timer è molto, ma molto utile....

per dire fatti vissuti...
Sottomarino con scheda di controllo autocostruita basata su arduino!!!!
In laboratorio/taverna tutto funzionava perfettamente!!!

Vado al laghetto e, dopo circa 10 minuti di prove, il motore e la pompa (che veniva gestito dall'arduino) si bloccano sull'ultimo comando ricevuto, cioè motore avanti e pompa in immersione....
Non è bello cercare di recuperare un sottomarino vedendo che và sempre più sotto!!!!

Cos'e successo??? semplice... sbalzi di tensione sull'alimentazione mi ha bloccato l'arduino!!!!
Risolto in 2 modi: pulendo l'alimentazione da schifezze
attivando il wathdog timer!!!!

In questo modo, se l'arduino si blocca, dopo circa 2 secondi si resetta e non mi ritrovo il sottomarino senza controllo!!!!!

Comunque si, il watchdog timer è un contatore Hardware, controllabile da software nato con un unico scopo: se il software non blocca il contatore in tempo (tipo quando si blocca il programma), lui resetta il micro, come se lo avessi appena acceso!!!!

LONGFLYER 23 giugno 11 23:19

La questione watch-dog è più semplice di quello che si può pensare.
Andando per ordine, questa tecnica prevede due blocchi funzionali: l'ascolto e l'esecuzione. Per quanto apparentemente complessa è invece realizzabile da sempre in modo semplicemente hardware perchè deve essere l'hardware e trarre d'impaccio, teoricamente parlando, il software in crash. Per applicare tale tecnica, basta che il software produca un'onda quadra su un bit che subito un circuito esterno, se non lo rileva come lo attende, applica un bit di reset sul relativo piedino del processore.
Ovvio che il software è deputato a muovere un bit esterno (cosa d'altronde di una semplcità disarmante) ma il lavoro di ascolto ed esecuzione del reset è a cura del circuito hardware storicamente esterno al processore.
Oggi con l'evoluzione dei processori è possibile inserirla direttamente nei microcontrollori ma un watch-dog resta cmq. una funzione hardware a se stante.


Tutti gli orari sono GMT +2. Adesso sono le 23:35.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2026