errori da usart

11 Anni 8 Mesi fa #1 da Alex68
errori da usart è stato creato da Alex68
Ciao

sto litigando con la ricezione di dati sequenziali da seriale, poichè ricevendo molti byte uno dietro l'altro, usando la libreria usart.h fornita con il C18, il Pic ad un certo punto si impalla e si blocca.
Leggendo il datasheet del pic 18f2550 ho capito che probabilmante si tratta di errori di frame o overrun.
Ho inserito queste linee di codice all'interno del mio programma

while (! DataRdyUSART())
{
if(RCSTAbits.FERR || RCSTAbits.OERR)
{
RCSTAbits.CREN = 0 ; RCSTAbits.CREN= 1 ;
}
}

e sembra che adesso il programma che gira su pic non si blocca più.

Ora vorrei chiedere un paio di cose:
1 ) Come mai un controllo così importante non è stato inserito allìinterno della libreria usart del c18?
2 ) Se volessi inserire il controllo dell'errore di frame e overrun all'interno della libreria, come si fa e dove si inserisce il breve codice di cui sopra?

Questo poichè ritengo una grossa mancanza la gestione degli errori che si generano con la comunicazione seriale.

grazie a tutti

ciao

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

  • Alex68
  • Visitatori
  • Visitatori
11 Anni 8 Mesi fa #2 da StefA
Risposta da StefA al topic errori da usart
1) sarà per scelta, hanno fatto la libreria senza metterci dentro tutti i controlli, ce ne sono altri oltre quello che hai citato. Le librerie sono gratis, ma i programmatori non fanno volontariato :P

2)Ti servirebbero i sorgenti..i file .c insomma..devi vedere dentro i file .h..quali file .c sono inclusi..ammesso che rilascino i sorgenti (non lo so), se invece rilasciano solamente i file .h e file .lib, non puoi modificarle.
Fermorestando che mettere le mani dentro queste librerie è tutt'altro che una passeggiata, forse ti conviene crearti una libreria tua (o anche una semplice funzione) dove effettui tutti i controlli che ti servono. Io non me la sentirei (forse non sarei nemmeno in grado) di andare a modificare le loro librerie e opterei per scrivermi quello che mi serve e mi manca.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 8 Mesi fa #3 da Alex68
Risposta da Alex68 al topic errori da usart
Ok

comincerò a crearmi le mie librerie

Grazie

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

  • Alex68
  • Visitatori
  • Visitatori
11 Anni 8 Mesi fa #4 da StefA
Risposta da StefA al topic errori da usart
se devi effettuare solo quel controllo..puoi anche pensare di andarti a copia-incollare la funzione quando ti serve..dipende da quanto frequentemente la userai.
Purtroppo o per fortuna...non tutto si trova già pronto! ;)

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 8 Mesi fa #5 da Mauro Laurenti
Risposta da Mauro Laurenti al topic errori da usart
Ciao Alex,

condivido con StefA, che e' bene non modificare le librerie originali.
La frequenza degli errori dipende molto dall'applicazione (baud rate, uso o meno delle interruzioni...).
Nel datasheet si dice solo che se ci sono problemi i flag si attivano e si possono gestire i problemi.

Il progettista ha il compito e responsabilità che il sistema funzioni... :)
,,,ovvero e' tua responsabilità! :)

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
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.

Login