acá va el código que no me da error.
///////////////////////////////////////////////////////////////////////////////
// Autor: JUKINCH para el foro todopic //
// Fecha:
// //
// Programa: proyecto zorras - CON rtc ds1307 y LCD 2*16 //
// Version: 0.1 //
// //
// Dispositivo: PIC 16F877A Compilador: CCS vs4.023 //
// Entorno IDE: ccs //
// PIC: 16f877a //
///////////////////////////////////////////////////////////////////////////////
// Conexión del LCD al Pic (configuración de pines)
//
// PIC LCD
//
// PORTd.0 E
// PORTd.1 RS
// PORTd.2 R_W
//
//
// PORTd.4 D4
// PORTd.5 D5
// PORTd.6 D6
// PORTd.7 D7
/////////////////////////////////////////////////////////////////////////////
// COMO ALIMENTAR EL LCD
// pin VDD a 5v
// pin VSs a gnd
// pin VO a gnd o resistor para fijar contraste
// COMO ENCENDER LA LUZ DEL BACKLIGHT
// PIN 15 a 5v
// pin 16 a gnd
/////////////////////////////////////////////////////////////////////////////
// COMO CONECTAR EL RTC. DS1307
//
// pin 1 y 2 poner un cristal de 36768khz
// pin 3 bateria vcc 3V
// pin 4 gnd
// pin 5 SDA al SDA del pic 16f877a (Es el pin 23)y una resistencia de 10k a VCC
// pin 6 SCL al SCL del pic 16f877a (Es el pin 18)y una resistencia de 10k a VCC
// pin 7 no conectado
// pin 8 a VCC 5V
/////////////////////////////////////////////////////////////////////////////
// 3 botones para modificar hora en rA 0,1,2 con resistencia pull up
//
/////////////////////////////////////////////////////////////////////////////
// LA SALIDA DE EMISION MORSE AL TRANSMISOR ES POR RB.4
/////////////////////////////////////////////////////////////////////////////
// DIRECTIVAS DEL PREPROCESADOR //////////////////////////////////////////////
#include <16f877a.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
// lcd.c //////////////////////////////////////////////////////////////////////
// #define use_portb_lcd TRUE // para usar port D comentar esta linea
#include <lcd.c> // librería del lcd
///////////////////////////////////////////////////////////////////////////////
// Libreria ds1307.c //////////////////////////////////////////////////////////
#define RTC_SDA PIN_C4 // configura el pin C4 como SDA
#define RTC_SCL PIN_C3// configura el pin C3 como SCL
#define USE_INTERRUPTS 1
#include <libreria_rtc.c>
///////////////////////////////////////////////////////////////////////////////
///VARIABLES GLOBALES
// VARIABLES PARA EL RTC
int sec=0;
int min=0;
int hrs=0;
int day=0;
int month=0;
int yr=0;
int dow=0;
/////////////////////////////////////////////////////////////////////////////
// VARIABLES PARA EL MORSE
const int unidad=140; // la unidad en milisegundos para delay_ms se debe
// declarar como constante
// porque sinó sobrepasa el valor permitido para usar como
// variable
//------------ HORA DE ARRANQUE -----------------//
int horaStartMorse=0; // hora de arranque
int minutoStartMorse=0; // minuto de arranque
int segundoStartMorse=0; // segundo morse
//------------ HORA DE FINAL -----------------//
int horaStopMorse=0; // hora de detención
int minutoStopMorse=0; // hora de detención
int horaStartProximo=0;
int minutoStartProximo=0; // VARIABLE PARA COMPUTO DE 5 minutos después de arranque
int MinutosEntreTxyTx=0;
/////////////////////////////////////////////////////////////////////////////
//DEFINICIONES DE FUNCIONES
void oscilador(void);
void punto(void);
void espacioentrecaracter(void);
void raya(void);
void espacioentreletra(void);
void espaciopal(void);
void muestrahora(void);
void configuradigitoshora(void);
void configuradigitosminutos(void);
void configuradigitossegundos(void);
void muestrahorastartfox(void);
void configurahorastartfox(void);
void configuraminutosstartfox(void);
void configurahorastopfox(void);
void configuraminutostopfox(void);
void muestrahorastopfox(void);
void configuraminentreTxyTx(void );
//------Programa principal--------------------------------------
void main(void)
{
// VARIABLES LOCALES DE MAIN
int i=0; // variable para for para probar parpadeo de led en port b.1
int bucle=0; // variable para for Cantidad de veces que dice MOE
int32 bucleoscilafinal=1; // // variable para el for del tono final
//------Puertos y pines-----------------------------------------
set_tris_a(0b11111); // puerto a como ENTRADAS
set_tris_b(0b00000000); // puerto b como salidas
//----------descomentar para inicializar hora en rtc----------------------------
// Inicializa DS1307
ds1307_init(DS1307_OUT_ENABLED | DS1307_OUT_1_HZ);
sec=0;
min=0;
hrs=0;
day=1;
month=1;
yr=1;
dow=1; //dia de la semana
// configura hora inicial DS1307
ds1307_set_date_time(day,month,yr,dow,hrs,min,sec);
//-----------------------------------------------------------------------------
// 1 ------------------------- CONFIGURAR ZORRA -----------------------------
lcd_init(); //-----Inicializo el LCD-------------------------------
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc
,"CONFIGURAR ZORRA");
while (1) // bucle MENÚ principal
{
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{
delay_ms(150);
GOTO ConfiguraHoraRTC;
};
}
// 2 ------------------------- CONFIGURAR HORA RTC-----------------------------
ConfiguraHoraRTC: // OPCION 1) CONFIGURA HORA
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
while (1) // bucle CONFIGURA digitos HORA RTC
{
muestrahora();
delay_ms(10);
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{delay_ms(150);
GOTO ConfiguraMinutosRTC;
};
configuradigitoshora();
}
// 3 ------------------------- CONFIGURAR MINUTOS RTC--------------------------
ConfiguraMinutosRTC:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc
,"MINUTOS RTC");
while (1) // bucle CONFIGURA digitos minutos RTC
{
delay_ms(10);
muestrahora();
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{delay_ms(150);
GOTO ConfiguraSegundosRTC;
};
configuradigitosminutos();
}
// 4 ------------------------- CONFIGURAR SEGUNDOS RTC ------------------------
ConfiguraSegundosRTC:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"SEGUNDOS RTC");
while (1) // bucle CONFIGURA digitos segundos RTC
{
muestrahora();
delay_ms(10);
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{delay_ms(150);
GOTO ConfiguraHoraStartZorra;
}
configuradigitossegundos();
}
// 5 ------------------------- CONFIGURAR HORA START ------------------------
ConfiguraHoraStartZorra:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"HORA START TX");
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
while (1) // bucle CONFIGURA digitos Hora Start Fox
{
if (input(PIN_A2) ) // controla el port.A2 PARA PASAR OPCION SETUP
{
delay_ms(150);
GOTO ConfiguraMinutosStartZorra;
}
configurahorastartfox();
delay_ms(10);
}
// 6 ------------------------- CONFIGURAR MINUTOS START -----------------------
ConfiguraMinutosStartZorra:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"MINUTOS START TX");
while (1) // bucle CONFIGURA digitos minutosStart Fox
{
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{
delay_ms(150);
GOTO ConfiguraHoraStopZorra;
}
configuraminutosstartfox();
}
// 7 ------------------------- CONFIGURAR HORA STOP -----------------------
ConfiguraHoraStopZorra:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"HORA STOP TX");
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
printf(lcd_putc,"%u",horaStopMorse);
printf(lcd_putc,":");
printf(lcd_putc,"%u",minutoStopMorse);
while (1) // bucle CONFIGURA digitos Hora Stop Fox
{
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{delay_ms(150);
GOTO ConfiguraMinutosStopFox;
};
configurahorastopfox();
}
// 8 ------------------------- CONFIGURAR MINUTOS STOP -----------------------
ConfiguraMinutosStopFox:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"MINUTOS STOP TX");
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
printf(lcd_putc,"%u",horaStopMorse);
printf(lcd_putc,":");
printf(lcd_putc,"%u",minutoStopMorse);
while (1) // bucle CONFIGURA digitos minutos Stop Fox
{
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{delay_ms(150);
GOTO ConfiguraMinutosEntreTxyTx;
};
configuraminutostopfox();
}
// 9 ------------------------- CONFIGURAR MINUTOS entre Tx -----------------------
ConfiguraMinutosEntreTxyTx:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"Tiempo.. Tx y Tx");
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
printf(lcd_putc,"minutos: ");
printf(lcd_putc,"%u",MinutosEntreTxyTx);
while (1) // bucle cantidad de minutos entre tx y tx
{
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
printf(lcd_putc,"minutos: ");
lcd_gotoxy(9,2); //----pongo el cursor en caracter 1 de la línea 2----
printf(lcd_putc,"%u",MinutosEntreTxyTx);
delay_ms(15);
if (input(PIN_A2) ) // controla el puerto A2 PARA PASAR OPCION SETUP
{delay_ms(150);
GOTO EsperaInicioZorra;
};
configuraminentreTxyTx();
}
// 9 ------------------------- ESPERA INICIO DE ZORRA -----------------------
EsperaInicioZorra:
{
// ESCRIBE EN LINEA 1 DEL LCD EL TEXTO ESPERANDO INICIO
lcd_init(); //-----Inicializo el LCD-------------------------------
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"ESPERANDO INICIO");
// PASA EL CURSOR A LA 2 DEL LCD---------------------------------------------
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2-----
}
COMPRUEBA_ARRANQUE:
while (1) // bucle muestra HORA y comprueba la hora DE ARRANQUE de ZORRA //
{
muestrahora();
lcd_gotoxy(10,2);
if (horaStartMorse<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",horaStartMorse);
}
else
{
printf(lcd_putc,"%u",horaStartMorse);
}
printf(lcd_putc,":");
delay_ms(10);
if (minutoStartMorse<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",minutoStartMorse);
}
else
{
printf(lcd_putc,"%u",minutoStartMorse);
}
lcd_gotoxy(1,2);
delay_ms(200);
if ((horaStartMorse==hrs) && (minutoStartMorse==min)&& (segundoStartMorse==sec) )
GOTO EMITE;
}
EMITE:
{ // label ARRANCA emisión de ZORRA
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"TRANSMITIENDO...");
lcd_gotoxy(1,2);
output_HIGH(PIN_B0); // ACTIVA PTT
{// EMITE palabra moe en CODIGO MORSE EN PORT RB.1
for (bucle=1;bucle<9;++bucle)
{ // letra M
raya(); // unidad(140)*3=420 ms
muestrahora();
espacioentrecaracter(); // unidad(140) =140 ms
muestrahora();
raya(); // unidad(140)*3=420 ms
muestrahora();
espacioentreletra(); // unidad(140)*3=420 ms
// Letra O
raya(); // unidad(140)*3=420 ms
muestrahora();
espacioentrecaracter(); // unidad(140) =140 ms
muestrahora();
raya(); // unidad(140)*3=420 ms
muestrahora();
espacioentrecaracter(); // unidad(140) =140 ms
muestrahora();
raya(); // unidad(140)*3=420 ms
muestrahora();
espacioentreletra(); // unidad(140)*3=420 ms
// Letra e
punto(); // unidad(140) =140 ms
muestrahora();
espaciopal(); // unidad(140)*7=980 ms
}
// subtotal 4480 ms
// total * 8 BUCLES = 35840 ms
// END OF MESSAGE
punto(); // unidad(140) =140 ms
muestrahora();
espacioentrecaracter(); // unidad(140) =140 ms
raya(); // unidad(140)*3=420 ms
muestrahora();
espacioentrecaracter(); // unidad(140) =140 ms
punto(); // unidad(140) =140 ms
muestrahora();
espacioentrecaracter(); // unidad(140) =140 ms
raya(); // unidad(140)*3=420 ms
muestrahora();
espacioentrecaracter(); // unidad(140) =140 ms
punto(); // unidad(140) =140 ms
muestrahora();
espaciopal(); // unidad(140)*7=980 ms
// total 2800 ms
// Resto para completar el minuto
// 35840 ms + 2800 = 38640 ms
// 60000 ms - 38640 ms = 21360 ms
// COMPLETA EL MINUTO CON UN TONO AUDIBLE durante 21360 ms
// TONO AUDIBLE HASTA COMPLETAR EL MINUTO //
for (bucleoscilafinal=1;bucleoscilafinal<=21000;bucleoscilafinal++)
{
output_high(PIN_B4);
delay_us(500);
// COMENTE PARA PROBAR ERROR muestrahora();
output_low(PIN_B4);
delay_us(500);
}
//21360 // repite hasta completar
// el minuto con un tono fijo
// puse 21000 para tener resto de silencio por si me paso del minuto
output_LOW(PIN_B0); // DESACTIVA PTT
ds1307_get_time(hrs,min,sec); // lee hora DS1307
////////////////////////////////////////////////ver esto/////////////
////////////////////////////////////////////////ver esto/////////////
////////////////////////////////////////////////ver esto/////////////
////////////////////////////////////////////////ver esto/////////////
////////////////////////////////////////////////ver esto/////////////
if ((min+MinutosEntreTxyTx)<=59)
{
minutoStartProximo=min+MinutosEntreTxyTx;
horaStartProximo=hrs;
}
Else {
minutoStartProximo=0;
if (23==hrs)
{
horaStartProximo=0;
}
else
{horaStartProximo=hrs+1;
}
}
goto COMPRUEBA_CUATROMINUTOS;
}// TERMINA DE EMITIR palabra moe en CODIGO MORSE EN PORT RB.1
} // TERMINA label ARRANCA ZORRA
COMPRUEBA_CUATROMINUTOS:
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"ESPERANDO...");
while (1) // bucle muestra HORA y comprueba LOS CUATRO MINUTOS DE REARRANQUE de ZORRA //
{
muestrahora();
lcd_gotoxy(11,2);
// muestra hora nuevo tx -----------------------------------------------------
if (horaStartProximo<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",horaStartProximo);
}
else
{
printf(lcd_putc,"%u",horaStartProximo);
}
printf(lcd_putc,":");
delay_ms(10);
if (minutoStartProximo<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",minutoStartProximo);
}
else
{
printf(lcd_putc,"%u",minutoStartProximo);
}
lcd_gotoxy(1,2);
delay_ms(200);
// comprueba si debe finalizar transmisión----------------------------------
if ((hrs>=horaStopMorse) && (min>=minutoStopMorse) )
GOTO FINALTRANSMISION;
if (min==minutoStartProximo) //COMPRUEBA MINUTO 0 O 5 PARA RECOMENZAR A EMITIR
GOTO EMITE;
}
FINALTRANSMISION:
{
lcd_putc('\f'); //-borro la pantalla-----------------------------------
lcd_gotoxy(1,1); //----pongo el cursor en caracter 1 de la línea 1------
printf(lcd_putc,"FIN TX");
while (1)
{
lcd_gotoxy(1,2);
muestrahora();
delay_ms(200);
}
}
}// final de main
// FIN DE PROGRAMA ////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// programación de las funciones declaradas más arriba para formar oscilador,
// punto, raya, espacios, tono final.
//
////////////////////////////////////////////////////////////////////////////////
// función oscilador
// genera una onda cuadrada de 1000hz
void oscilador(void)
{
int bucleoscilador=0;
do
{
output_high(PIN_B4);
delay_us(500);
output_low(PIN_B4);
delay_us(500);
bucleoscilador++;
}
while (bucleoscilador<unidad); // repite hasta valor
// de la constante unidad
}
void raya(void)
{
oscilador();
oscilador();
oscilador();
}
void punto(void)
{
oscilador();
}
// definición de espacios ///////////////////////////////////
void espacioentrecaracter(void)
{
delay_ms(unidad);
}
void espacioentreletra(void)
{
delay_ms(unidad*3);
}
void espaciopal(void)
{
delay_ms(unidad*7);
}
void muestrahora(void)
{
ds1307_get_time(hrs,min,sec); // lee hora DS1307
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
printf(lcd_putc," "); // Borro segundo renglón del lcd
lcd_gotoxy(1,2);
if (hrs<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",hrs);
}
else
{
printf(lcd_putc,"%u",hrs);
}
printf(lcd_putc,":");
if (min<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",min);
}
else
{
printf(lcd_putc,"%u",min);
}
printf(lcd_putc,":");
if (sec<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",sec);
}
else
{
printf(lcd_putc,"%u",sec);
}
}
void configuradigitoshora(void)
{
// digitos hora
if (input(PIN_A0) ) // controla el puerto A pin0 incrementa horas
{
output_toggle(PIN_B0);
if (hrs>22)
hrs=0;
else hrs++;
i2c_start();
i2c_write(0xD0);
i2c_write(0x02);
i2c_write(ds1307_bin2bcd(hrs));
i2c_stop();
delay_ms(150);
}
if (input(PIN_A1) ) // controla el puerto A pin1 decrementa horas
{
output_toggle(PIN_B0);
if (hrs>0)hrs--;
else hrs=0;
i2c_start();
i2c_write(0xD0);
i2c_write(0x02);
i2c_write(ds1307_bin2bcd(hrs));
i2c_stop();
delay_ms(150);
}
}
void configuradigitosminutos(void)
{
// digito minutos
if (input(PIN_A0) ) // controla el puerto A pin0 incrementa minutos
{
output_toggle(PIN_B0);
if (min>58)
min=0;
else min++;
i2c_start();
i2c_write(0xD0);
i2c_write(0x01);
i2c_write(ds1307_bin2bcd(min));
i2c_stop();
delay_ms(150);
};
if (input(PIN_A1) ) // controla el puerto A pin1 decrementa minutos
{
output_toggle(PIN_B0);
if (min>0)
min--;
else min=0;
i2c_start();
i2c_write(0xD0);
i2c_write(0x01);
i2c_write(ds1307_bin2bcd(min));
i2c_stop();
delay_ms(150);
};
}
void configuradigitossegundos(void)
{
// digito segundos
if (input(PIN_A0) ) // controla el puerto A pin0 incrementa segundos
{
output_toggle(PIN_B0);
if (sec>58)
sec=0;
else sec++;
i2c_start();
i2c_write(0xD0);
i2c_write(0x00);
i2c_write(ds1307_bin2bcd(sec));
i2c_stop();
delay_ms(150);
}
if (input(PIN_A1) ) // controla el puerto A pin1 decrementa segundos
{
output_toggle(PIN_B0);
if (sec>0)
sec--;
else sec=0;
i2c_start();
i2c_write(0xD0);
i2c_write(0x00);
i2c_write(ds1307_bin2bcd(sec));
i2c_stop();
delay_ms(150);
}
}
void muestrahorastartfox(void)
{
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
lcd_gotoxy(1,2);
delay_ms(10);
if (horaStartMorse<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",horaStartMorse);
}
else
{
printf(lcd_putc,"%u",horaStartMorse);
}
printf(lcd_putc,":");
delay_ms(10);
if (minutoStartMorse<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",minutoStartMorse);
}
else
{
printf(lcd_putc,"%u",minutoStartMorse);
}
printf(lcd_putc,":");
printf(lcd_putc,"00");
}
void muestrahorastopfox(void)
{
lcd_gotoxy(1,2); //----pongo el cursor en caracter 1 de la línea 2----
delay_ms(10);
if (horaStopMorse<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",horaStopMorse);
}
else
{
printf(lcd_putc,"%u",horaStopMorse);
}
printf(lcd_putc,":");
delay_ms(5);
if (minutoStopMorse<10)
{
printf(lcd_putc,"0");
printf(lcd_putc,"%u",minutoStopMorse);
}
else
{
printf(lcd_putc,"%u",minutoStopMorse);
}
printf(lcd_putc,":");
printf(lcd_putc,"00");
}
void configurahorastartfox(void)
{
muestrahorastartfox();
if (input(PIN_A0) ) // controla el puerto A pin0 incrementa hora start morse
{
output_toggle(PIN_B0);
if (horaStartMorse>22)
horaStartMorse=23;
else horaStartMorse++;
delay_ms(150);
muestrahorastartfox();
}
if (input(PIN_A1) ) // controla el puerto A pin1 decrementa hora start morse
{
output_toggle(PIN_B0);
if (horaStartMorse>0)
horaStartMorse--;
else horaStartMorse=0;
delay_ms(150);
muestrahorastartfox();
}
}
void configuraminutosstartfox(void)
{
muestrahorastartfox();
if (input(PIN_A0) ) // controla el puerto A pin0 incrementa minutos start morse
{
output_toggle(PIN_B0);
if (minutoStartMorse>58)
minutoStartMorse=59;
else minutoStartMorse++;
delay_ms(150);
muestrahorastartfox();
}
if (input(PIN_A1) ) // controla el puerto A pin1 decrementa minutos start morse
{
output_toggle(PIN_B0);
if (minutoStartMorse>0)
minutoStartMorse--;
else minutoStartMorse=0;
delay_ms(150);
muestrahorastartfox();
}
}
void configurahorastopfox(void)
{
muestrahorastopfox();
if (input(PIN_A0) ) // controla el puerto A pin0 incrementa hora stop morse
{
output_toggle(PIN_B0);
if (horaStopMorse>22)
horaStopMorse=23;
else horaStopMorse++;
delay_ms(150);
muestrahorastopfox();
}
if (input(PIN_A1) ) // controla el puerto A pin1 decrementa hora stop morse
{
output_toggle(PIN_B0);
if (horaStopMorse>0)
horaStopMorse--;
else horaStopMorse=0;
delay_ms(150);
muestrahorastopfox();
}
}
void configuraminutostopfox(void)
{
muestrahorastopfox();
if (input(PIN_A0) ) // controla el puerto A pin0 incrementa minutos stop morse
&nb