We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
#include <string.h> #include <stdio.h> #include <LPC214x.H> volatile int rc=0; volatile float A0 = 15.2, B0 = 0.152; int tst(const int iprivod,int id0, float iV0) { int iS0, iS2, it0, idx1, idt, iS_m=0x1234, it_m; iS_m = (int)(A0 * A0 /B0); //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //Locals window show here 0x40000468 for iS_m //and 0x000005F0 if next line is commented iS_m = A0 * A0 ; it_m = A0/B0+0.5; id0 = iS_m; if(iV0 < 0.) { it0 = iV0/B0+0.5; } else { iS0 = iV0*iV0/(B0*2.); } if(id0 <= iS0) { if(iprivod > 0) { idx1 = 123; } else idt = 321;//it_m; return 0; } iS2 = (id0 + iS0); if(0x1235 > iS_m) { return iS_m; } return 2; } int main (void) { while(1) { rc= tst(1,1520, 0.); } }
>Do you mean debugger, or Simulator? Well, I mean Simulator (debug with simulator) :-/
Well, now I have take screanshort
foto.rambler.ru/.../keil_bug.png
ft0 should be -0.5, but is shown as 2.001436 in locals window and as "0" in flying window (not shown), it0 should be = (int) -0.5,i.e 0 but is shown in locals as 1073747848 and as zero in flying window.
No interrups are called.