Problème interruption Rx avec Pic18F4550
Moderator: Benj
-
- Posts: 10
- Joined: Mon Jan 13, 2020 4:00 pm
- Been thanked: 1 time
Problème interruption Rx avec Pic18F4550
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.
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.
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: Problème interruption Rx avec Pic18F4550
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.
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.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Posts: 10
- Joined: Mon Jan 13, 2020 4:00 pm
- Been thanked: 1 time
Re: Problème interruption Rx avec Pic18F4550
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.
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.
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: Problème interruption Rx avec Pic18F4550
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.
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.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: Problème interruption Rx avec Pic18F4550
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.
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);
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);
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Posts: 10
- Joined: Mon Jan 13, 2020 4:00 pm
- Been thanked: 1 time
Re: Problème interruption Rx avec Pic18F4550
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.
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.
-
- Posts: 10
- Joined: Mon Jan 13, 2020 4:00 pm
- Been thanked: 1 time
Re: Problème interruption Rx avec Pic18F4550
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.
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.
- Dan81
- Valued Contributor
- Posts: 268
- Joined: Sun Jan 15, 2006 4:07 pm
- Location: Albi France
- Been thanked: 60 times
- Contact:
Re: Problème interruption Rx avec Pic18F4550
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
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 348 times
-
- Posts: 10
- Joined: Mon Jan 13, 2020 4:00 pm
- Been thanked: 1 time
Re: Problème interruption Rx avec Pic18F4550
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.
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 326 times
- Dan81
- Valued Contributor
- Posts: 268
- Joined: Sun Jan 15, 2006 4:07 pm
- Location: Albi France
- Been thanked: 60 times
- Contact:
Re: Problème interruption Rx avec Pic18F4550
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
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
-
- Posts: 10
- Joined: Mon Jan 13, 2020 4:00 pm
- Been thanked: 1 time
Re: Problème interruption Rx avec Pic18F4550
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.
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.
- Dan81
- Valued Contributor
- Posts: 268
- Joined: Sun Jan 15, 2006 4:07 pm
- Location: Albi France
- Been thanked: 60 times
- Contact:
Re: Problème interruption Rx avec Pic18F4550
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
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
-
- Posts: 10
- Joined: Mon Jan 13, 2020 4:00 pm
- Been thanked: 1 time
Re: Problème interruption Rx avec Pic18F4550
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.
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.