Bonjour tous le monde j'ai un probleme au niveau de la compilation d'un programme sous MPLAB. En effet, j'ai des messages d'erreur de genre :
GODONE has note defined
CHS0 has not defined
Avez vous une idée comment résoudre ce problème
-----

Bonjour tous le monde j'ai un probleme au niveau de la compilation d'un programme sous MPLAB. En effet, j'ai des messages d'erreur de genre :
GODONE has note defined
CHS0 has not defined
Avez vous une idée comment résoudre ce problème
Salut,
Poste ton code (dans une balise #CODE)
voici le code que je veux tester//INCLUDES
#include <p18f4550.h>
#include<stdio.h>
#define _POT1 RA2
#define _pot2 RA3
#define _LEDR RA1
unsigned int Result;
//MAIN
void main(void){
unsigned int duty;
unsigned long U=5;
unsigned long Up=0;
Initialisation();
while(1){
CHS0=0;CHS1=1; CHS2=0;CHS3=0; // AN2
ADRESL=0b00000000; // Octet de resultat bas
ADRESH=0b00000000; // Octet de resultat haut
GODONE=1; // Activer la conversion (se remet à 0 tout seul)
while(GODONE==1) // Attente de la fin de conversion
{
}
Result=ADRESL+(ADRESH) ;
U=(long)(Result)*5;
U=U/1023;
Up=Result ;
duty=Result*0.25; //0.25=255/1023
if(duty>243)
{
duty=243;
}
if(duty<13)
{
duty=13;
}
duty=CCPR1L;
}
}
void Initialisation(void)
{
PORTA = 255;
TRISA = 0b00001111; //PORTA en tant que sortie, AN0 à AN3 en entrée
PORTB = 0b00000000; // Initialisation du PORTB
PORTC = 0b00000000; // Initialisation du PORTC
TRISC = 0b00000000; //PORTC en tant que sortie
PORTE = 0b00000000;
PORTD = 0b00000000;
//TMR2
TMR2ON=1;
//prescaler 1
T2CKPS1=0;
T2CKPS0=0;
//postscaler 1/16
TOUTPS0=1;
TOUTPS1=1;
TOUTPS2=1;
TOUTPS3=1;
PR2=0xFF;
//PWM
RCSTA=0b00010111;
CCP1CON=0b10010111;
//Aquisition analogique
ADFM=1;
VCFG=0;
ADCS2=0;ADCS1=1;ADCS2=0;
ANSEL=0b10000011;
ADON=1;
}
Salut alhoceima,
Ton problème est simple. Tu ne peux modifier CHS0 ou GODONE simplement comme ça. Actuellement ton compileur les prend comme des variable que tu n'as pas défini. Pour résoudre ton problème ajoute le nom du registre avant. Par exemple pour CHS0, tu dois écrire "ADCONxbits.CHS0 = 0;" ou x est le numéro du convertisseur vu qu'il y en a trois dans le pic18F4550. Même chose pour GODONE.
Pour ADRESL et ADRESH ça fonctionne comme tu l'as écris car ce sont des registre mais CHSO à CHS3 et GODONE sont des bits contenu dans un registre!
Voilà en espérant avoir été clair ^^
Salutation
Merci bien. Mais j'ai tjrs le problème avec godone il m affiche unknown membre
Vérifier dans le fichier .h du pic. Le nom du bit n'est pas exactement le même.
Tu doit chercher les définitions pour le registre ADCON. Et la tutrouveras l'épellation de tout les bits. Si ma mémoire est bonne tu peux l'écrire GO_DONE, GO ou DONE. En oubliant pas d'ajouter le ADCONxbit. avant.
Mais vérifier dans le .h, ce sera noté ^^
a+
Merci encore une fois c'est résolu. Mais j'ai tjrs un problème au niveau de la compilation. J'ai un msg d'erreur "the project contains no linker script"
Est-ce que tu as bien créer un projet grâce au "Project wizard"?
Si c'est fait, vérifie si tu à un fichier .lkr dans ta liste de fichier. Si tu en as un, enlève le de ton projet.
oui je l'ai écrit de "Project wizard" et je n'ai pas un fichier .lkr !!!!
Essaye de créer un nouveau projet et tu copies ton fichier .c dedans.
Si ça fait toujours pareil copie p18F4550.h et stdio.h dans le même dossier que ton projet et change les <fichier.h> par "fichier.h"
Et si là ça marche toujours pas je ne peux plus rien faire pour t'aider =/
Merci pr ton aide. Mais tjrs ça marche pas
Salut,
Essaie encore de raccourcir le chemin vers ton dossier.
Exemple: C:\TEMP\ton projet au lieu de C:\Document & Setting\user name\Desktop\ton projet
C'es tla dernière idée qu'il me reste en stock. Après j'ai vraiment plus rien.
A+
Merci bien pour tes propositions. j'ai résolu le pblm en installant une nouvelle version 8.8*.
Oui j'ai vu ton autre poste à l'instant, j'avais pas pensée à la version de MPLAB.
Bonne chance pour la suite alors ^^
a+
