J'utilise MPLAB 8.76 je programme en C avec le compilateur C30 , et je dispose d'un pickit2
et de realterm avec un convertisseur usb/serie (ftdi)
Voici mon problème.
Je veux récupérer les trames de mon gps via l'interface uart, (je dispose de deux uart sur mon dspic UART1 et UART2)
UART1 connecté au GPS
UART2 connecté au PC (affichage des caractére reçu sur realterm, pour ceux qui ne connaissent pas, c'est un logiciel au fonctionnement similaire du défunt hyperterminal )
mon gps est un LS00031 de locosys.
J'ai fait une boucle, qui teste chaque caractère reçu du GPS,
d'abord on test "$", si "$" n'est pas reçu on casse la boucle, si il est reçu on test les lettres suivante qui doivent etre G,P,R,M,C ... pour "$GPRMC". ou "$GGA"
il se présente deux cas de figure,
1 Si un caractère est détecté dans le buffer, on lit la donné et on la transfère dans une variable qui est retourné via un "return".
ensuite on test le caractére. Cela marche jusqu'au 5éme caractére. Le buffer est plein, on prend le 5éme caractére , je l'affiche et ensuite je le reintialise. (U1STAbits.OERR=0); et le buffer est vidé.
Cependant aprés l'avoir réinitiliaser. les caractére suivants ne sont pas affiché.
2
Dans une autre boucle (activé via un bouton). Je transmet directement les caractères reçu dans U1RXREG sur U2TXREG. Cela fonctionne jusqu'au 8éme caractére.
-cas 1 : Sans la réinitialisation du buffer , les caractére sont parfaitement affiché jusqu'au 8éme, voir 9éme caractére , et le 9éme caractére (ou 8éme) est répété indéfiniment tant que le bouton est activé. :(
-cas 2 : avec la réinitialisation du buffer (U1STAbits.OERR), tous les caractére reçu sont pratiquement illisible, a certains moment on voit des bouts de trame "N,0,34.700.." "$GGA" $GPRMC" .. mais jamais rien de concret.
3 Mon gps fonctionne a 34800bps avec le pic. Le convertisseur usb/serie connecté a mon pic fonctionne aussi a 34800bps.
Je n'arrive pas a configurer la vitesse de transmission du gps en dessous de 38400bps (au dessus oui) .
Devrais-je essayer de monter la vitesse entre le pc et le pic? ou de réduire la vitesse entre le pic et le gps??