J'ai besoin d'expliquer svp

Fermé
mohamed88med Messages postés 19 Date d'inscription jeudi 28 février 2013 Statut Membre Dernière intervention 20 mai 2014 - 19 avril 2013 à 16:05
mohamed88med Messages postés 19 Date d'inscription jeudi 28 février 2013 Statut Membre Dernière intervention 20 mai 2014 - 19 avril 2013 à 23:32
Bonjour,
ces erreurs s'indique quoi svp ?
***************************************
0 304 C:/Users/DANGER/Desktop/PIC/suiver de tunis.c:1: error: Can't open include file "p18f1220.h"
0 304 #include <p18f1220.h>
0 304 C:/Users/DANGER/Desktop/PIC/suiver de tunis.c:2: error: Can't open include file "stdio.h"
0 304 #include <stdio.h>
0 304 C:/Users/DANGER/Desktop/PIC/suiver de tunis.c:3: error: Can't open include file "math.h"
0 304 #include <math.h>
0 304 3 errors in preprocessor.
0 102 Finished (with errors): 19 avr. 2013, 14:52:15 suiver de tunis.mcppi
**********************************************************************

3 réponses

SuperHelpeur Messages postés 122 Date d'inscription dimanche 7 avril 2013 Statut Membre Dernière intervention 22 mars 2014 5
19 avril 2013 à 16:15
Déjà qu'est ce que tu as essayé de faire ou de lancer ?
0
mohamed88med Messages postés 19 Date d'inscription jeudi 28 février 2013 Statut Membre Dernière intervention 20 mai 2014 1
19 avril 2013 à 16:38
j'ai une projet de suivi le point de puissance maximale MPPT de système photovoltaïque et ce programme de c appliqué sur le pic18f1220 et besoin de tension et courant de panneaux pour faire la dérivé de puissance pour connaitre le signe sens de variation de la puissance et ce commandé la Mosfet d'une convertisseur de type BOOST pour élevé la tension
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
19 avril 2013 à 20:10
Bonjour
Le fichier indique qu'il narrive pas a ouvrir les fichiers entetes comme math.h.
As tu vérifié quils existaient ?
0
mohamed88med Messages postés 19 Date d'inscription jeudi 28 février 2013 Statut Membre Dernière intervention 20 mai 2014 1
19 avril 2013 à 20:13
voila mon programme C
#include <p18f1220.h>
#include <stdio.h>
#include <math.h>
#pragma config WDT = OFF

//Variables globales

int i,H;
unsigned int tension_alta,tension_convertida,tension_alta_total;
unsigned char derivada_pot,tension_baja,intensidad_baja;
unsigned int intensidad_alta,intensidad_convertida;
unsigned int intensidad_alta_total,tension_panel;
unsigned long potencia,potencia_old,potencia_total;
unsigned int m;

//Funcion de conversion de intensidad: Convertimos la intensidad del panel al valor de referencia del PIC (5V).

unsigned int intensidad (void)
{
intensidad_alta=0;
intensidad_alta_total=0;
intensidad_baja=0;
for (i=0;i<1;i++)
{
}
ADCON0=0x05;
for (i=0;i<10;i++)
{
}
ADCON0=0x07; //Corriente de conversion : conversion en el canal 1, empieza la conversion
while (ADCON0!=0x05)
{
}
intensidad_alta=ADRESH; // Se guardan los 8 bits altos de la conversi?n en el registro ADRESH
intensidad_alta_total=intensidad_alta<<8; // Realizamos un desplazamiento para capturar posteriormente los dos bits de menor peso de la conversi?n ya que utilizamos una conversi?n sobre 10 bits
intensidad_baja=ADRESL; //Se guardan los 2 bits de menor peso en el regsitro ADRESL
intensidad_convertida=intensidad_alta_total+intensidad_baja; //Capturamos los 10 bits de la conversi?n (intensidad convertida)
return(intensidad_convertida);
}

