Saludos.
tengo este código, lo que hace es llamar a una funcion, y ésta llama a otra, pero no regresa al codigo principal, desde donde se llamo a la primera funcion.
supongo que por defecto debería regresar al lugar de donde se le llama !!!!!
Que estoy haciendo mal????
El código es éste.
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
#bit enter = 6.1
#bit arriba = 8.6
#bit abajo = 8.7
#include <LCD4x20.C>
#use fast_io(B)
#use fast_io(D)
void vDibujaPuntero(int puntero);
void OpcionSelect(int puntero);
void testeo(void);
int puntero = 0;
#zero_ram
void main()
{
//int puntero = 0;
set_tris_b(0x03);
set_tris_d(0xC0);
lcd_init();
while(true)
{
lcd_putc("\f");
lcd_putc(" Este es una");
lcd_gotoxy(1,2);
lcd_putc("prueva del menu");
lcd_gotoxy(1,3);
lcd_putc("espero salga");
lcd_gotoxy(1,4);
lcd_putc("bien....!");
if (enter == 1)
{
lcd_putc("\f");
lcd_gotoxy(1,2);
lcd_putc("SELECCIONE");
lcd_gotoxy(1,3);
lcd_putc("PLANTACION");
delay_ms(2000);
//lcd_putc("\f");
testeo();
}
delay_ms(300);
}
//delay_ms(300);
}
void testeo()
{
puntero = 1;
vDibujaPuntero(puntero);
while (true)
{
if (abajo == 1)
{
delay_ms(300);
puntero++;
if (puntero == 5)
{
puntero = 1;
}
vDibujaPuntero(puntero);
}
if (arriba == 1)
{
delay_ms(300);
puntero--;
if (puntero == 0)
{
puntero = 4;
}
vDibujaPuntero(puntero);
}
if (enter == 1)
{
OpcionSelect(puntero);
}
}
}
void vDibujaPuntero (int puntero)
{
lcd_putc("\f");
lcd_gotoxy(3,1);
lcd_putc("1 opcion uno");
lcd_gotoxy(3,2);
lcd_putc("2 opcion dos");
lcd_gotoxy(3,3);
lcd_putc("3 opcion tres");
lcd_gotoxy(3,4);
lcd_putc("4 opcion cuatro");
lcd_gotoxy(1,puntero);
lcd_putc("->");
}
void OpcionSelect(int puntero)
{
switch(puntero)
{
case 1:lcd_putc("\f");
lcd_putc("opcion 1");
lcd_gotoxy(1,2);
lcd_putc("seleccionada");
delay_ms(300);
break;
case 2:lcd_putc("\f");
lcd_putc("opcion 2");
lcd_gotoxy(1,2);
lcd_putc("seleccionada");
delay_ms(300);
break;
case 3:lcd_putc("\f");
lcd_putc("opcion 3");
lcd_gotoxy(1,2);
lcd_putc("seleccionada");
delay_ms(300);
break;
case 4:lcd_putc("\f");
lcd_putc("opcion 4");
lcd_gotoxy(1,2);
lcd_putc("seleccionada");
delay_ms(300);
break;
}
}
tambien pongo los archivos para la simulacion y el compilado (proteus)