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 ---
On parle des Pics, sans rapport avec le langage ou la programmation

Modérateur : Jérémy

Pic18F26K22 et ses deux Eusarts
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2898
Enregistré en : juillet 2016
Localisation : Terre

#1 Message par Temps-x » jeu. 15 août 2024 02:33

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+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Pic18F26K22 et ses deux Eusarts
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1619
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#2 Message par venom » jeu. 15 août 2024 12:02

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 :mad:

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 interneI/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 TXSTA1TRMT  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 RCREG1W      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 :sifflotte: :-D







@++
Mon site web
Mon discord : venom#4888

Pic18F26K22 et ses deux Eusarts
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3257
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#3 Message par paulfjujo » jeu. 15 août 2024 12:05

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
Aide toi, le ciel ou FantasPic t'aidera

Pic18F26K22 et ses deux Eusarts
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1619
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#4 Message par venom » jeu. 15 août 2024 13:25

paulfjujo a écrit :grillé par Venom .. mais je demande rien au chat


Oui mais tu as les connaissances que je n'ai pas :roll: :oops:






@++
Mon site web
Mon discord : venom#4888

Pic18F26K22 et ses deux Eusarts
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2898
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » jeu. 15 août 2024 15:34

Bonjour venom, paulfjujo, et tout le forum,

:eek: incroyable de voir ça, tout en français et en ASM :razz:

Merci ! 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.

:roll: 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

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 :lol: ce qui fallait écrire

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 ....

Merci !

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Pic18F26K22 et ses deux Eusarts
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1619
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#6 Message par venom » jeu. 15 août 2024 16:36

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 :wink:






@++
Mon site web
Mon discord : venom#4888

Pic18F26K22 et ses deux Eusarts
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#7 Message par F6FCO » sam. 24 août 2024 00:15

Il va prendre des morceaux de ci et de là sur le web, il y a du bon et du mauvais et il ne sait pas faire la différence.
Une porte nand prend 2 bits en entrée... :eek:

Pic18F26K22 et ses deux Eusarts
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1619
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#8 Message par venom » sam. 24 août 2024 07:53

C'est sûr. Ça reste une machine :roll:






@++
Mon site web
Mon discord : venom#4888

Pic18F26K22 et ses deux Eusarts
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#9 Message par F6FCO » sam. 24 août 2024 17:21

Voui mais y'a peut-être Skynet derrière...
Une porte nand prend 2 bits en entrée... :eek:

Pic18F26K22 et ses deux Eusarts
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2898
Enregistré en : juillet 2016
Localisation : Terre

#10 Message par Temps-x » sam. 24 août 2024 18:16

Bonjour,

humour!! :roll: On peut imaginé un double de Gérard en machine ...... exit

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Généralités sur les PICs »

Qui est en ligne

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