Problème interruption Rx avec Pic18F4550

Forum de support pour les locuteurs de la langue française qui souhaitent écrire dans leur langue maternelle.

Moderator: Benj

Post Reply
oliviermalherbe
Posts: 7
Joined: Mon Jan 13, 2020 4:00 pm
Contact:

Problème interruption Rx avec Pic18F4550

Post by oliviermalherbe »

Bonjour,
Je travaille sur un programme ou j'ai besoin de recevoir un caractère suite à une interruption par l'uart d'un 18F4550.
J'utilise flowcode 4.5 et je transfert et teste mes programmes avec une carte HP488.
J'ai testé mon programme avec un 16F877A et cela marche parfaitement.
Mais, comme j'envisage d'avoir besoin de plus de mémoire programme j'ai décidé de passer sur un 18F4550 que je possédais déjà.
J'ai utilisé le même programme que pour le 16F877A en adaptant les réglages pour le 18F4550, tout fonctionne correctement sauf l'interruption sur RX qui ne se fait pas.
J'ai pas mal cherché mais n'arrive pas résoudre le problème.
Je fourni mon programme en pièce jointe.
Quelqu'un pourrait-il m'aider ?
Je vous remercie par avance pour vos réponses.
OM.
Flowcode1.fcf
(8.5 KiB) Downloaded 48 times

User avatar
Benj
Matrix Staff
Posts: 14865
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by Benj »

Hello,

It's probably a case of not configuring the chip correctly. I would start with a 1 second flasher test to get things right and go from there.
https://www.matrixtsl.com/wiki/index.ph ... ED_flasher

We have had lots of forum posts with config settings for the 18F4455 and 4550 devices so this is a good starting point.

oliviermalherbe
Posts: 7
Joined: Mon Jan 13, 2020 4:00 pm
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by oliviermalherbe »

Bonjour Benj,

Tout d'abord, merci votre réponse.
Le lien que vous me donnez correspond à un PIC16870 et pas à un PIC18F4550.
J'ai déjà fait fonctionner des programmes sur le PIC18F4550 (LED, LCD, UART, carte SD etc...) et ils ont tous bien fonctionné.
Le problème vient uniquement de l'interruption sur l'uart (RXINT).
Quand j'envoie une trame sur l'uart, le PIC ne réagit pas et l'interruption ne se fait pas.
J'ai mis mon fichier .fcf en pièce jointe avec la configuration que j'ai utilisé pour le 18F4550.


Cordialement,
Olivier.

User avatar
Benj
Matrix Staff
Posts: 14865
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by Benj »

Bonjour Olivier,

Aha ok merci, cela ressemble alors à votre configuration correctement. Je vais installer v4.5 sur ma machine et je vais vous chercher rapidement.



Hello Olivier,

Aha ok thanks it sounds like your setup correctly then. I'll get v4.5 installed n my machine and have a quick look for you.

User avatar
Benj
Matrix Staff
Posts: 14865
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by Benj »

Veuillez essayer d'ajouter cette ligne de code à l'aide d'une icône C après l'icône d'activation d'interruption RXINT. Espérons que cela résoudra le problème.

Code: Select all

st_bit(pie1, RCIE);

Please can you try adding this line of code using a C icon after the RXINT interrupt enable icon. Hopefully this will solve the problem.

Code: Select all

st_bit(pie1, RCIE);

oliviermalherbe
Posts: 7
Joined: Mon Jan 13, 2020 4:00 pm
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by oliviermalherbe »

Bonjour Ben,
J'ai bien effectué la modification avec un bloc de code C, mais cela ne fonctionne toujours pas.
Avez-vous pu tester quelque chose qui fonctionne ?

Cordialement,
Olivier.

oliviermalherbe
Posts: 7
Joined: Mon Jan 13, 2020 4:00 pm
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by oliviermalherbe »

Bonjour Benj,
J'avais un programme pour réceptionner des données venant d'un module GPS avec un pic16F877A et cela fonctionne très bien.
J'ai essayé de l'adapter pour le faire fonctionner avec le pic18F4550 et cela ne fonctionne pas non plus.
Il y a vraiment un problème avec le paramétrage de l'uart et plus particulièrement l'interruption.
J'avais bien essayé votre modification avec st_bit(pie1, RCIE); dans un bloc de code C mais cela n'a rien changé.

