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 ---
- 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 ---
Modérateur : Jérémy
Idée pour s'entrainer sur l'UART ?
Re Jérémy,
Bravo. S'agissant de "Par contre impossible d'envoyer une phrase genre "Hello World !!!", attention tu rentres dans le cas d'émission / réception de trames dont le traitement est par définition du protocole UART fait caractère par caractère...
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.
Désolé, cela devient peut-être technique mais c'est un passage obligé si l'on veut maîtriser les communications entre µC et périphériques sans faire de boucles d'attentes pendant lesquelles le µC peut largement faire autre chose ou même dormir 95% du temps
.
NB: Il doit y avoir plein d'exemples sur la toile avec notamment les gestions des erreurs Underflow et Overflow...
Bravo. S'agissant de "Par contre impossible d'envoyer une phrase genre "Hello World !!!", attention tu rentres dans le cas d'émission / réception de trames dont le traitement est par définition du protocole UART fait caractère par caractère...
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
Désolé, cela devient peut-être technique mais c'est un passage obligé si l'on veut maîtriser les communications entre µC et périphériques sans faire de boucles d'attentes pendant lesquelles le µC peut largement faire autre chose ou même dormir 95% du temps
NB: Il doit y avoir plein d'exemples sur la toile avec notamment les gestions des erreurs Underflow et Overflow...
Modifié en dernier par Claudius le mer. 16 déc. 2015 13:24, modifié 2 fois.
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
Idée pour s'entrainer sur l'UART ?
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
merci Claudius,
Oui je souhaite m'initier a la communication car je vais de toute les manières en avoir besoin .... vu le nombre de capteur que j'ai a mettre un œuvre sur mon projet.
Pour le coté technique, pas de probléme j'adore mais il me faut bucher sur les termes FIFO, buffer.... . buffer est une espece de mémoire tampon si je ne m'abuse , mais FIFO , je vais googler !.
Oui l'UART c'est caractère par caractère de ce que j'ai cru comprendre lors de mes lectures . Donc je dois décomposer ma phrase lettre par lettre, puis l'envoyer , puis l'enregistrer aussi lettre par lettre et ensuite la recomposée et enfin l'affichée ?
Oui je souhaite m'initier a la communication car je vais de toute les manières en avoir besoin .... vu le nombre de capteur que j'ai a mettre un œuvre sur mon projet.
Pour le coté technique, pas de probléme j'adore mais il me faut bucher sur les termes FIFO, buffer.... . buffer est une espece de mémoire tampon si je ne m'abuse , mais FIFO , je vais googler !.
Oui l'UART c'est caractère par caractère de ce que j'ai cru comprendre lors de mes lectures . Donc je dois décomposer ma phrase lettre par lettre, puis l'envoyer , puis l'enregistrer aussi lettre par lettre et ensuite la recomposée et enfin l'affichée ?
Idée pour s'entrainer sur l'UART ?
Jérémy a écrit :Pour le coté technique, pas de probléme j'adore mais il me faut bucher sur les termes FIFO, buffer.... . buffer est une espece de mémoire tampon si je ne m'abuse , mais FIFO , je vais googler !.
Oui l'UART c'est caractère par caractère de ce que j'ai cru comprendre lors de mes lectures . Donc je dois décomposer ma phrase lettre par lettre, puis l'envoyer , puis l'enregistrer aussi lettre par lettre et ensuite la recomposée et enfin l'affichée ?
Les modules UART des PIC possèdent des mémoires tampon.
Il faut envoyer les données octet par octet, mais on peut envoyer une tripotée d'octets d'un coup.
Idée pour s'entrainer sur l'UART ?
Idée pour s'entrainer sur l'UART ?
Bonjour,
tu peux regarder la fonction UARTx_write_text ou UART_read_text, il y a une autre fonction qui semble particulièrement intéressante,
c'est la fonction PrintOut car elle permet de choisir la destination et d'effectuer une mise en forme de la chaîne de caractères.
Elle est le pendant de la fonction printf.
tu peux regarder la fonction UARTx_write_text ou UART_read_text, il y a une autre fonction qui semble particulièrement intéressante,
c'est la fonction PrintOut car elle permet de choisir la destination et d'effectuer une mise en forme de la chaîne de caractères.
Elle est le pendant de la fonction printf.
Idée pour s'entrainer sur l'UART ?
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
hello patou,
promis je regarderais aprés mais pour le moment j'aimerais reussir avec la methode prevu a cet effet ! C'est mon côté sado qui ressort, des fois j'aime en chié, mais je suis trop content quand ca focntionne ;
Je buche je buche ... j'avance un peu j'arrive a ecrire deux lettre a la suite et la troisieme bizarrement ca deviens ma dernier lettre
voici ou j'en suis.
Le texte qui s'affiche : azy
Je cherche, les exemples simples ne sont pas si nombreux que ça sur la toile
promis je regarderais aprés mais pour le moment j'aimerais reussir avec la methode prevu a cet effet ! C'est mon côté sado qui ressort, des fois j'aime en chié, mais je suis trop content quand ca focntionne ;
Je buche je buche ... j'avance un peu j'arrive a ecrire deux lettre a la suite et la troisieme bizarrement ca deviens ma dernier lettre
voici ou j'en suis.
Code : Tout sélectionner
/*##################################################################################
Programme de test pour liaison UART sur carte EasyPIC_V7
Fait par Jérémy pour FantasPic.fr
- Version du "15-12-2015"
- MikroC version 6.6.2
- PIC 18F46K22 FOSC à 8MHZ, Quartz extrene de 8Mhz, PLL désactivée
- Data-Shit du PIC : http://ww1.microchip.com/downloads/en/DeviceDoc/41412F.pdf
- manuel et schéma de la carte : http://www.mikroe.com/downloads/get/1711/easypic_v7_manual_v104c.pdf
#################################################################################*/
// Connections de l'écran LCD
sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Fin connections LCD
// Déclaration des variables utilisées ------------------------------------------
unsigned int Rx, compteur=0 , i ;
char Rx_buffer[16];
char Tx_buffer[] = "Hello World !!!";
// Fin des varaibles---------------------------------------------------------------
//##################################################################################
//######################### PROGRAMME PRINCIPAL #########################
//##################################################################################
void main() {
ANSELB = 0x00; // Configure le PORTB en digital pour le LCD
ANSELC = 0x00;
TRISB = 0x00; // PORTB en sortie
UART1_Init(9600); // Initialisation de l'UART
delay_ms(100); // Petite pause
Lcd_Init(); // Initialisation du LCD
Lcd_Cmd (_LCD_CLEAR); // On efface l'écran
Lcd_Cmd (_LCD_CURSOR_OFF); // On arrete le clignotement du curseur
delay_ms(100); // Petite pause
i=0;
UART1_Write_Text("azerty");
//####################### BOUCLE INFINIE ####################################
while (1){
if (UART1_Data_Ready() == 1) {
UART1_Read_Text(Rx_buffer, 13, 15);
//WordToStr (Rx, Tx_buffer);
Lcd_Out (1,i+=1,Rx_buffer);
delay_ms(1000);
}
}
}Le texte qui s'affiche : azy
Je cherche, les exemples simples ne sont pas si nombreux que ça sur la toile
Idée pour s'entrainer sur l'UART ?
Idée pour s'entrainer sur l'UART ?
Idée pour s'entrainer sur l'UART ?
Jérémy a écrit :Source du message UART1_Read_Text(Rx_buffer, 13, 15);
changer dans cette ligne le "13" par "y".
Idée pour s'entrainer sur l'UART ?
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités


