- Messaggi: 1222
- Ringraziamenti ricevuti 104
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
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
- Autore della discussione
- Visitatori
11 Anni 8 Mesi fa #2
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
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
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
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
- Moderator
Riduci
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
comincerò a crearmi le mie librerie
Grazie
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Alex68
- Autore della discussione
- Visitatori
11 Anni 8 Mesi fa #4
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
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
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
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
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
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.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.