problema en C18 (divisiones)

Buenas, pues estoy migrando unos proyectos a C18 (anteriormente usaba mikroC), el problema es que haciendo unas pruebas me ocurre una cosa bastante rara.

Al hacer una division de un long/long no me la hace o se me queda bloqueado en un loop infinito, estube debugeando en el proteus y he visto que se queda haciendo un loop en la operacion fxd3232u y de ahi no sale.

el codigo es tan simple como:

unsigned long tmp;
unsigned int var;


void main(void) {

var=15;
tmp=var*2; (esta se hace bien)
while(1) {
tmp=tmp/3; //aqui se queda blokeado
}

}

he probado a usar 3 variables, tmp=tmp2/tmp3 (todos ulong metiendole los valores), he probado a dividir entre uint y no se bloquea pero no hace la division, osea si en la variable hay 3000 pues se queda 3000 no cambia el valor. No se que hacer, me estoy volviendo loco, tambien probe a ponerlo en modo extended y no se bloquea pero sigue sin poner el contenido en la variable...

Alguien sabe que puede pasar?? voy a probar en el portatil que tengo instalado tambien el mplab y c18 por si fuese que estubieran mal las librerias..

Pues nada, he probado en el portatil y hace lo mismo, ni con 3 variables ni nada...
 
Última edición:
Atrás
Arriba