Autor Tema: como manejar datos de 17 bits  (Leído 1797 veces)

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

Desconectado culebrasx

  • PIC10
  • *
  • Mensajes: 39
como manejar datos de 17 bits
« en: 25 de Octubre de 2010, 21:39:34 »
Hola, no se muy bien
 como manejar datos de 17 bits...
Quiero mostrar por lcd el porcentaje que tiene la variable OC1RS respecto de su maximo (1023)

si declaro:
long r;
r=(long) OC1RS*100/1024;

si a OC1RS le digo que sea p. ej. 0x03ff -> 1023 me genera unicamente  en r 0x00008f9c cuando deberia ser
                                                                                                            0x00018f9c
he mirado paso a paso en el dissasembly listing y efectivamente maneja ese uno que lo deja en WREG1 pero luego lo machaca y si copio el texto del dissasembly para poder hacer algo manualmente me da error, lo pongo entre asm(" "); ,claro

decir que ya he usado el buscador pero nada he podido solucionar...

uso C30 y mplab 8.50

un saludo...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: como manejar datos de 17 bits
« Respuesta #1 en: 25 de Octubre de 2010, 21:46:16 »
No entiendo, 1023*100/1024 debería dar 99  :?

Prueba haciendo el cast: r=((long) OC1RS*100/1024);
No contesto mensajes privados, las consultas en el foro

Desconectado culebrasx

  • PIC10
  • *
  • Mensajes: 39
Re: como manejar datos de 17 bits
« Respuesta #2 en: 26 de Octubre de 2010, 08:15:44 »
No entiendo, 1023*100/1024 debería dar 99  :?

Prueba haciendo el cast: r=((long) OC1RS*100/1024);

En efecto, eso era, era simplemente un problema de parentesis...

Un tera de Gracias...Suky...
Y un abrazo desde una callecita de Valencia, España... ;-)