Autor Tema: Variables C30  (Leído 2133 veces)

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

Desconectado zer0007

  • PIC16
  • ***
  • Mensajes: 106
Variables C30
« en: 28 de Septiembre de 2005, 06:02:00 »
Una curiosidad un problema que tenia y he arreglado.

OJO !!

long id;
unsigned , int_uno,int c_dos, c_tres, c_cuatro, c_cinco;

id = ((c_uno * 10000)+(c_dos * 1000)+(c_tres * 100)+(c_cuatro * 10)+c_cinco);

Esto me daba un error en el id aunque no overflow, el problema es que al hacer c_uno * 10000 no lo hace en una variable temporal pero del tipo de c_uno, por lo que el resultado no pasaba de  un unsigned int, lo que hay que hacer es declarar también c_uno como long y solucionamos el problema.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Variables C30
« Respuesta #1 en: 28 de Septiembre de 2005, 06:11:00 »
También podrías usar la conversión momentánea del tipo:

long id;
unsigned int c_uno,int c_dos, c_tres, c_cuatro, c_cinco;

id = (((long)c_uno * 10000)+(c_dos * 1000)+(c_tres * 100)+(c_cuatro * 10)+c_cinco);

Desconectado zer0007

  • PIC16
  • ***
  • Mensajes: 106
RE: Variables C30
« Respuesta #2 en: 28 de Septiembre de 2005, 06:19:00 »
Gracias Nocturno tu siempre al quite Giño

Desconectado jorgepic

  • PIC10
  • *
  • Mensajes: 4
RE: Variables C30
« Respuesta #3 en: 01 de Marzo de 2006, 11:03:00 »
Escrito originalmente por nocturno66
También podrías usar la conversión momentánea del tipo:

long id;
unsigned int c_uno,int c_dos, c_tres, c_cuatro, c_cinco;

id = (((long)c_uno * 10000)+(c_dos * 1000)+(c_tres * 100)+(c_cuatro * 10)+c_cinco);

Desconectado jorgepic

  • PIC10
  • *
  • Mensajes: 4
RE: Variables C30
« Respuesta #4 en: 01 de Marzo de 2006, 11:08:00 »
hola contactos dl foro soy nuevo en este foro y tengo problemas con las funciones del c30 (ADC)