|
Started by dpascinto, Jan., 24 2004 10:45 PM - 3 replies |
| |
| | | |
|
| |
Posted on January, 24 2004 - 10:45 PM |
Je travaille avec un PIC 16F84. Les données sont envoyées sur le port série du micro. Je travaille à 4800bauds,8 bits de données, sans parité, 1 bit de stop. En utilisant l'hyperterminal de windows, je reçois les messages du PIC sans aucun probléme. Par contre en utilisant Windev, et avec le paramétrage suivant:
****************************** Résultat = sOuvre(1,4,4) sFixeParametre(1,4800,0,8,1) //paramétrage de COM1 secrit(1,"0") // caractére quelconque pour démarrer le PIC pour i= 1 à 20 donnéePic = sLit(1,1) // fin ************************** les données reçues dans donnéePic, sont différentes de ce que je devrais recevoir ...
Quelqu'un voit-il le probléme ? Merci |
| |
| |
| | | |
|
| | |
| |
Posted on January, 26 2004 - 9:19 AM |
les données reçues dans donnéePic, sont différentes de ce que je devrais recevoir ...
Bonjour,
Un petit exemple à adapter à vos besoins en modifiant les valeurs des paramêtres :
// Code à placer dans le code dinitialisation GLOBAL ePortCom est un entier = 1 // Port Com 1 par exemple.
// **************************************************************************** *** // 1ère procédure à créer : PROCEDURE pCom() sFerme(ePortCom) // Au cas ou il serait déjà ouvert SI sOuvre(ePortCom, 1200, 1200, 1000) ALORS SI sFixeParamètre(ePortCom, 9600, 0, 8, 0, Faux , Faux , Faux) ALORS // Paramètres de sOuvre et sFixeparamètre à adapter à vos besoins TimerSys(pLitCom,200,10) SINON sFerme(ePortCom) Info("Problème de paramètrage du Port Com : " + ePortCom + RC + RC + "Le programme va maintenant s'arreter") FinProgramme() FIN SINON Info("Problème d'ouverture du Port Com : " + ePortCom + RC + RC + "Le programme va maintenant s'arreter") FinProgramme() FIN TimerSys(pLitCom,200,10) // On peut également utiliser un thread à la place du timer.
// **************************************************************************** *** // 2ième procédure à créer : PROCEDURE pLitCom() cLuSurCom est chaîne FinTimerSys(10) // On stope le timer pendant la lecture cLuSurCom = sLit(ePortCom,256) SI cLuSurCom <> "" ALORS Message(cLuSurCom) cLuSurCom = "" FIN TimerSys(pLitCom,200,10) // On relance le timer.
// **************************************************************************** *** // Code d'appel à la procédure PCom à placer dans le code d'initialisation d'une fenêtre (par exemple) pCom()
// **************************************************************************** *** // Code à placer dans le code de fermeture du programme (ou de la fenêtre) sFerme(ePortCom)
Nota : ce code a été testé et fonctionne.
Sincères Salutations -- Jean-Claude FLAJOULOT Sécurité Pointage & Biométrie SPetB_no_spam@wandoo.fr (Otez _no_spam pour me contacter en PV)
http://perso.wanadoo.fr/securite.pointage.et.biometrie/ |
| |
| |
| | | |
|
| | |
| |
Posted on January, 26 2004 - 4:47 PM |
A chaque fois que tu fermes le port , tu vides le buffer .c'est ça le problème ...
"spetb" <spetb@wanadoo.fr> a écrit dans le message de news:4014c0db$1@news....
les données reçues dans donnéePic, sont différentes de ce que je devrais recevoir ...
Bonjour, Un petit exemple à adapter à vos besoins en modifiant les valeurs des paramêtres : // Code à placer dans le code dinitialisation GLOBAL ePortCom est un entier = 1 // Port Com 1 par exemple. // ****************************************************************************
*** // 1ère procédure à créer : PROCEDURE pCom() sFerme(ePortCom) // Au cas ou il serait déjà ouvert SI sOuvre(ePortCom, 1200, 1200, 1000) ALORS SI sFixeParamètre(ePortCom, 9600, 0, 8, 0, Faux , Faux , Faux) ALORS // Paramètres de sOuvre et sFixeparamètre à adapter à vos besoins TimerSys(pLitCom,200,10) SINON sFerme(ePortCom) Info("Problème de paramètrage du Port Com : " + ePortCom + RC + RC + "Le programme va maintenant s'arreter") FinProgramme() FIN SINON Info("Problème d'ouverture du Port Com : " + ePortCom + RC + RC + "Le programme va maintenant s'arreter") FinProgramme() FIN TimerSys(pLitCom,200,10) // On peut également utiliser un thread à la place
du timer.
//
****************************************************************************
*** // 2ième procédure à créer : PROCEDURE pLitCom() cLuSurCom est chaîne FinTimerSys(10) // On stope le timer pendant la lecture cLuSurCom = sLit(ePortCom,256) SI cLuSurCom <> "" ALORS Message(cLuSurCom) cLuSurCom = "" FIN TimerSys(pLitCom,200,10) // On relance le timer.
//
****************************************************************************
*** // Code d'appel à la procédure PCom à placer dans le code d'initialisation d'une fenêtre (par exemple) pCom()
//
****************************************************************************
*** // Code à placer dans le code de fermeture du programme (ou de la fenêtre) sFerme(ePortCom) Nota : ce code a été testé et fonctionne. Sincères Salutations -- Jean-Claude FLAJOULOT Sécurité Pointage & Biométrie SPetB_no_spam@wandoo.fr (Otez _no_spam pour me contacter en PV) http://perso.wanadoo.fr/securite.pointage.et.biometrie/ |
| |
| |
| | | |
|
| | |
| |
Posted on January, 26 2004 - 5:14 PM |
A chaque fois que tu fermes le port , tu vides le buffer .c'est ça le problème ...
Bonjour,
Manifestement, il ne parlait pas dans son code posant problème de fermeture du port.
Quand à moi si je l'ai mentionné dans mon exemple, ce n'est pas pour ouvrir sans arrêt le port et le refermer, mais plus pour signaler de ne pas oublier de le fermer quand on n'a plus besoin de l'avoir ouvert. Dans la pratique j'ouvre le Port au lancement du programme et je le referme quand je quitte ce dernier, donc une seule ouverture et une seule fermeture (la procédure que j'ai appelée pCom n'étant appelée qu'une seule fois et si effectivement je ferme le port avant de l'ouvrir c'est au cas ou il serait déjà ouvert par un autre application, surtout s'il est déjà ouvert avec des paramètres différents, cette façon de faire évite bien des soucis pour l'utilisateur).
Sincères Salutations -- Jean-Claude FLAJOULOT Sécurité Pointage & Biométrie SPetB_no_spam@wandoo.fr (Otez _no_spam pour me contacter en PV) |
| |
| |
| | | |
|
| | | | |
| | |
|