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
Pic18F26K22 et ses deux Eusarts
Bonjour tout le forum,
Question simple, mais... qui s'adresse au connaisseur, j'ai vu qu'il y a sur le Pic18F26K22 deux Eusarts.
Peut-on utiliser ses deux Eusarts en même temps pour la réception de 2 modules indépendamment ?
Ou, faut-ils ont choisi une des deux indépendamment sans activer la seconde Eusart ?
Je vous remercie pour votre réponse à venir.
A+
Question simple, mais... qui s'adresse au connaisseur, j'ai vu qu'il y a sur le Pic18F26K22 deux Eusarts.
Peut-on utiliser ses deux Eusarts en même temps pour la réception de 2 modules indépendamment ?
Ou, faut-ils ont choisi une des deux indépendamment sans activer la seconde Eusart ?
Je vous remercie pour votre réponse à venir.
Pic18F26K22 et ses deux Eusarts
Bonjour Temps-x et bonjour à tous.
Comme tu sais je ne suis pas expert. Mais j'ai demandé à notre amis chatGPT qui dit que c'est possible. Même si il 'e faut pas toujours l'écouter
Voici le résultat :
Ce code montre comment initialiser les modules EUSART pour la communication série asynchrone, envoyer des caractères via les deux EUSARTs, et recevoir des caractères en utilisant des interruptions.
Explication du code :
Configuration des EUSARTs : Les modules EUSART1 et EUSART2 sont configurés pour une communication série asynchrone à 9600 bauds avec un oscillateur interne de 16 MHz.
Interruptions : Les interruptions de réception sont activées pour les deux EUSARTs, permettant au microcontrôleur de recevoir des données sans bloquer l'exécution principale.
Envoi de données : Le code envoie en boucle les caractères 'A' via EUSART1 et 'B' via EUSART2.
Routine d'interruption : Lorsque des données sont reçues via EUSART1 ou EUSART2, elles sont stockées dans les variables RX1_BUFFER et RX2_BUFFER respectivement.
Ce code est un point de départ pour des applications utilisant les deux modules EUSART du PIC18F26K22 en parallèle. Pour une application réelle, vous devrez probablement ajouter une gestion des erreurs de réception et peut-être utiliser un tampon circulaire pour les données reçues.
Si jamais ça te parle
@++
Comme tu sais je ne suis pas expert. Mais j'ai demandé à notre amis chatGPT qui dit que c'est possible. Même si il 'e faut pas toujours l'écouter
Voici le résultat :
Ce code montre comment initialiser les modules EUSART pour la communication série asynchrone, envoyer des caractères via les deux EUSARTs, et recevoir des caractères en utilisant des interruptions.
Code : Tout sélectionner
; Configuration du PIC18F26K22
#include <p18f26k22.inc>
CONFIG FOSC = INTIO67 ; Oscillateur interne, I/O sur les broches RA6 et RA7
CONFIG WDTEN = OFF ; Désactiver le Watchdog Timer
CONFIG LVP = OFF ; Désactiver le mode de programmation en basse tension
; Définitions de variables
CBLOCK 0x20
RX1_BUFFER ; Variable pour stocker les données reçues via EUSART1
RX2_BUFFER ; Variable pour stocker les données reçues via EUSART2
ENDC
; Début du programme
ORG 0x00
goto Main ; Sauter à la routine principale
ORG 0x08
goto ISR ; Sauter à la routine d'interruption
; Routine principale
Main:
; Configuration de l'oscillateur interne
bsf OSCCON, IRCF2 ; 16 MHz interne
bsf OSCCON, IRCF1
bsf OSCCON, IRCF0
; Initialisation de EUSART1
clrf TXSTA1 ; Effacer le registre TXSTA1
clrf RCSTA1 ; Effacer le registre RCSTA1
clrf SPBRG1 ; Effacer le registre SPBRG1
movlw 103 ; Charger la valeur de 103 pour 9600 bauds
movwf SPBRG1 ; Configurer SPBRG1
bsf TXSTA1, BRGH ; Configurer la vitesse élevée
bsf TXSTA1, TXEN ; Activer la transmission
bsf RCSTA1, SPEN ; Activer le port série
bsf RCSTA1, CREN ; Activer la réception continue
; Initialisation de EUSART2
clrf TXSTA2 ; Effacer le registre TXSTA2
clrf RCSTA2 ; Effacer le registre RCSTA2
clrf SPBRG2 ; Effacer le registre SPBRG2
movlw 103 ; Charger la valeur de 103 pour 9600 bauds
movwf SPBRG2 ; Configurer SPBRG2
bsf TXSTA2, BRGH ; Configurer la vitesse élevée
bsf TXSTA2, TXEN ; Activer la transmission
bsf RCSTA2, SPEN ; Activer le port série
bsf RCSTA2, CREN ; Activer la réception continue
; Activer les interruptions
bsf PIE1, RC1IE ; Activer l'interruption de réception pour EUSART1
bsf PIE3, RC2IE ; Activer l'interruption de réception pour EUSART2
bsf INTCON, PEIE ; Activer les interruptions périphériques
bsf INTCON, GIE ; Activer les interruptions globales
; Boucle principale
MainLoop:
; Exemple d'envoi de données
movlw 'A' ; Charger le caractère 'A'
call SendByte1 ; Envoyer via EUSART1
movlw 'B' ; Charger le caractère 'B'
call SendByte2 ; Envoyer via EUSART2
goto MainLoop ; Boucle infinie
; Envoi d'un octet via EUSART1
SendByte1:
btfss TXSTA1, TRMT ; Attendre que le registre soit vide
goto $-1
movwf TXREG1 ; Envoyer le caractère
return
; Envoi d'un octet via EUSART2
SendByte2:
btfss TXSTA2, TRMT ; Attendre que le registre soit vide
goto $-1
movwf TXREG2 ; Envoyer le caractère
return
; Routine d'interruption
ISR:
; Vérifier l'interruption EUSART1
btfsc PIR1, RC1IF
goto HandleRX1
; Vérifier l'interruption EUSART2
btfsc PIR3, RC2IF
goto HandleRX2
retfie
HandleRX1:
movf RCREG1, W ; Lire les données reçues dans W
movwf RX1_BUFFER ; Stocker dans RX1_BUFFER
bcf PIR1, RC1IF ; Effacer le flag d'interruption
retfie
HandleRX2:
movf RCREG2, W ; Lire les données reçues dans W
movwf RX2_BUFFER ; Stocker dans RX2_BUFFER
bcf PIR3, RC2IF ; Effacer le flag d'interruption
retfie
END
Explication du code :
Configuration des EUSARTs : Les modules EUSART1 et EUSART2 sont configurés pour une communication série asynchrone à 9600 bauds avec un oscillateur interne de 16 MHz.
Interruptions : Les interruptions de réception sont activées pour les deux EUSARTs, permettant au microcontrôleur de recevoir des données sans bloquer l'exécution principale.
Envoi de données : Le code envoie en boucle les caractères 'A' via EUSART1 et 'B' via EUSART2.
Routine d'interruption : Lorsque des données sont reçues via EUSART1 ou EUSART2, elles sont stockées dans les variables RX1_BUFFER et RX2_BUFFER respectivement.
Ce code est un point de départ pour des applications utilisant les deux modules EUSART du PIC18F26K22 en parallèle. Pour une application réelle, vous devrez probablement ajouter une gestion des erreurs de réception et peut-être utiliser un tampon circulaire pour les données reçues.
Si jamais ça te parle
@++
Pic18F26K22 et ses deux Eusarts
- paulfjujo

