hola me puden ayudar con este codigo yo lo veo bien pero cuan compilo en ccs me marca 3 errores, pero pues ya no se q hacer por fa nesecito ayuda
http://imageshack.us/photo/my-images/863/pantallau.png
http://imageshack.us/photo/my-images/863/pantallau.png

PHP:
#include "E:\tempReloj\sensado.h"
#define Use_LCD_port
#define use_lcd_p_b
#define TRIS_lcd_def 0b0000
#define RTC_SCLK PIN_A4 //definimos pin"s...
#define RTC_IO PIN_A5
#define RTC_RST PIN_A1
#include "LCD_Cr.C"
#include "ds1302.c"
///VARIABLES GLOBALES
byte hour,min,sec; //variabes para ds1302
byte menu=0,flag=0,var=2; //variables para menu configurar
///DEFINICION DE FUNCIONES
void config(void);
void horas(void);
void minutos(void);
///LLAMADA FUNCION INTERRUPCION
#INT_TIMER0
void interrupcion(void)
{
if(flag>var){ //¿ya es 130ms aprox?
var--; //SI -> decremento var...
if(var==0)
var=2; //...ajuste fino de 130ms aprox
flag=0; //reset flag para contar 130ms aprox
rtc_get_time(hour,min,sec ); //coge hora,minuto,segundo
printf(lcd_putc,"Hora: %2X:%2X:%2X",hour,min,sec);
//lcd
}
set_timer0(0); //reset TMR0
flag++; //incremento variable flag
}
///PROGRAMA
void main(void){
enable_interrupts(INT_TIMER0); //interrupcion TIMER0 activada
setup_counters(RTCC_INTERNAL,RTCC_DIV_1); //configuracion interrupcion TMR0
set_timer0(0); //carga TMR0
lcd_init(); //inicializa lcd
rtc_init(); //inicializa rtc
lcd_putc("dsd"); //presentacion...
delay_ms(800); //...inicial
config(); //ve a menu configurar
enable_interrupts(INT_TIMER0); //activadas interrupciones
for( ; ; ){ //bucle...
if(input(PIN_A5)==0){ //Si se pulsa Conf....
while(!input(PIN_A5)){} //elimina rebotes
config();
} //ve a menu
//configurar//
///FUNCION CONFIGURAR
void config(void){
Disable_interrupts(GLOBAL);
do{
switch(menu){
case 0:
lcd_putc("fConfigurar
horas?" ); //horas
if(!input(PIN_A5)){
while(!input(PIN_A5)){}
horas();
menu=1;
//apunta siguiente opcion
}
break;
case 1: lcd_putc("fConfigurar
minutos?" ); //minutos
if(!input(PIN_A5)){
while(!input(PIN_A5)){}
minutos();
menu=2;
//apunta siguiente opcion
}
break;
case 2: lcd_putc("fSalir
configurar?" ); //salir configuracion
if(!input(PIN_A5)){
menu=3;
}
}
if(!input(PIN_A3)){ //controla el boton up...
while(!input(PIN_A3)){}
menu++;
if(menu>2)
menu=0;
} //...para mostrar menu
//por lcd
delay_ms(130); //retardo para ver lcd
}while(menu<3);
menu=0;
//actualiza indices menu
rtc_set_datetime(hour,min); //nueva hora,minuto,...
enable_interrupts(GLOBAL); //activadas
//interrupciones
set_timer0(0);
//carga TMR0
}
///FUNCION CONFIGURA HORAS
void horas(void){
lcd_gotoxy(1,1);
printf(lcd_putc,"fConf.Horas:
Hora: %2X:%2X:%2X",hour,min,sec); //////////////
do{
if(!input(PIN_A3)){ //¿se ha pulsado up?
while(!input(PIN_A3)){} //elimina rebotes
hour++; //SI ->
//incremento hour
switch(hour){ //limites...
case 0x0A: hour=0x10;break;
case 0x1A: hour=0x20;break;
case 0x24: hour=0x00;
}
//...hour
lcd_gotoxy(1,1);
printf(lcd_putc,"
Hora: %2X:%2X:%2X",hour,min,sec); //muestra por lcd hour
}
}while(input(PIN_A5));
while(!input(PIN_A5)){} //elimina rebotes
}
///FUNCION CONFIGURA MINUTOS
void minutos(void){
lcd_gotoxy(1,1);
printf(lcd_putc,"fConf.Minutos:
Hora: %2X:%2X:%2X",hour,min,sec); //muestra por lcd
do{
if(!input(PIN_A3)){ //¿se ha pulsado up?
while(!input(PIN_A3)){} //elimina rebotes
min++; //SI -> incremento min
switch(min){ //limites...
case 0x0A: min=0x10;break;
case 0x1A: min=0x20;break;
case 0x2A: min=0x30;break;
case 0x3A: min=0x40;break;
case 0x4A: min=0x50;break;
case 0x5A: min=0x00;
} //...min
lcd_gotoxy(1,1);
printf(lcd_putc,"Hora: %2X:%2X:%2X",hour,min,sec); //muestra por lcd min
}
}while(input(PIN_A5));
while(!input(PIN_A5)){} //elimina rebotes
}
Última edición por un moderador: