Gestione degli errori su comunicazione seriale

  • FABRIZIO
  • Autore della discussione
  • Elit Utente
  • Elit Utente
Di più
5 Giorni 19 Ore fa #1 da FABRIZIO
Buongiorno a tutti, ho creato programmi con la comunicazione seriale tra due PIC16F690 e anche tra PIC16F690 e altri microcontrollori; ho scoperto, tramite l'esperto Mauro Laurenti che peraltro ringrazio per lo spunto, di avere, ogni tanto, degli errori nei byte trasmessi e ricevuti, che mi creano anomalia nei programmi; il problema è che non ho idea di quale procedura seguire per gestire questi problemi. Qualcuno mi può dare qualche dritta? Grazie

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
5 Giorni 5 Ore fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Gestione degli errori su comunicazione seriale
Salve Fabrizio,

devi controllare il registro RCSTA , in particolare i bit FERR e OERR.
Devono essere entrambi a 0 altrimenti vuol dire che ci sono stati degli errori.

devi scrivere qualche cosa come:

if ((RCSTbit.FERR==0x01) || (RCSTbit.OERR==0x01)){

//Resetta il modulo UART (disattiva il modulo)
RCSTAbits.SPEN = 0x00;

//Riattiva il modulo
RCSTAbits.SPEN = 0x01;
}

in questo modo se è presente un errore, resetti il modulo.
I dati trasmessi durante il tempo dell'errore sono persi.

Se gli errori sono frequenti, ci sono altri problemi di base che devi cercare.
Puoi mettere un contatore nella funzione per vedere quante volte viene chiamata.
Puoi creare anche una funione per bit di errore e mettere il relativo contatore.
In questo modo sai quanti e quali errori hai.

Saluti,

Mauro Laurenti


 
I seguenti utenti hanno detto grazie : FABRIZIO

Si prega Accesso o Crea un account a partecipare alla conversazione.

Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Forum - Ultimi messaggi