Maître- Messages : 3257
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour TempsX,
OUI , 2 UART hardware dispo sur ce PIC ... donc simultané possible ....
RB6 TX2
RB7 RX2
RC6 TX1
RC7 RX1
voir 3em UART Soft..
+ TX3 en Big bang asm ...sur une pin quelconque ..à 9600 bds
+ RX3 possible avec RB0 interrupt
grillé par Venom .. mais je demande rien au chat
dans le code, le chat a oublier de gerer le buffer .. à incrementer l'index ,tester ...
sinon ecrabouille à chaque lecture
OUI , 2 UART hardware dispo sur ce PIC ... donc simultané possible ....
RB6 TX2
RB7 RX2
RC6 TX1
RC7 RX1
voir 3em UART Soft..
+ TX3 en Big bang asm ...sur une pin quelconque ..à 9600 bds
+ RX3 possible avec RB0 interrupt
grillé par Venom .. mais je demande rien au chat
dans le code, le chat a oublier de gerer le buffer .. à incrementer l'index ,tester ...
sinon ecrabouille à chaque lecture
Pic18F26K22 et ses deux Eusarts
paulfjujo a écrit :grillé par Venom .. mais je demande rien au chat
Oui mais tu as les connaissances que je n'ai pas
@++
Pic18F26K22 et ses deux Eusarts
Bonjour venom, paulfjujo, et tout le forum,
incroyable de voir ça, tout en français et en ASM
venom et paulfjujo pour votre implication de ma demande, je ne sais quoi dire.
Même si l'intelligence artificielle est capable de ressortir un code, elle n'arrivera jamais à la pointe d'un bon programmeur comme paulfjujo
Il m'arrive de jouer contre des machines, et parfois il faut avouer quelle font des choses qu'un humain ne ferait jamais.... et le pire dans cette histoire c'est quand fessant ça elle me prouve quelle à raison en gagnant la partie.
Fin de compte terminator, c'est peut être un film d'avenir
J'ai essayé de compiler la source que venom à fourni, elle ne se compile pas, il ya plein d'erreur
En voici une belle
L'intelligence artificielle se croit avec un Pic16F
ce qui fallait écrire
C'est vrai, il faut un tableau pour y stocher les données reçu, bien vu ....
A+
venom et paulfjujo pour votre implication de ma demande, je ne sais quoi dire.Même si l'intelligence artificielle est capable de ressortir un code, elle n'arrivera jamais à la pointe d'un bon programmeur comme paulfjujo
Il m'arrive de jouer contre des machines, et parfois il faut avouer quelle font des choses qu'un humain ne ferait jamais.... et le pire dans cette histoire c'est quand fessant ça elle me prouve quelle à raison en gagnant la partie.
J'ai essayé de compiler la source que venom à fourni, elle ne se compile pas, il ya plein d'erreur
En voici une belle
Code : Tout sélectionner
SendByte1:
btfss TXSTA1, TRMT ; Attendre que le registre soit vide
goto $-D'1'
movwf TXREG1 ; Envoyer le caractère
return
L'intelligence artificielle se croit avec un Pic16F
Code : Tout sélectionner
SendByte1:
btfss TXSTA1, TRMT ; Attendre que le registre soit vide
goto $-D'2'
movwf TXREG1 ; Envoyer le caractère
return
paulfjujo a écrit :Source du message dans le code, le chat a oublier de gerer le buffer .. à incrementer l'index ,tester ...
sinon ecrabouille à chaque lecture
C'est vrai, il faut un tableau pour y stocher les données reçu, bien vu ....
Pic18F26K22 et ses deux Eusarts
Temps-x a écrit :J'ai essayé de compiler la source que venom à fourni, elle ne se compile pas, il ya plein d'erreur
Comme a chaque fois. Mais ça peut donner une base, une approche sur la chose. Perso tout les codes ont toujours eu des erreurs. Mais bon c'est une machine comme tu dis
@++
Pic18F26K22 et ses deux Eusarts
Pic18F26K22 et ses deux Eusarts
C'est sûr. Ça reste une machine
@++
@++
Pic18F26K22 et ses deux Eusarts
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

