Vai al contenuto
PLC Forum


Reset


qwertyuiop

Messaggi consigliati

salve a tutti avrei un piccolo problema. mi serve realizzare una routine in pic assembler che mi consentisse di azzerare il programma dopo alcuni minuti e restart di nuovo.

io sto usando il pic16f73.

puo' qualcuno aiutarmi a scrivere questa routine?

grazie in anticipo

e' veramente importante per me ricevere risposta .

se ci fosse la possibilita' di ricevere la routine gia' scritta sarebbe piu' gradito, visto che teoricamente so o meglio penso di sapere come dovrei fare a scriverla ma praticamente non ci sto riuscendo.

mi serve fare cio' perche' sto utilizzando un pic connesso con un dispositivo bluetooth e quello che succede e' che dopo qualche minuto la comunicazione si 'pianta', allora la mia idea era quella di resettare il pic e riiniziare tutto il programma dall'inizio.

grazie.

luca

Link al commento
Condividi su altri siti


Se, come scrivi, teoricamente sai come fare in pratica la cosa è semplicissima.

Basta gestire il tutto nell'interrupt del timer 0, p.e., Conteggi un numero di interruzzioni equivalente al tempo che intendi interporre tra due reset. Se il conteggio è uguale o maggiore al numero preventivato scrivi nel top dello stack l'indirizzo della routine di reset oppure, più drasticamente 0x000. All'uscita della riutine di interrupt il PG andrà automaticamente all'indirizzo di reset.

P.S. Aiuti e consigli vengono dati normalmente, mentre le rischieste di soluzione completa possono indispettire :angry:

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Al di là delle considerazioni tecniche, vorrei fare una considerazione di tipo "analitico":

Se i programma si "pianta" il restart del micro, sempre dato e non concesso che sia solutivo, non é una soluzione é una "pezza" che oltre a non risolvere potrebbe condizionare altre sequenze che potrebbero essere gestite. Pensa ad esempio a cosa potrebbe succedere ad una eventuale routine di calcoli all'intervento del "reset".

Saluti

Link al commento
Condividi su altri siti

..Pensa ad esempio a cosa potrebbe succedere ad una eventuale routine di calcoli all'intervento del "reset".
Link al commento
Condividi su altri siti

Non sarebbe un gran problema, il prgogramma riparte da zero e tutti i dati vengono azzerati, l'eventuale calcolo aritmentico ripartirebbe dall'inizio.
Link al commento
Condividi su altri siti

Omar bisogna distinguere la strategia dagli effetti.

Riguardo alla strategia sono perfettamente in accordo con la tua idea. Tamponare gli inconvenienti, invece che eliminarne le cause, è un modo errato di lavoro, anzi è un modo che non dovrebbe essere mai impiegato se non in casi di emergenza. Un po come lo spago ed il fil di ferro.

Altro discorso sono gli effetti.

Se ritengo possibile ripartire da zero, per ovviare ad un inconveniente maggiore, devo assolutamente azzerare tutto. Perchè niente assicura che le condizioni al contorno siano costanti. QUindi in caso di calcoli devo rifarli da zero.

Link al commento
Condividi su altri siti

  • 2 weeks later...

si avete ragione ma i problemi sono due:

1. non so come scriverla o meglio l'ho fatto ma non funziona

2. sono d'accordo col fatto che non è la soluzione migliore ma non trovo il bug, e la cosa peggiore è che nessuno fino ad adesso è riuscito a capire cosa c'è che non fa nel codice anche perchè quando connetto due disposoitivi bluetooth tra loro connessi ripettiva,emte a due pic quello che avviene dopo un paio di minuti è che la comunicazione si pianta ma all'uscita del TX UART il segnale è presente e risponde perfettamente alle mie sollecitazioni..... per cui non so che soluzioni utilizzare anche perchè dovrei fare ciò nel più breve tempo possibile purtroppo.

grazie in anticipo per il vostro aiuto e spero che possiate continuare a garantirlo.

p.s. magari la domanda è stata posto in malo modo e rileggendola mi rendo conto che potrebbe indispettire .... ma gli sfottò non sono graditi. grazie

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