por zero » 13 Jan 2007 15:45
amigos SURGIU OUTRO PROBLEMA .... ESTOU USANDO MPLAB COM CCS ......em c ....
quando compilo o pprograma ele abre a biblioteca do lcd sozinho certo ?
e ae ele nao compila dando um erro na biblioteca e nao no programa em si .....
o erro é
Deleting intermediary files... done.
Executing: "C:\Arquivos de programas\PICC\Ccsc.exe" "lcd.c" +FM +DF +LN +T -A +M +Z +Y=9 +EA
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 47(10,18): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 54(5,13): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 56(1,9): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 59(5,13): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 60(23,31): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 62(24,32): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 63(23,31): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 70(24,32): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 71(23,31): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 129(1,9): Undefined identifier -- delay_us
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\LCD_LIB_D.c" Line 138(1,9): Undefined identifier -- delay_ms
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\lcd.c" Line 67(6,10): Undefined identifier modo
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\lcd.c" Line 85(6,10): Undefined identifier modo
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\lcd.c" Line 110(6,10): Undefined identifier modo
*** Error 12 "D:\ROBERTO\Apostila18F458rev2\Cap9\lcd\lcd.c" Line 131(6,10): Undefined identifier modo
como se delay nao existisse .... ?????
o meu programa principal é
#include <16F877A.h>
#include <LCD_LIB_D.c>
#use delay(clock=6144000)
#fuses XT,PUT,BROWNOUT,NOLVP,NODEBUG,CPD,NOWDT,NOWRT
////////////////////////////////////////////////////////////////////////////
// prototipos
void TelaPadrao(void);
void Tela2(void);
//////////////////////////////////////////////////////////////////////////////////
// VARIAVEIS
int8 CONTADOR;
////////////////////////////////////////////////////////////////////////////
// DEFINICOES
#define nao 0
#define sim 1
////////////////////////////////////////////////////////////////////////////
// ######### ESTE INCLUDE NAO PODE FALTAR
//
////////////////////////////////////////////////////////////////////////////
void main()
{
//////// Inicializacao de variaveis
//////// Inicializacao de hardware
setup_adc_ports(no_analogs); // se nao usar A/D, devemos ajustar os ports para digital
setup_comparator(NC_NC_NC_NC); // se nao usar o comparador, devemos desligar o mesmo
SETUP_COUNTERS(rtcc_internal,rtcc_div_32);
LCD_INIT(); // obrigatorio
TelaPadrao();
Delay_ms(2000);
contador = 9;
for (;;)
{
if (contador < 9)
contador++;
else
contador = 0;
Tela2();
Delay_ms(1000);
}
}
/////////////////////////////////////////////////////////////////////////////
void TelaPadrao()
{
LCDClear();
cursor(1,2);
modo = dado;
caractere = 'E'; LCDEnviaByte();
caractere = 'x'; LCDEnviaByte();
caractere = 'p'; LCDEnviaByte();
caractere = 'e'; LCDEnviaByte();
caractere = 'r'; LCDEnviaByte();
caractere = 'i'; LCDEnviaByte();
caractere = 'e'; LCDEnviaByte();
caractere = 'n'; LCDEnviaByte();
caractere = 'c'; LCDEnviaByte();
caractere = 'i'; LCDEnviaByte();
caractere = 'a'; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = '0'; LCDEnviaByte();
caractere = '4'; LCDEnviaByte();
Cursor(2,1);
modo = dado;
caractere = ' '; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = 'D'; LCDEnviaByte();
caractere = 'i'; LCDEnviaByte();
caractere = 's'; LCDEnviaByte();
caractere = 'p'; LCDEnviaByte();
caractere = 'l'; LCDEnviaByte();
caractere = 'a'; LCDEnviaByte();
caractere = 'y'; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = 'L'; LCDEnviaByte();
caractere = 'C'; LCDEnviaByte();
caractere = 'D'; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
}
/////////////////////////////////////////////////////////////////////////////
void Tela2()
{
LCDClear();
cursor(1,1);
modo = dado;
caractere = 'E'; LCDEnviaByte();
caractere = 'x'; LCDEnviaByte();
caractere = 'p'; LCDEnviaByte();
caractere = ':'; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = '0'; LCDEnviaByte();
caractere = '4'; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = 'L'; LCDEnviaByte();
caractere = 'C'; LCDEnviaByte();
caractere = 'D'; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
caractere = ' '; LCDEnviaByte();
cursor(2,1);
modo = dado;
caractere = 'C'; LCDEnviaByte();
caractere = 'o'; LCDEnviaByte();
caractere = 'n'; LCDEnviaByte();
caractere = 't'; LCDEnviaByte();
caractere = 'a';LCDEnviaByte();
caractere = 'd';LCDEnviaByte();
caractere = 'o';LCDEnviaByte();
caractere = 'r';LCDEnviaByte();
caractere = ' ';LCDEnviaByte();
caractere = '=';LCDEnviaByte();
caractere = ' ';LCDEnviaByte();
// ao somar 48 (30H) transformamos o NUMERO em seu ASCII equivalente
caractere = 48+contador; LCDEnviaByte();
caractere = ' ';LCDEnviaByte();
caractere = ' ';LCDEnviaByte();
caractere = ' ';LCDEnviaByte();
caractere = ' ';LCDEnviaByte();
}
/////////////////////////////////////////////////////////////////////////
//***********************************************************************
// Fim do programa fonte
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Roberto
Técnico Eletrônico - PEM