Quand je compile, j'ai cette erreur:
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program Files\bknd\CC5X\CC5X.EXE" metronome.c -CC -fINHX8M -p16F877 -IC:\Progra~1\bknd\CC5X -a -L -Q -V -FM
CC5X Version 3.4B, Copyright © B Knudsen Data, Norway 1992-2009
--> FREE edition, 8-16 bit int, 24 bit float, 32k code, reduced optim.
metronome.c:
ouvrir_lcd();
ecrire_lcd( "-=METROBELHA=-" , 0);
^------
Error[1] C:\Documents and Settings\Hsouna\Bureau\métronome\metronome.c 29 : Incompatible storage, 'const *' is required
Error options: -ew: no warning details -ed: no error details -eL: list details
BUILD FAILED: Sun Apr 04 18:50:45 2010
[/code]
Mon compilateur est CC5X. et voila mon programme:
//Debut du programme
//definition des bit
//-----------------------------
#define D0 PORTB.0
#define D1 PORTB.1
#define D2 PORTB.2
#define D3 PORTB.3
#define D4 PORTB.4
#define D5 PORTB.5
#define D6 PORTB.6
#define D7 PORTB.7
#define E PORTA.0
#define RW PORTA.1
#define RS PORTA.2
//jeu de commande
//fonction
void ecrire_octect(char data, bit type);
void reset_lcd();
void ecrire_lcd(unsigned char ligne[16], char li);
void efface_ligne(char lin);
void delay(int time);
void ouvrir_lcd();
//fonction principale
void main(void) {
ouvrir_lcd();
ecrire_lcd( "-=METROBELHA=-" , 0);
}
void ouvrir_lcd() {
ecrire_octect(0x33, 0);
ecrire_octect(0x33, 0);
ecrire_octect(0x33, 0);
ecrire_octect(0x38, 0);
ecrire_octect(0x0C, 0);
ecrire_octect(0x06, 0);
reset_lcd();
}
void delay(int time) {
while(--time);
}
void efface_ligne(char lin)
{
int i;
// Mise à la bonne adresse
if(lin == 0)
{
ecrire_octect(0x80,0);
}
else ecrire_octect(0xC0,0);
for(i=0;i<16;i++)
{
ecrire_octect(' ',1);
}
}
void ecrire_lcd(unsigned char ligne[16], char li) {
char i;
for(i = 0; i < 16; i++) {
if((ligne[i]) == 0) ligne[i] = ' ';
}
if(li == 0) {
ecrire_octect(0x80 , 0);
}else ecrire_octect(0xC0 , 0);
for(i = 0; i < 16; i++) {
ecrire_octect(ligne[i], 1);
}
}
void reset_lcd() {
ecrire_octect( 0, 0);
}
void ecrire_octect(char data, bit type) {
if(data & 0x01) {
D0 = 1;
}else D0 = 0;
if(data & 0x02) {
D1 = 1;
}else D1 = 0;
if(data & 0x04) {
D2 = 1;
}else D2 = 0;
if(data & 0x08) {
D3 = 1;
}else D3 = 0;
if(data & 0x10) {
D4 = 1;
}else D4 = 0;
if(data & 0x20) {
D5 = 1;
}else D5 = 0;
if(data & 0x40) {
D6 = 1;
}else D6 = 0;
if(data & 0x80) {
D7 = 1;
}else D7 = 0;
RW = 0;
if(type) {
RS = 1;
}else {
RS = 0;
}
E = 1;
delay(50);
E = 0;
}
[/code]