Autor Tema: Programando de 0  (Leído 2949 veces)

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

Desconectado alexispovedag

  • PIC10
  • *
  • Mensajes: 14
Programando de 0
« en: 07 de Junio de 2014, 00:17:55 »
Hola a toda la comunidad, estoy manejando un programa que tome una clave, la compare y me diga mediante un LCD si esta correcta o no este es el codigo

#include <16f877A.h>
#use delay(clock=4000000)
#include <LCD.C>
#fuses  XT,nowdt


 char tecla,dato[2];
 const char clave[]={'1','2','3'};

void main(){
int i=0;
while(true){

   lcd_init ();
   lcd_gotoxy(3,1);
   printf(lcd_putc,"hola");
   lcd_gotoxy(1,2);   
   printf(lcd_putc,"mundo");
   delay_ms(1000);
   
   lcd_init();
   
   lcd_gotoxy(1,1);
   printf(lcd_putc,"Digite la clave de acceso");
    delay_ms(1000);
   char clave[]={'1','2','3'};
   port_b_pullups(true);
   
   lcd_putc("\f");
   while(true){
   lcd_gotoxy(6,1);
   printf(lcd_putc, "Digite la clave");
   while(i<=2){
   
   tecla= getc();
   if(tecla!=0){
   dato=tecla;
   i++;
   lcd_gotoxy(i,2);
   printf(lcd_putc,"%c", tecla);
   delay_ms(100);
   }
   }
   i=0;
   if((dato[0]==tecla[0]) && (dato[1]==tecla[1]) && (dato[2]==tecla[2]){
   printf(lcd_putc, "Dato valido");
   }
   
   }
   
     
}//while
}//main

Alguien porfavor me dice que error tengo? tira error en el tecla=getc(); pero no se porque gracias por su atencion.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Programando de 0
« Respuesta #1 en: 07 de Junio de 2014, 09:17:59 »
    Si necesitas tres bytes, las variables las debes definir como "char variable[3]" o incluso "char variable[4]" ya que el último byte almacenará el caracter \0 que indica el fin de una variable tipo string.

    A su vez, creo que la definición debería ser

Código: C
  1. char tecla[4], dato[4];

  Es decir, cada variable definida como un array.

    ¿getc() no es para recibir datos por USART? Pregunto porque no utilizo CCS, más allá que sea o no la función adecuada deberías leer "la tecla" de esta forma

Código: C
  1. tecla[indice] = getc();
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado alexispovedag

  • PIC10
  • *
  • Mensajes: 14
Re: Programando de 0
« Respuesta #2 en: 07 de Junio de 2014, 10:27:06 »
Gracias por tu ayuda ya lo he resuelto :mrgreen: