Bonjour,
j’utilise un pic 18F46K22 pour communiquer avec un module gsm/gprs FX100 de sierra wireless.
celui-ci se pilote via des commande AT.
j'utilise donc un port uart du pic en 115000 baude pour la communication (via Rs232)
j'ai ecris mes propres procédure pour l’écriture (sortie) sur le port uart (gestion des interupte d'émission), pas de problème de ce coté là.
j'ai aussi écris mes propres procédure (gestion aussi des interuptes de réception) et je reçois bien les byte que je place pour l'instant dans un tableau (procedure faite dans l'interupt).
le problème c'est que je ne sais pas pas trop comment m'y prendre pour interpréter les trame reçues en langage c.
sans oublier le passage de l'information de l'interupt au main programme qui tourne tout les 10ms.
pour l'instant j'utilise une procédure pour le protocole cctalk,
ce protocole a une structure de trame bien définie
adresse de destination, nombre de byte de data (n), adresse source, header, data 0 , ..., data n, check sum
à chaque interupt j’incrémente une variable qui m'indique le numéro du byte reçus, et j'attribue donc ainsi les valeurs au variable correspondante et remplis un tableau pour les data reçues
une fois la trame reçue en entier je met un flag à 1 qui indique à la procédure du main () (qui tourne toute les 10ms) qu'une réponse valide à été reçues.
mais pour les commande AT, les réponse ne sont pas très formatées.
du style :
'CR' 'LF' +CSQ:13,0 'CR' 'LF'
'CR' 'LF' OK 'CR' 'LF'
de plus il peut même y avoir 2 trames de réponse.
Avez vous une idée ou une expérience a partager?
-----