Autor Tema: Variable fuera de rango  (Leído 2316 veces)

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

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Variable fuera de rango
« en: 10 de Abril de 2006, 08:52:43 »
Saludos! Estoy intentanto implementar un algoritmo para la recepcion y procesado de datos mediante un mando por infrarrojos a partir de un codigo en basic, creo que mas o menos lo tengo pero me da un fallo el compilador, estoy usando la version de CCs 3.249,el fallo que me da es este:

constant out of the range 51 is not 0..1

Pero no se porque me da este fallo, ya que defino la variable como int1 y le asigno el valor de un pin:

#define sensor_ir PIN_B3
....................
int1 valor = 0;
..................
valor = sensor_ir;

Esta ultima linea es la que me señala cuando me da el error, he probado definiendo valor como int y no da ningun error,  asi que el fallo creo que debe esta en la definicion de sensor_ir¿alguien sabe que puede estar mal?; he subido solo estas lineas para que sea mas facil la lectura pero si veis que hace falta lo subo todo; gracias de antemano
Saludos desde Córdoba, españa

Desconectado mirazulado

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 142
Re: Variable fuera de rango
« Respuesta #1 en: 10 de Abril de 2006, 10:07:55 »
tenes que declarar:
#define sensor_ir input(PIN_B3)

valor=sensor_ir;

esto funciona !
cuando utilizas la funcion #define etiqueta valor, lo que le decis al compilador es que cada vez que encuntre la palabra "etiqueta" la reemplace por "valor"... o sea si ponemos:
#define sensor PIN_B3  // sensor es igual a PIN_B3, PIN_B3 es una constante = a 51
valor=sensor;                // nos va a quedar valor=51; esto es un error !!!

#define sensor input(PIN_B3)
valor=sensor                 // nos queda valor=input(PIN_B3) esto si es valido !!!

Un abrazo Mariano !!

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Variable fuera de rango
« Respuesta #2 en: 10 de Abril de 2006, 11:15:40 »
Pues gracias por tu ayuda, ahora despues voy a probarlo, y cuadno consiga que me funcione subire el codigo por si a alguien le es util
Saludos desde Córdoba, españa

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: Variable fuera de rango
« Respuesta #3 en: 10 de Abril de 2006, 20:56:32 »
Kain , me parece que el error de out of range esta relacionado con que vos definis un int1 y si el valor es mayor que 1 te va a dar ese error,

fijate que cuando definis solamente int el compilador asume que es int8 con lo que 51 esta dentro del rangoi( int8 va de 0 a 255)

espero haber sido de ayuda...

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Variable fuera de rango
« Respuesta #4 en: 11 de Abril de 2006, 05:21:59 »
Gracias por tu ayuda, valor debe ser una variable de 1bit ya que guarda el bit que ha llegado al detector de infrarrojos; al final el fallo era el que decia mirazulado aunque cosas de la tecnica con ese mismo fallo en la version 3.242 compilaba sin darme error  :shock: aunque no iba el programa
Saludos desde Córdoba, españa