Desbordamiento de división en KEIL c
int a;
a = 10000/2/25;
Cuando el programa se está ejecutando, a es 200 y no es necesario calcular 10000 /2/25.
De manera similar, 12000000/(32*12*4800) no se calcula cuando el microcontrolador se está ejecutando, sino que lo calcula el compilador en el momento de la compilación. El compilador calcula según el tipo de datos predeterminado. Si su Keil es un microcontrolador 51, calcula según el entero de 16 bits, que es el tipo corto sin signo predeterminado.
Cuando tengas un tipo de punto flotante, debido a que debes agregar un símbolo que obligue al compilador a calcular números de punto flotante, modifícalo de la siguiente manera:
aaa = 12000000.0F/(32 *12*4800 );
Después de agregar una F y escribir el punto decimal, el compilador lo calculará como un número de punto flotante.