Vai al contenuto
PLC Forum


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


Messaggi consigliati

Inserito:

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


Inserita:

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.

Inserita:

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

Inserita:

Potresti usare una label con cui fai un Goto all'inizio del programma.

Ciao :)

Inserita:

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!

Inserita:

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

Ciao :)

Inserita:

A me piace la soluzione di Dlgcom del transistor pilotato da un pin del pic.

Di sicuro effetto e solo un transistor e una resistenza in più.

Saluti

Marco

Inserita:

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.

Inserita:

Per fare il reset di tutti i registri potresti farti una funzione ad hoc e poi fai il goto all'inizio.

Ciao B)

Inserita:

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à.

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