Autor Tema: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)  (Leído 13709 veces)

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

Desconectado kaki

  • PIC18
  • ****
  • Mensajes: 260
Buenas desarolle una funcion que de duvuelve un valor char :

Código: [Seleccionar]
char TeclaLeida (){
int valor;
char TeclaChar;
valor = medir();
     if (valor<150)
        TeclaChar='#';
     else if (valor<154)
        TeclaChar='9';
     else if (valor<160)
        TeclaChar='6';
     else if (valor<165)
        TeclaChar='3';
     else if (valor<175)
        TeclaChar='0';
     else if (valor<180)
        TeclaChar='8';
     else if (valor<188)
        TeclaChar='5';
     else if (valor<195)
        TeclaChar='2';
     else if (valor<205)
        TeclaChar='*';
     else if (valor<211)
        TeclaChar='7';
     else if (valor<223)
        TeclaChar='4';
     else if (valor<233)
        TeclaChar='1';
else
TeclaChar='A';
return TeclaChar;
}

Bueno el problema q tengo es que cuando llamo esa funcion en el programa principal:

Código: [Seleccionar]
void main() {
 char Tecla;
 int i=0;
 configuracion ();
 
 while (TRUE){
lcd_gotoxy(1,1);
  lcd_putc("Ingrese Pass:");  
Tecla = TeclaLeida(); // -------------------> ACA ME DA EL ERROR EN ESTA LINEA
     if (Tecla != 'A') {
         Pass[i] = Tecla;   //---> ES UN ARREGLO CHAR GLOBAL...
         i++;
}  
  }
}

Me da el siguiente error:
Citar
*** Error 51 "Principal.c" Line 32(21,22): A numeric expression must appear here

La verdad es que ya agote me pensamiento y no se por que me dice q tiene que haber una exprecion numerica.

Espero que entiendan algo de todo este lio que arme.
« Última modificación: 07 de Agosto de 2010, 01:22:35 por kaki »

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #1 en: 07 de Agosto de 2010, 09:45:49 »
¿lcd_putc() no es para poner en el LCD un carácter (no un string)?  :shock:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #2 en: 07 de Agosto de 2010, 10:36:20 »
¿lcd_putc() no es para poner en el LCD un carácter (no un string)?  :shock:


Pero en CCS se puede  :?  Envía un string al LCD.

Yo al programa no le veo ningun error :undecided:
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #3 en: 07 de Agosto de 2010, 10:38:09 »
lcd_putc() me ha funcionado, hasta ahora siempre colocandole una string adentro tal como lo hace nuestro amigo kaki, quizá pueda depender de la librería que estás usando y es la que provoca el error.

Para comprobar eso usa

printf(lcd_putc,"Ingrese pass:");

saludos.
.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #4 en: 07 de Agosto de 2010, 11:07:59 »
Creo que no todos los IF llegan al 'return' de la función.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #5 en: 07 de Agosto de 2010, 11:35:12 »
¿Capaz anidó demasiados if?
No sé cuál será el límite de anidamiento del CCS...

"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #6 en: 07 de Agosto de 2010, 11:47:42 »
El número que tu función espera es el que va detrás del "return". Lo has puesto sin paréntesis y son obligatorios.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #7 en: 07 de Agosto de 2010, 13:06:45 »
Ja! Yo copio lo mostrado, compilo y ningún problema (CCS 4.108). Por lo menos de compilación no me indica nada, del funcionamiento, ni idea  :mrgreen:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado kaki

  • PIC18
  • ****
  • Mensajes: 260
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #8 en: 07 de Agosto de 2010, 13:31:28 »
Código: [Seleccionar]
Insertar Cita
El número que tu función espera es el que va detrás del "return". Lo has puesto sin paréntesis y son obligatorios.
Publicado en: Hoy a las 11:35:12 Publicado por: BrunoF 

Donde me fala los parentecis?


Con respecto a lo que dicen del lcd no esa parte es aca:Tecla = TeclaLeida(); por cuando le pongo la // barra a esa linea, compila sin error y sin warning.

Es un problema en la funcion pero no logro detectarlo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #9 en: 07 de Agosto de 2010, 13:34:57 »
Más organizadito  :mrgreen: sería:


Código: C
  1. if(....){
  2.  
  3.    }else if(....){
  4.  
  5.    }else{
  6.  
  7.    }
  8.  
  9.  
  10.    return(...);


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #10 en: 07 de Agosto de 2010, 13:36:32 »
Aquí te faltan los paréntesis:

return (TeclaChar);

Desconectado kaki

  • PIC18
  • ****
  • Mensajes: 260
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #11 en: 07 de Agosto de 2010, 13:39:09 »
no me sigue dando el error!! Ya sueño de noche con este maldito error!

Desconectado kaki

  • PIC18
  • ****
  • Mensajes: 260
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #12 en: 07 de Agosto de 2010, 13:45:18 »
Hice lo que me dijo Suky...

Código: [Seleccionar]
char TeclaLeida (){
int valor;
char TeclaChar;
valor = medir();
     if (valor < 150){
        TeclaChar = '#';
     }else if (valor<154){
        TeclaChar = '9';
     }else if (valor<160){
        TeclaChar = '6';
     }else if (valor<165){
        TeclaChar = '3';
     }else if (valor<175){
        TeclaChar = '0';
     }else if (valor<180){
        TeclaChar = '8';
     }else if (valor<188){
        TeclaChar = '5';
     }else if (valor<195){
        TeclaChar = '2';
     }else if (valor<205){
        TeclaChar = '*';
     }else if (valor<211){
        TeclaChar = '7';
     }else if (valor<223){
        TeclaChar = '4';
     }else if (valor<233){
        TeclaChar = '1';
}else{
TeclaChar = 'A';
}
     return (TeclaChar);
}

y adivinen que!!
Me sigue dando el error!!!!!!!!!!!!!!!!!!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #13 en: 07 de Agosto de 2010, 13:52:48 »
Pues yo también hice lo que dijo Suky
Ja! Yo copio lo mostrado, compilo y ningún problema (CCS 4.108). Por lo menos de compilación no me indica nada, del funcionamiento, ni idea  :mrgreen:


Saludos!

y también me compila sin errores. Versión 4.093

¿Cuál es tu versión?

Desconectado kaki

  • PIC18
  • ****
  • Mensajes: 260
Re: Error 51 Line 32(21,22): A numeric expression must appear here (CCS)
« Respuesta #14 en: 07 de Agosto de 2010, 13:59:13 »
IDE  Version 4.104
PCB  Version 4.104
PCM  Version 4.104
PCH  Version 4.104
PCD  Version 4.104

Esa es mi version me parece q es superior!! Aclaro que yo no uso el IDE de PCW uso MPLAB