Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Idée pour s'entrainer sur l'UART ?
patou149
Débutant
Débutant
Messages : 35
Enregistré en : octobre 2015

#31 Message par patou149 » mer. 16 déc. 2015 16:39

Tu es en rebouclage c'est peut être normal il doit y avoir 2 buffers dans le pic, il faudrait regarder dans le datasheet si une fois les buffers remplis il y a blocage de ces buffers.
Comme tu transmets et seulement après tu lis il se passe peut être des choses
Faire le test en supprimant le rebouclage et en envoyant et recevant la chaîne de caractères sur le pc avec le convert UART/USB.

Idée pour s'entrainer sur l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2723
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#32 Message par Jérémy » mer. 16 déc. 2015 16:48

Faire le test en supprimant le rebouclage et en envoyant et recevant la chaîne de caractères sur le pc avec le convert UART/USB.

Aïe, ca va me perturber cette manip.

ne pourrais je pas utilisé l'outil USART-terminal de mikroC dans mon compilateur.
Je suis perdu UART - USART- RS-232 .... :oops:
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Idée pour s'entrainer sur l'UART ?
patou149
Débutant
Débutant
Messages : 35
Enregistré en : octobre 2015

#33 Message par patou149 » mer. 16 déc. 2015 17:11

UART : Universal Asynchronous Receiver Transmitter et USART : Universal Synchronous/Asynchronous Receiver Transmitter
donc très proches puisque la seule différence c'est Em/Rec synchrone.
RS232 cela définit plutôt le support de transmission (+ ou - 10v)
Il faudrait en gardant le rebouclage faire un test en utilisant les interruptions, mais il faut changer le programme pour cela.

Idée pour s'entrainer sur l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2723
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#34 Message par Jérémy » mer. 16 déc. 2015 17:19

Oui claudius m'en à parlé , je veux bien essayer essayer mais que dois-je faire avec l’interruption ? recevoir ou emettre et quand la déclenchée ?

La suite logique est l'écriture d'un programme de traitement sous interruption et c'est là que cela devient intéressant (en assembleur, en BASIC ou en Langage C ;-)) avec une gestion d'un buffer de type FIFO en réception voire en émission.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Idée pour s'entrainer sur l'UART ?
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 69
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#35 Message par Claudius » mer. 16 déc. 2015 17:35

Pas de précipitations...

En attendant, il y a une chose qui me chagrine dans ton programme c'est:

Code : Tout sélectionner

...
UART1_Read_Text(Rx_buffer, 13, 15);
...

Sauf erreur de ma part, dans la documentation de UARTx_Read_Text, le second argument est un pointeur sur un char et donc je ne vois pas l'objet de '13' (caractère Line Feed sans doute ;-))

Peux-tu essayer avec:

Code : Tout sélectionner

...
UART1_Read_Text(Rx_buffer, "y", 255);   // 255: continuously try to detect the Delimiter sequence 'y' character
...

A suivre...

Idée pour s'entrainer sur l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2723
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#36 Message par Jérémy » mer. 16 déc. 2015 17:44

J'obtiens : az

bizarre que ça s’arrête après 2 caractères !!

Le seconde argument se ne serait pas plutôt, le texte(suite de char) qui dit que c'est la fin de la réception , moi je le comprends comme ca .
Delimiter: sequence of characters that identifies the end of a received string

Ce qui me rassure , c'est que pour vous aussi ça parait pas évident avec l'exemple.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Idée pour s'entrainer sur l'UART ?
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 69
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#37 Message par Claudius » mer. 16 déc. 2015 17:57

Un autre truc me chagrine...

Code : Tout sélectionner

Lcd_Out (1,i+=1, Rx_buffer);   // i += 1 Ne sert strictement à rien

Je préfèrerai

Code : Tout sélectionner

Lcd_Out (1, 1, Rx_buffer);

De plus, pour éliminer une inconnue, que donne l'affichage direct de "azerty" dans le LCD:

Code : Tout sélectionner

Lcd_Out (1, 1, "azerty");

Idée pour s'entrainer sur l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2723
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#38 Message par Jérémy » mer. 16 déc. 2015 18:20

Lcd_Out (1,i+=1, Rx_buffer); // i += 1 Ne sert strictement à rien

Comme je récupère à chaque fois 1 char, je pensais que je devait décaler l’écriture sur le LCD pour ne pas effacer l'ancienne lettre ?

Je préfèrerai

Code : Tout sélectionner
Lcd_Out (1, 1, Rx_buffer);

pas de souci

Code : Tout sélectionner

De pluspour éliminer une inconnueque donne l'affichage direct de "azerty" dans le LCD:

cela affiche azerty parfaitement !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Idée pour s'entrainer sur l'UART ?
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 69
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#39 Message par Claudius » mer. 16 déc. 2015 18:25

"cela affiche azerty parfaitement !", avec le code ci-dessous

Code : Tout sélectionner

Lcd_Out (1, 1, "azerty");

On est bien d'accord ?

Idée pour s'entrainer sur l'UART ?
patou149
Débutant
Débutant
Messages : 35
Enregistré en : octobre 2015

#40 Message par patou149 » mer. 16 déc. 2015 18:29

regarde page 275 fig 16-5 du datasheet du 16f46k22 la réponse est peut être là.


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 61 invités