Niki77 Inserito: 14 ottobre 2004 Segnala Inserito: 14 ottobre 2004 Salve a tutti,Per vostra conoscienza è possibile riavviare un pic di tipo 16f84 o 16f628 tramite software?asm, basic ,c , qualsiasi cosaPer riavviare intendo simulare la messa a massa(scusate il gioco di parole)del pin mclr...
dlgcom Inserita: 14 ottobre 2004 Segnala Inserita: 14 ottobre 2004 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.
wnc Inserita: 15 ottobre 2004 Segnala Inserita: 15 ottobre 2004 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
ifachsoftware Inserita: 15 ottobre 2004 Segnala Inserita: 15 ottobre 2004 Potresti usare una label con cui fai un Goto all'inizio del programma.Ciao
bit Inserita: 15 ottobre 2004 Segnala Inserita: 15 ottobre 2004 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!
ifachsoftware Inserita: 15 ottobre 2004 Segnala Inserita: 15 ottobre 2004 Hai ragione , pero' non e' stato specificato il perche' del reset pilotato , chiarito questo , si possono fare anche altre elucubrazioni Ciao
k6233 Inserita: 15 ottobre 2004 Segnala Inserita: 15 ottobre 2004 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ù.SalutiMarco
Niki77 Inserita: 15 ottobre 2004 Autore Segnala Inserita: 15 ottobre 2004 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.
ifachsoftware Inserita: 17 ottobre 2004 Segnala Inserita: 17 ottobre 2004 Per fare il reset di tutti i registri potresti farti una funzione ad hoc e poi fai il goto all'inizio.Ciao
Niki77 Inserita: 18 ottobre 2004 Autore Segnala Inserita: 18 ottobre 2004 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à.
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora