picbasic e uart

Sep 11, 2005 2 Replies

ciao a tutti.



qualcuno è riuscito a far andare un pic 18f452 o anche un 16f876 con 20mhz con la 485 a 19200bps con il picbasic pro della melabs?



non c'è verso ho settato tutti i parametri ma sembra che perde dati. a 9600 va tutto, cambio l'spbrg e non va più o meglio comunica 1 volta su 20 perchè?



vi mando il mio pezzo di sorgente:



SPBRG = 129 TXSTA = %00100100 RCSTA = %10010000 Low SERINOUT



Cilco: ' ' For k=1 TO 20 Pause 1 Next k etc.... goto Ciclo



CHARIN: IF RCIF = 1 Then INTCON = %01000000 PIE1.5=0 HSerin [SERIALREAD] GoSub PROTOCOLIN INTCON = %11000000 PIE1.5=1 EndIF IF RCIF = 1 Then CHARIN Resume Enable



dove SERINOUT è l'abilitazione della 485, PROTOCOLIN è la funzione che memorizza i byte nell'array per la gestione.



grazie a tutti ciao


Non ho molto tempo per analizzare il tuo codice però: SPBRG non è necessario settarlo perchè viene settato automaticamente con DEFINE HSER_BAUD 19200 Poi non capisco il motivo del ciclo for next: Se è per leggere 20 caratteri non hai bisogno di farlo, è sufficiente specificare con il comando HSERIN quanti caratteri ricevere: gestisce tutto picbasic, altrimenti come succede può perdere il sincronismo. Leggi bene l'utilizzo del comando HSERIN che è molto potente:

Per esempio il comando:

HSERIN 3000,invcmd,[STR rxcmd\10\13] Leggerà una stringa di 10 caratteri al massimo, terminerà la comunicazione prima se arriverà il carattere "ascii 13" e se tutto questo non avverà in

3000mS tutto andrà alla routine invcmd

Spero di averti messo sulla strada giusta, perchè ho solo pochi minuti da dedicare, e non aver sparato qualche cazzata. CIAO, Riccardo.

"marco" ha scritto nel messaggio news:MDRUe.57753$ snipped-for-privacy@twister1.libero.it...

9600

si credo che mi hai messo sulla strada giusta. nei vari esempi che ho trovato si andava a ciclare in attesa dei vari byte fino a quando il buffer è pieno. ecco il perchè del ciclo for.

grazie e ciao

"Riccardo 68000" ha scritto nel messaggio news:y%UUe.59957$ snipped-for-privacy@twister2.libero.it...

tutto

20mhz

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required