RESNIC Inserito: 17 novembre 2005 Segnala Inserito: 17 novembre 2005 Buongiorno, chiedo qualche idea sul "Come mai?"HO realizzato la recezione seriale di alcuni dati .... e per ora il controllo del RCREG viene fatto ad ogni scansione (del programma) e lo trasferisco in un Buffer da me creato.... Il tutto ha la gestione di un Display LCD 16x2...... e funziona tutto alla grande..... veramente......forse lo lascerò cosi!!!Per migliorare il progetto ho deciso di fare la recezione e salvare l'RCREG ad interrupt.... il tutto funziona bene.... solo che essendoci pure la gestione del Display questo impazzisce... nel senso che talvolta comincia a visualizzare caratteri strani e senza senzo,.... tra le ipotesi fatte del malfunamento ho messo il fatto che l'interrupt va a bloccare il programma (e se magari stà mandando qualcosa all'LCD, ciò perde il comando.... con tale ipotesi ho disabilitato l'iterrupt ogni volta che scrivevo su display... ma niente....IDEE????
elsabz Inserita: 17 novembre 2005 Segnala Inserita: 17 novembre 2005 Ciao, se il codice nell'interrupt è molto contenuto non vedo problemi per il tuo LCD. Probabilmente hai ecceduto in quello?
RESNIC Inserita: 17 novembre 2005 Autore Segnala Inserita: 17 novembre 2005 Il codice della recezione è del tipo:Void RX(unsigned char Buff[]){Buff[Puntatore]=RCREG;Puntatore++;}Perchè dici che se è troppo lungo ci sono dei problemi?Probabilmente il compilatore lo sviluppa e diventa lungo come codice....
RESNIC Inserita: 17 novembre 2005 Autore Segnala Inserita: 17 novembre 2005 Uso MCC18 della casa madre Microchip.....PS: La routine RX è richiamata dalla ISR ad alto livello di priorità!!
elsabz Inserita: 17 novembre 2005 Segnala Inserita: 17 novembre 2005 Ok, non mi sembra un codice eccessivo!Mi sembra strano che questo può causarti ritardi nel codice del LCD.Forse il problema sta da un altra parte!Ciao!
ifachsoftware Inserita: 17 novembre 2005 Segnala Inserita: 17 novembre 2005 Secondo me il problema non e' nell'interrupt ma o in qualche errrore di programma o forse (piu' probabile) nelle temporizzazioni dell'LCD.Ciao
Dario Valeri Inserita: 17 novembre 2005 Segnala Inserita: 17 novembre 2005 ciaoconcordo con ifachsoftware, ho avuto problemi analogi( con altri micro)e l'errore era sempre il mio programma (temporizzazioni)attenzione anche all'hardware.ciaodario
dlgcom Inserita: 17 novembre 2005 Segnala Inserita: 17 novembre 2005 Io non conosco il compilatore Mcc18.Sei sicuro che questo comp. ti genera il codice per salvare i registri importanti?Tipo W PC STATUS ecc.Per esempio in CCS lo fa in automatico , ma noon so nel c18.Non riesco a capire anche questa cosa del odice contenuto...Se quello che sta' facendo la routine di interrupt ha una priorita' rispetto al programma principale il codice puo' essere anche di grandi dimensioni , basta che alla fine metta tutto a posto prima di tornare al programma principale.Posso capire se ci sono piu' di un interrupt , allora si che la lunghezza puo' essere un problema .
RESNIC Inserita: 17 novembre 2005 Autore Segnala Inserita: 17 novembre 2005 Buongiorno,Stasera proverò a dare un'occhiata.... gli errori notturni oramai sono un MUST!!!Domani vi saprò dire!!!!
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