Finition de mon programme ccs c compiler
Utilisateur anonyme
-
mohamed88med Messages postés 23 Statut Membre -
mohamed88med Messages postés 23 Statut Membre -
bonjour a tous!
une partie de mon pfe consiste aprogrammer la carte electronique a base de PIC, tout va bien mais ISIS m'indique un petit probleme lors de la simulation : "[PIC16 ADC] PC=0x0.. ADC conversion strated before 'wait' time has expired following previous conversion or channel change"
voila mon programme:
#include<16f877.h>
#use delay (clock=4000000)
#use rs232 (baud=9600,rcv=PIN_C7, xmit=PIN_C6)
#fuses XT,NOWDT,NOPROTECT,NOLVP
#include<math.h>
#include <stdlib.h>
#define use_portb_lcd TRUE
#include <lcd.c>
//affichage sur ecran
void ecran (long int x)
{
printf("Temperature1:%3ld C\\r",x);
delay_ms(1000);
}
void ecran1 (long int y)
{
printf("Temperature2:%3ld C\\r",y);
printf("-----------------------------------------------------\\r");
delay_ms(1000);
}
//Affichage Sur LCD
void affichage (long int x)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"t1=%3ldC",x);
}
void affichage1 (long int y)
{
lcd_gotoxy(9,1);
printf(lcd_putc,"t2=%3ld C",y);
}
//La Lecture et la converission A/N du tensiondu por A/N et elle retourne la temperature equivalente
int lecture ()
{
float valr,val,T;
float B=9.7,A=13.6;//Les variables caracterstique de notre capteur de température
float Rc;
long int t1;
val=read_adc(ADC_START_AND_READ);
valr=(val*2.5)/128;
Rc=((1000*valr)/(5-valr));
T=B/(log(Rc/A));
t1=ceil(T);
return(t1);
}
//La Lecture et la converission A/N du tensiondu por A/N et elle retourne la temperature equivalente
int lecture1 ()
{
float valr1,val1,T1;
float B=9.7,A=13.6;//Les variables caracterstique de notre capteur de température
float Rc1;
long int t2;
val1=read_adc(ADC_START_AND_READ);
valr1=(val1*2.5)/128;
Rc1=((1000*valr1)/(5-valr1));
T1=B/(log(Rc1/A));
t2=ceil(T1);
return(t2);
}
//Programme Principale
void main()
{
long int val_res, val_res1;
printf(" starting convertion : \\r");
delay_ms(1500);
lcd_init();
SETUP_ADC_PORTS(ALL_ANALOG);
SETUP_ADC(ADC_CLOCK_INTERNAL);
while(true)
{
SET_ADC_CHANNEL(0);
val_res=lecture();
ceil(val_res);
affichage(val_res);
delay_us(400);
ecran(val_res);
delay_us(400);
SET_ADC_CHANNEL(1);
val_res1=lecture1();
ceil(val_res1);
affichage1(val_res1);
delay_us(400);
ecran1(val_res1);
delay_us(400);
}
}
une partie de mon pfe consiste aprogrammer la carte electronique a base de PIC, tout va bien mais ISIS m'indique un petit probleme lors de la simulation : "[PIC16 ADC] PC=0x0.. ADC conversion strated before 'wait' time has expired following previous conversion or channel change"
voila mon programme:
#include<16f877.h>
#use delay (clock=4000000)
#use rs232 (baud=9600,rcv=PIN_C7, xmit=PIN_C6)
#fuses XT,NOWDT,NOPROTECT,NOLVP
#include<math.h>
#include <stdlib.h>
#define use_portb_lcd TRUE
#include <lcd.c>
//affichage sur ecran
void ecran (long int x)
{
printf("Temperature1:%3ld C\\r",x);
delay_ms(1000);
}
void ecran1 (long int y)
{
printf("Temperature2:%3ld C\\r",y);
printf("-----------------------------------------------------\\r");
delay_ms(1000);
}
//Affichage Sur LCD
void affichage (long int x)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"t1=%3ldC",x);
}
void affichage1 (long int y)
{
lcd_gotoxy(9,1);
printf(lcd_putc,"t2=%3ld C",y);
}
//La Lecture et la converission A/N du tensiondu por A/N et elle retourne la temperature equivalente
int lecture ()
{
float valr,val,T;
float B=9.7,A=13.6;//Les variables caracterstique de notre capteur de température
float Rc;
long int t1;
val=read_adc(ADC_START_AND_READ);
valr=(val*2.5)/128;
Rc=((1000*valr)/(5-valr));
T=B/(log(Rc/A));
t1=ceil(T);
return(t1);
}
//La Lecture et la converission A/N du tensiondu por A/N et elle retourne la temperature equivalente
int lecture1 ()
{
float valr1,val1,T1;
float B=9.7,A=13.6;//Les variables caracterstique de notre capteur de température
float Rc1;
long int t2;
val1=read_adc(ADC_START_AND_READ);
valr1=(val1*2.5)/128;
Rc1=((1000*valr1)/(5-valr1));
T1=B/(log(Rc1/A));
t2=ceil(T1);
return(t2);
}
//Programme Principale
void main()
{
long int val_res, val_res1;
printf(" starting convertion : \\r");
delay_ms(1500);
lcd_init();
SETUP_ADC_PORTS(ALL_ANALOG);
SETUP_ADC(ADC_CLOCK_INTERNAL);
while(true)
{
SET_ADC_CHANNEL(0);
val_res=lecture();
ceil(val_res);
affichage(val_res);
delay_us(400);
ecran(val_res);
delay_us(400);
SET_ADC_CHANNEL(1);
val_res1=lecture1();
ceil(val_res1);
affichage1(val_res1);
delay_us(400);
ecran1(val_res1);
delay_us(400);
}
}
A voir également:
- Finition de mon programme ccs c compiler
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé - Guide
- Télécharger le programme de pmu - Télécharger - Médias et Actualité
- Mettre en veille un programme - Guide
5 réponses
besoin d'un programme c de pic pour cette organigramme SVP
http://img01.arabsh.com/uploads/image/2013/03/31/0c37454a61fb07.png
http://img01.arabsh.com/uploads/image/2013/03/31/0c37454a61fb07.png
pardon voila le shéma ISIS
http://img146.imageshack.us/img146/151/previewb.gif[/img]
merci infiniment pour votre aide
http://img146.imageshack.us/img146/151/previewb.gif[/img]
merci infiniment pour votre aide
salut,tu sait travailler avec ccs svp aidez moi je suis bloquée en projet de fin d'étude mon sujet c'est implémentation numérique de commande mppt a un système photovoltaïque mon problème c'est programmation de pic 16f877 et voici mon organigramme :
début
mesure de Ipv et Vpv
calcul de Ppv: Pvp=Ivp*Vpv
calcul de derivé de pv: Dpv=dPpv/dt
test de dPpv>0
si oui alpha=alpha + cte
si non alpha = alpha-cte
remarque alpha c'est le rapport cyclique de pwm
début
mesure de Ipv et Vpv
calcul de Ppv: Pvp=Ivp*Vpv
calcul de derivé de pv: Dpv=dPpv/dt
test de dPpv>0
si oui alpha=alpha + cte
si non alpha = alpha-cte
remarque alpha c'est le rapport cyclique de pwm
slt. je travaille sur un projet de fin d'étude ( réalisation d'un commande MPPT qui suive la puissance maximale fournie par le système photovoltaïque et élevé par un convertisseur de type BOOST cette technique basé sur un microcontrolleur pic 16f est ce que je peut voire ton schéma ou un résumé SVP .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question