Vai al contenuto
PLC Forum


Pic , Reset Via Software - possibile riavviare il pic da software?


Niki77

Messaggi consigliati

Salve a tutti,

Per vostra conoscienza è possibile riavviare un pic di tipo 16f84 o 16f628 tramite software?

asm, basic ,c , qualsiasi cosa

Per riavviare intendo simulare la messa a massa(scusate il gioco di parole)del pin mclr...

Link al commento
Condividi su altri siti


questo pic non ha una funzione di reset via software.

Per resettare a comando puoi usare in WDT e creare un loop infinito dove non pulisci il registro del WDT .

Puoi anche usare un pin di uscita e con un transistor fare un reset esterno.

Dopo il reset le entrate I/O sono configurate tutte come entrate , quindi il pin tornerebbe nelle sue condizioni normali.

Link al commento
Condividi su altri siti

Non uso abitualmente tal micro e assembly comunque dovresti riuscire a scrivere direttamente nel registro CONFIG2H il post-scaler 1:1 del WDT e alla successiva istruzione avrai un overflow dello stesso che ti produrrà un Reset software.

Saluti

Link al commento
Condividi su altri siti

Attenzione! Una GOTO all'inizio del programma non è un reset! Di fatto il programma viene rieseguito dall'inizio, ma le impostazioni interne del pic (valori registri, impostazioni varie, pin in-out) non cambiano.

Ciao!

Link al commento
Condividi su altri siti

Hai ragione , pero' non e' stato specificato il perche' del reset pilotato , chiarito questo , si possono fare anche altre elucubrazioni ;)

Ciao :)

Link al commento
Condividi su altri siti

La necessita del reset è scaturita proprio dal voler azzerare tutti i registri interni del processore e ricominciare l'esecuzione da capo...

Avevo pensato al transistor che mette a massa l'mclr ma non credo di avere + porte libere disponibili per tale funzione.

Farò qualche esperimento con il watch-dog per ora.

Grazie a tutti per l'interessamento.

Link al commento
Condividi su altri siti

Non risolvevo il problema rilanciando all'inizio del programma,non so esattamente perchè, ma evidentemente qualcosa rimaneva dei dati precedentemente immagazzinati la per qualche registro.

Ho ovviato al problema generando un overflow del WDT con seguente restart, molto elegante e funzionale, a proposito ringrazio tutti per l'attenzione e soprattutto chi mi ha suggerito di sfruttare questa possibilità.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...