// Funcion de interrupcion del Timer 0: El timer0 genera una interrupci?n al desbordarse. La variable H se pone 1. Paramos el timer0 para que vuelva a empezar con el valor deseado introducido por software (en nuestro caso sera de 6,5ms).

void traiteIT(void);
#pragma code it=0x08
void saut_sur_spIT(void)
{
_asm

goto traiteIT

_endasm
}
#pragma code

#pragma interrupt traiteIT
void traiteIT(void)
{
if (INTCONbits.TMR0IF)
{
INTCONbits.TMR0IF=0; // Flag de interrupcion del timer 0
H=1; // Indica que el timer ha finalizado
T0CONbits.TMR0ON=0;// Reinicializacion del timer 0
}
}

//Funcion de inicializacion: Configuramos todos los registros del PIC para el buen funcionamiento del sistema

void configurar_registros (void)
{
i=0;
m=0;
H=1;
potencia=0;
potencia_old=0;

ADRESH=0x00; // Poner a 0 el registro de conversion mas alto
ADRESL=0x00; // Poner a 0 el registro de conversion mas bajo

//TIMER 0

INTCONbits.TMR0IE=1; // Permitimos la interrupci?n por desbordamiento del timer0
INTCONbits.GIEH=1; // Permitimos todas las interrupciones enmascaradas
INTCONbits.TMR0IF=0; //Desactivamos el flag del timer0
INTCON2=0x00; //Todas las interrupciones seran en el flanco de bajada
INTCON3=0x00; //Deshabilitamos las interrupciones externas
PIR1=0x00; //Deshabilitamos los flags de los timer 1 y2
PIE1=0x00; //deshabilitamos la interrupcion de conversion y no permitimos la interrupci?n de los timers 1 y 2
IPR1=0x00; //Configuramos la prioridad de las interrupciones como baja (conversor, comparador, timer1 y 2)
PIR2=0x00; //Deshabilitamos el flag del timer3
PIE2=0x00; //No permitimos la interrupcion del timer3
IPR2=0x00; // Configuramos la prioridad de las interrupciones como baja (fallo en el oscilador, memoria EEPROM, detector nivel bajo, timer3) RCON=0x00; //Deshabilitamos la prioridad de nivel en las interrupciones

T0CON=0x46; //Configuramos el timer 0 con un valor de 6,5ms

//Conversion analogico-digital

ADCON1=0x7C; // Configuracion de los pines AN0 y AN1 como entradas analogicas
ADCON2=0x92; // Resultado justificado a izquierda




//Perifericos

PORTA=0x00;
TRISA=0x03; //AN0 y AN1 configuradas como entradas
PORTB=0x00;
TRISB=0x00; //Puerto B configurado como salida
}

//Funcion de conversion de tension: Convertimos la tension del panel al valor de tension de referencia del PIC18F1220 (5V) para poder trabajar.

unsigned int tension (void)
{
tension_alta=0;
tension_alta_total=0;
tension_baja=0;
for (i=0;i<1;i++) //Esperamos un poco antes de empezar la conversion
{
}
ADCON0=0x01;
for (i=0;i<10;i++)
{ //Tiempo de adquisicion correcta de la se?al
}
ADCON0=0x03;// Tension de conversion: conversion en el canal 0, empieza la conversion

while (ADCON0!=0x01) // Esperamos hasta finalizar conversion
{
}
tension_alta=ADRESH; //Guardamos los valores de la tension convertida en los registros de conversi?n del PIC
tension_alta_total=tension_alta<<8;
tension_baja=ADRESL;
tension_convertida=tension_alta_total+tension_baja; // Tension convertida
return (tension_convertida);
}

//Funcion calculo de potencia

unsigned long calculo_potencia (void)
{
unsigned int x,y;
x=tension(); // Conversion tension
y=intensidad(); // Conversion corriente
potencia_total= x * y; // Calculo de la potencia: producto de corriente * tension
return (potencia_total);
}