En conclusion je suis toujours bloqué malgré de nombreux essais.
Auriez-vous d'autres pistes ?

Merci,
Cordialement,
Olivier.

User avatar
Dan81
Valued Contributor
Valued Contributor
Posts: 268
Joined: Sun Jan 15, 2006 4:07 pm
Location: Albi France
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by Dan81 »

bonjour Olivier

Teste l'algo joint, il fonctionne sous Proteus (je n'ai pas le 18F4550) .

Il ne faut pas que le sous prog d’interruption ne dure trop longtemps :
pause (delay) et affichage à éviter.

bon courage

Daniel
Attachments
RS232_Int_v4.fcf
(9 KiB) Downloaded 42 times

oliviermalherbe
Posts: 7
Joined: Mon Jan 13, 2020 4:00 pm
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by oliviermalherbe »

Bonjour Dan,
J'ai testé en rajoutant le code C que vous m'avez envoyé dans mon programme et cela fonctionne à présent.
Je vous remercie pour votre aide mais également Benj.
J'ai un autre souci sur lequel vous pourriez peut-être m'aider :
J'essaye d'utiliser le composant GPS avec ses routines, le tout avec un PIC18F4550, mais je n'arrive à récupérer aucune coordonnée GPS.
Je l'ai testé avant avec un PIC16f877A et cela fonctionne bien.
Je vous adresse une pièce jointe avec une copie de mon programme sous Flowcode 4.
En vous remerciant par avance.
Olivier.
Attachments
GPS.fcf
(9 KiB) Downloaded 42 times

User avatar
Dan81
Valued Contributor
Valued Contributor
Posts: 268
Joined: Sun Jan 15, 2006 4:07 pm
Location: Albi France
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by Dan81 »

Bonjour Olivier
Ton programme fonctionne sous Proteus. (ce n'est que de la simu !)

Dans la configuration du Pic, le chien de garde est validé. Mais je vois rien qui le gère dans le programme.
Eventuellement, fais clignoter une led en utilisant une des tempos presentes et verifie la durée à l'oscilloscope.

Questions :
le quartz est bien de 19.66MHz ?
le gps donne t il une trame (oscillo ou mieux detrameur RS232) avec le bon debit ?
Le LCD fonctionne (affiche "attente")?

Désolé de ne pouvoir t'aider pour l'instant

Daniel

oliviermalherbe
Posts: 7
Joined: Mon Jan 13, 2020 4:00 pm
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by oliviermalherbe »

Bonjour Dan et merci de ta réponse,
La fréquence du quartz est bien de 19.66Mhz et le débit du module GPS est correct également puisque je l'ai déjà fait fonctionner avec les paramètres pour un PIC16F877A et à 9600bps tout fonctionne correctement.
Pour le LCD, il fonctionne bien également, j'ai juste mis "attente" en attente de l'affichage des coordonnées GPS.
Je pense plutôt à un problème entre la routine du composant GPS de Flowcode et le PIC18F4550.

Je vous tiendrai au courant si j'ai du nouveau.
Olivier.

User avatar
Dan81
Valued Contributor
Valued Contributor
Posts: 268
Joined: Sun Jan 15, 2006 4:07 pm
Location: Albi France
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by Dan81 »

Bonjour Olivier

juste avant la boucle sans fin (while 1)
mets un icone "C" avec st_bit(intcon, PEIE); à l'interieur
comme dans l'Inits de mon premier exemple .


Daniel

oliviermalherbe
Posts: 7
Joined: Mon Jan 13, 2020 4:00 pm
Contact:

Re: Problème interruption Rx avec Pic18F4550

Post by oliviermalherbe »

Bonjour Daniel,
J'espère que vous allez bien par ces temps difficiles.
J'ai ajouté le code C dans mon programme comme vous me l'avez conseillé.
Je l'ai transféré dans le PIC18F4550, mais cela ne fonctionne toujours pas.
Je vous joint une copie de mon programme pour montrer ma modification.
Peut-être aurez-vous une autre piste ?

Je vous remercie encore une fois pour votre aide.
Olivier.
GPS.fcf
(9 KiB) Downloaded 20 times

Post Reply