Autor Tema: Un menu en la LCD para configurar nuestro programa  (Leído 6357 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Un menu en la LCD para configurar nuestro programa
« Respuesta #15 en: 11 de Agosto de 2005, 05:12:00 »
Yo en C hago los menús con un "switch" dentro de un while, antes de este lee la variable de donde provenga (por ejemplo un teclado matricial) y así siempre hasta que pulse alguna tecla y salga como si fuese una "bandera", un ejemplo (el menú se mueve con el mando a distancia de la TV, 1 y 2 y el 0 para salir).

Codigo:

//***********************************************
//* RaDoN-Bot 877
//* Por Daniel G - by RaDoN (8/8/05)
//* *********************************************

  #include <16f877.h>
  #fuses NOLVP,XT,NOWDT,NOPROTECT,PUT
  #use delay(clock=4000000)

  #include "LCD.C"
  //#include "24256.C"

  #ORG 0x1F00,0x1FFF {} //for the 8k 16F876/7 bootloader

  //#use fast_io(A)
  //#use fast_io(B)
  //#use fast_io(C)
  //#use fast_io(D)

  #byte port_a = 5
  #byte port_b = 6
  #byte port_c = 7

  int x, menu=1;

  void zumbador(int x)
  {
      output_bit(PIN_C5,1);
      delay_ms(x);
      output_bit(PIN_C5,0);
  }

  int rc5(void) {
   int i, x = 0;
   while(input(PIN_B6) == 1);
   delay_us(444);
   for(i=0;i<=7;++i) {
      delay_us(1778);} // nos saltamos los bit de start, toggle y sistema (8bits)
   for(i=0;i<=5;++i) {
      x = x + input(PIN_B6);
      if(i != 5) x = x * 2;
      delay_us(1778);}
   delay_ms(139); // tiempo para repeticiones entre tramas
   return x; }

  void main(void)
  {
      lcd_init();
      printf(lcd_putc,"fDany-Bot 877
");
      while(menu != 0)
      {
      menu = rc5();
         switch(menu)
         {
            case 1:  lcd_gotoxy(1,2);
                     printf(lcd_putc,"menu 1");
                     break;
            case 2:  lcd_gotoxy(1,2);
                     printf(lcd_putc,"menu 2");
                     break;
            case 0:  lcd_gotoxy(1,2);
                     printf(lcd_putc,"Saliendo...");
                     delay_ms(1000);
                     break;
         }
      }
      zumbador(10);
  }



Si alguien lo hace de otra forma en C me gustaria que lo comentaran para conocer nuevas formas :]
Si juegas contra el mejor, pierdes como los demás.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Un menu en la LCD para configurar nuestro programa
« Respuesta #16 en: 18 de Agosto de 2005, 16:14:00 »
Radon despues de nose cuanto tiempo, te he subido a la página el menú que te dije en su dia.

http://perso.wanadoo.es/j1m/index.htm

http://perso.wanadoo.es/j1m/proyectos/ejemplos/menu.zip


Es un menú controlable con 3 botones, escrito en C para el CCS, le he puesto un LCD de 20x4 para que sea mas "vistoso", en principio para el 18F2520. He subido tb una simulación en Proteus para que veais su funcionamiento, tardará un poco en ejecutarse, es por el dichoso WDT en los PIC18 y el Proteus que se llevan muuu malamente.

saludos y sorry x el retraso! Giño

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Un menu en la LCD para configurar nuestro programa
« Respuesta #17 en: 18 de Agosto de 2005, 16:41:00 »
Jo ... no me deja abrir el archivo de proteus (no se que de la version). ¿Cual usas tu? Creo que tengo la 6.5 ... ¿Te importaria subir una foto con el esquematico y ya lo monto yo como pueda? Gracias J1M.

Voi a hecharle un vistazo al menu.h ... por cierto enhorabuena por la web (ya ta en mis favoritos Sonrisa Gigante).
Si juegas contra el mejor, pierdes como los demás.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Un menu en la LCD para configurar nuestro programa
« Respuesta #18 en: 18 de Agosto de 2005, 16:59:00 »
<img   src="http://pics.miarroba.com/caretos/wink.gif" alt="Giño" title="Giño" />

si no kieres bajart esa version te pongo una fotillo, aunq... renovarse o morí :P

xao xao! y thx x el comentario d la web <img   src="http://pics.miarroba.com/caretos/smile.gif" alt="Sonrisa" title="Sonrisa" />
« Última modificación: 18 de Octubre de 2007, 18:47:02 por LordLafebre »


 

anything