Autor Tema: ¿Cuál es la explicación?  (Leído 4905 veces)

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

Desconectado German_Pereira

  • PIC10
  • *
  • Mensajes: 12
RE: ¿Cuál es la explicación?
« Respuesta #15 en: 24 de Mayo de 2005, 09:11:00 »
Hola.

Sobre el asunto de las operaciones,  
"posmem=(40*y)+(x/8);  --> que no funciona
y sin embargo va perfecto cuando hago esto:
posmem=(40*y);
posmem+=(x/8); "


Bueno esto me paso con varios compiladores C que utilice por ejemplo el C2C para pic da el mismo problema, el Keil para ATMEL da lo mismo, el anidamiento de operaciones matematicas para un microcontrolador que no tiene mucha memoria RAM provoca errores de compilacion, eso no implica que la operacion o la logica este mal. Por otro lado la mezcla de tipos de datos tambien provoca este tipo de problemas, inteta usar todas del mismo tipo claro que no es lo aconsejable no.

La solucion de separar la operacion en varias lineas funciona muy bien, el problema es cuando quieres utilizar el assembler generado e introducirlo en otro programa. es un poquitin complicado unir todo el programa para que funciones.

Para la solucion de posmem=(40*(long)y)+((long)x/8);  que indica pikman funciona por que probe para otras operaciones con el KEIL C51, me daba cosas raras en los resultados pero cuando coloque de esa manera se soluciono todo, pero no me dio el mismo resultado en C2C para pic.

Luego la misma solucion la utilice en el GCC para AVR de altmel y funciona.

No se como va para el C30, pues no me meti todavia con ese.

Saludos desde La Paz-Bolivia
German.