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 ---
liaison serie (uart)-excel
RE,
merci bcp
je suis entrain de regarder de mon coté via le debug ICD3 en analysant chaque variable de sortie avant/apres conversion dans mon prog ci-dessous:
merci bcp
je suis entrain de regarder de mon coté via le debug ICD3 en analysant chaque variable de sortie avant/apres conversion dans mon prog ci-dessous:
Code : Tout sélectionner
//--> 1ere Conversion A/D sur AN00
digital_Adc = ADC_Read(0); // Appel de la Fct de Lecture du canal 0
voltage = digital_Adc * ((float) V_Ref / (float) 1023); //Calcul de la Conversion des valeurs Analogique en Numerique
sprintf(data_Capt_An00, "%.2f", voltage); //Conversion de la valeur Entiere en Chaine ASCII
USART_SendString(data_Capt_An00);// Appel de la Fct USART de Transmission de la chaine ASCII
USART_TxChar(0x0D); // Appel de la Fct USART de Transmission du Caractere (\r), de retour chariot comme separateur
MS_delay(1000);
liaison serie (uart)-excel
- paulfjujo
Expert- Messages : 2828
- Âge : 74
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
pour Afficher directement ce que tu envoies , au lieu des codes ascii
Dommage que ton excel refuse la RScom.dll
sinon, envoyer tes données avec un sepateur , ou ; pour creer un fichier *.csv dans rapidQ
lisible diretcement par excel
pour Afficher directement ce que tu envoies , au lieu des codes ascii
Code : Tout sélectionner
Sub CoolBtn2Click(Sender as QCoolBtn) 'visualisation de loscilloscope
if utilisation = 1 then exit sub
if Coolbtn1.Caption = "OFF" then
call CoolBtn1Click(Sender)
Fonctionner = 0 'si Fonctionner = 0 le port n'a pas était activé
else
Fonctionner = 1
end if
if Complication = 1 then ' complication sur le port
exit sub
end if
Utilisation = 1
Clearbuffer
Buffersize = 65535
do
doevents
A$= ReadString()
if(len(A$)>1) then
listbox1.AddItems A$
end if
loop until Utilisation = 0
......etc ..
Dommage que ton excel refuse la RScom.dll
sinon, envoyer tes données avec un sepateur , ou ; pour creer un fichier *.csv dans rapidQ
lisible diretcement par excel
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
liaison serie (uart)-excel
Re
Ouvrir une usine à gaz, je suis pas sur que c'est la solution
Suppprime le dossier "ico" qui va être recréé au fois le zip extrait avec cette version ICI
Tu appuies sur le bouton configuration, et tu rentres les mêmes valeur que l'image ci-dessous
A+
paulfjujo a écrit :Source du message Dommage que ton excel refuse la RScom.dll
Ouvrir une usine à gaz, je suis pas sur que c'est la solution
Suppprime le dossier "ico" qui va être recréé au fois le zip extrait avec cette version ICI
Tu appuies sur le bouton configuration, et tu rentres les mêmes valeur que l'image ci-dessous
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
liaison serie (uart)-excel
merci paul et temps-x
Paul: je suis desolé mais tes modif sont incomplete ou erronée, j'ai n'obtien aucune data dans le terminal.
Temps-x:
la modif faisant intervenir un coeficient (0.02, ....) ne donne pas de bons resultat sur le terminal:
voici un copie comparative sur une 3 valeurs:
0.03 volts-->3.86
2.85 volts-->4.1
5.00 volts-->4.24
Paul: je suis desolé mais tes modif sont incomplete ou erronée, j'ai n'obtien aucune data dans le terminal.
Temps-x:
la modif faisant intervenir un coeficient (0.02, ....) ne donne pas de bons resultat sur le terminal:
voici un copie comparative sur une 3 valeurs:
0.03 volts-->3.86
2.85 volts-->4.1
5.00 volts-->4.24
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
liaison serie (uart)-excel
liaison serie (uart)-excel
liaison serie (uart)-excel
Re,
ok , en fait je pense que l'on aborde le pbm différemment sur mon projet...
la Pin d'entrée AN0 est configurée en entrée analogique (5 volt max)
un potar fait varier une tension de 0 à 5 volt.
cette tension est lue ( via ADC_Read(0))puis convertis en Numerique (0-1023) par le convertisseur interne du pic et la met dans une variable de type int degital_Adc.
puis la data contenu dans digital_Adc est convertis en numerique avec pour tension de ref 5 volt sur 1023 bit.
le resultat obtenu est mis dans une variable appelée "voltage"....on va ensuite convertir cette data de valeur entiere en ascii
le resultat va rentrer dans un tableau de char nommée " data_Capt_An00"
puis on va envoyer cette data via l uart du pic
voici les differentes variable utilisées est le type:
//--> Déclaration des variables
int digital_Adc; //Variable de lecture directe
float voltage; //Variable de type Float pour la conversion
char data_Capt_An00[6];// Tableau de 06 Char
ok , en fait je pense que l'on aborde le pbm différemment sur mon projet...
la Pin d'entrée AN0 est configurée en entrée analogique (5 volt max)
un potar fait varier une tension de 0 à 5 volt.
cette tension est lue ( via ADC_Read(0))puis convertis en Numerique (0-1023) par le convertisseur interne du pic et la met dans une variable de type int degital_Adc.
Code : Tout sélectionner
/*****************************Lecture du Convertisseur A/D***********************/
int ADC_Read(int channel)
{
int digital_Adc;
ADCON0 = (ADCON0 & 0b11000011) | ((channel << 2) & 0b00111100); //Inibition de la conversion ( ADON=0) et Canal 'int channel'selectionné ex:(CHS3CHS2CHS1CHS0=0000)
ADCON0 |= ((1 << ADON) | (1 << GO)); //Validation de ADC et debut de conversion
while (ADCON0bits.GO_nDONE == 1); // Delai d'attente de Fin de Conversion: Go/done=0 Conversion Terminée
digital_Adc = ((ADRESH * 256) | ADRESL); //Combinaison des 8-bit de poids faibles et des 2-bit de poids forts
return (digital_Adc);
}
puis la data contenu dans digital_Adc est convertis en numerique avec pour tension de ref 5 volt sur 1023 bit.
le resultat obtenu est mis dans une variable appelée "voltage"....on va ensuite convertir cette data de valeur entiere en ascii
le resultat va rentrer dans un tableau de char nommée " data_Capt_An00"
puis on va envoyer cette data via l uart du pic
Code : Tout sélectionner
//--> 1ere Conversion A/D sur AN00
digital_Adc = ADC_Read(0); // Appel de la Fct de Lecture du canal 0
voltage = digital_Adc * ((float) V_Ref / (float) 1023); //Calcul de la Conversion des valeurs Analogique en Numerique
sprintf(data_Capt_An00, "%.2f", voltage); //Conversion de la valeur Entiere en Chaine ASCII
USART_SendString(data_Capt_An00);// Appel de la Fct USART de Transmission de la chaine ASCII
USART_TxChar(0x0D); // Appel de la Fct USART de Transmission du Caractere (\r), de retour chariot comme separateur
MS_delay(1000);
voici les differentes variable utilisées est le type:
//--> Déclaration des variables
int digital_Adc; //Variable de lecture directe
float voltage; //Variable de type Float pour la conversion
char data_Capt_An00[6];// Tableau de 06 Char
liaison serie (uart)-excel
re,
bonsoir gwion...
je viens de faire cet essai
pour plus de précision, j'ai modifier mon code du MCU
j'ai shooté la lecture du convertisseur "digital_Adc" pour mettre la valeur arrondie sur 10 bit "251"
soit:
251*(5/1023)=1.226==1.23
j’obtiens bien cette valeur sur le terminal mais sur le programme RapidQ, j'obtiens 0.784
bonsoir gwion...
je viens de faire cet essai
pour plus de précision, j'ai modifier mon code du MCU
Code : Tout sélectionner
//--> 1ere Conversion A/D sur AN00
digital_Adc = ADC_Read(0); // Appel de la Fct de Lecture du canal 0
voltage = 251 * ((float) V_Ref / (float) 1023); //Calcul de la Conversion des valeurs Analogique en Numerique
sprintf(data_Capt_An00, "%.2f", voltage); //Conversion de la valeur Entiere en Chaine ASCII
USART_SendString(data_Capt_An00);// Appel de la Fct USART de Transmission de la chaine ASCII
USART_TxChar(0x0D); // Appel de la Fct USART de Transmission du Caractere (\r), de retour chariot comme separateur
MS_delay(1000);
j'ai shooté la lecture du convertisseur "digital_Adc" pour mettre la valeur arrondie sur 10 bit "251"
soit:
251*(5/1023)=1.226==1.23
j’obtiens bien cette valeur sur le terminal mais sur le programme RapidQ, j'obtiens 0.784
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
liaison serie (uart)-excel
- paulfjujo
Expert- Messages : 2828
- Âge : 74
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
francknvs a écrit : je suis desolé mais tes modif sont incomplete ou erronée, j'ai n'obtien aucune data dans le terminal.
oups!
j'ai oublié de te dire de rajouter, definir en tete de programme :
la variable A$
Dim A$ as string
depuis le PIC, tu envoies bien des strings (pas les ficelles !) à l'appli rapidQ ...
--------------------------------------------------------------------------------
sprintf(data_Capt_An00, "%.2f", voltage);
tu peux inclure le CR dans le sprintf
sprintf(data_Capt_An00, "%.2f\r", voltage);
ou un CR LF
sprintf(data_Capt_An00, "%.2f\r\n", voltage);
Retourner vers « Le forum Fantas-PIC »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 10 invités