//Funcion calculo de potencia media: Calculamos la potencia media de la se?al para posteriormente hacer un mejor c?lculo de la derivada de potencia, para aislar los ruidos de las se?ales anal?gicas y obtener una mejor resoluci?n de la grafica de potencia.

unsigned long potencia_media (void)
{
unsigned long potencia_media_total,muestreos_P,c_potencia;
potencia_media_total=0;
muestreos_P=0;
c_potencia=0;
for (m=0;m<8;m++) //Muestreamos 8 puntos de la grafica de potencia
{
c_potencia=calculo_potencia(); //Para hacer el muestreo vamos capturando los valores, los vamos sumando y posteriormente los dividimos por 8
muestreos_P=muestreos_P+c_potencia;
}
potencia_media_total=muestreos_P>>3; //Division por 8 (desplazar 3 posiciones los bits hacia la derecha)
return (potencia_media_total);
}

//Funcion de c?lculo de derivada: Calculamos la derivada de potencia para detectar las variaciones de la potencia. Si nos acercamos o nos alejamos del punto maximo de potencia.

unsigned char derivada_potencia (void)
{
unsigned char derivada;
potencia = potencia_media(); //Capturamos un valor de potencia
if (potencia>potencia_old) //Ese valor capturado lo comparamos con otro anterior

{
derivada=1; //Si es mayor la derivada es positiva
PORTBbits.RB0=1; //Visualizamos el valor de la variable derivada
}
else // sino la derivada es negativa y alpha=0
{
derivada=0;
PORTBbits.RB0=0; //Visualizamos el valor de la variable derivada
}
potencia_old = potencia; //El valor anterior pasa a ser el actual
return (derivada);
}




//PROGRAMA PRINCIPAL//


void main()
{
configurar_registros();
tension_panel=tension();
if (tension_panel<0x2B9)
{
PORTBbits.RB1=1; //alpha
}
else
{
PORTBbits.RB1=0;
}
while(1)
{
derivada_pot = derivada_potencia(); //Capturamos el valor de la derivada
if ((derivada_pot==1)&&(PORTBbits.RB1==1))
{
PORTBbits.RB1=1;
}
else if ((derivada_pot==0)&&(PORTBbits.RB1==1))
{
if (H==0)
{
PORTBbits.RB1=1;
}
else

{
PORTBbits.RB1=0;
H=0;
T0CONbits.TMR0ON=1;
}
}
else if ((derivada_pot==1)&&(PORTBbits.RB1==0))
{
PORTBbits.RB1=0;
}
else if ((derivada_pot==0)&&(PORTBbits.RB1==0))
{

if (H==0)
{
PORTBbits.RB1=0;
}
else
{
PORTBbits.RB1=1;
H=0;
T0CONbits.TMR0ON=1;
}
}
else
{
}
}
}
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
19 avril 2013 à 20:30
Ca repond pas à nos questions.
0
mohamed88med Messages postés 19 Date d'inscription jeudi 28 février 2013 Statut Membre Dernière intervention 20 mai 2014 1
19 avril 2013 à 22:56
j'ai pas compré ta question
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
19 avril 2013 à 23:10
oO. Bah, elle n'a rien de compliqué pourtant.
Le fichier indique qu'il n'arrive pas a ouvrir les fichiers entetes comme math.h.
As-tu vérifié qu'ils existaient ?

Dis autrement est-ce que les fichiers stdio.h et math.h existent sur ton ordinateur ?
0
mohamed88med Messages postés 19 Date d'inscription jeudi 28 février 2013 Statut Membre Dernière intervention 20 mai 2014 1
19 avril 2013 à 23:14
nn
j'ai pas trouvé les 3 fichiers ( p18f1220.h , stdio.h, math.h ) pcq ce programme j'ai trouvé sur 3 thése de mémoire est lorsque j'ai compiler me indique les erreurs
0