picbasic e uart

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

Reply to
marco
Loading thread data ...

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
Reply to
Riccardo 68000

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
Reply to
marco

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.