Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/09/07 10:00
Read: times


 
#142969 - for(;;) anomally
Hello everybody,
during my programming in Raisonance I met with one problem.

BACKGROUND:
After execution following part of function code, program was permanently restarted again and again after some instructions from program's beginning.

PART OF FUNCTION:

...

for(c=0;(c<calib_table_def[calib_table].curves_count)&&(c<CALIB_MAX_CURVES_COUNT); c++) {
for(p=1;(p<calib_points_count[calib_table].curve[c]-1)&&(p<CALIB_MAX_CURVES_POINTS_COUNT-1);p++) {
if (calib_x<calib_tables[calib_table].curve[c].point[p].x ) break;

...

}
}

...

DESCRIPTION:
Function is used to found two points around 'calib_x' in some curves
'calib_x' is input parameter to the function



I rewrite this part of function by following code:

...

for(c=0;c<calib_table_def[CALIB_TABLE_2].curves_count;c++) {
if(c >= CALIB_MAX_CURVES_COUNT) break;
for(p=1;p<calib_points_count[CALIB_TABLE_2].curve[c]-1;p++) {
if(p >= CALIB_MAX_CURVES_POINTS_COUNT-1) break;
if(calib_x < calib_tables[CALIB_TABLE_2].curve[c].point[p].x) break;
}

...

}

...

and everythings is going well without permanently restarting and function has the same effect :)

Have you ever have the same problem? Can someone explain background of this problem? Or did I have mistake in the first function's code?

Thank you at all.

List of 32 messages in thread
TopicAuthorDate
for(;;) anomally            01/01/70 00:00      
   How to post code:            01/01/70 00:00      
   re: for(;;) anomaly            01/01/70 00:00      
      malloc() on 8051?!?            01/01/70 00:00      
         Yes.            01/01/70 00:00      
            Off topic: Mixed 51 and PC mind :)            01/01/70 00:00      
         You are right            01/01/70 00:00      
   Probably this miight be happening            01/01/70 00:00      
      This sounds as a reason but...            01/01/70 00:00      
         asm            01/01/70 00:00      
            I think the same            01/01/70 00:00      
               the asm will maybe help            01/01/70 00:00      
                  Assembler codes            01/01/70 00:00      
                     Michal, you are cheating! :-)            01/01/70 00:00      
                        This was the reason :)            01/01/70 00:00      
                     ... but it's easy to do it in C :-)            01/01/70 00:00      
                        I dont trust to any any any compiler :)            01/01/70 00:00      
            Stack overflow?            01/01/70 00:00      
               I think this will be complicated            01/01/70 00:00      
                  1 of 2 ways            01/01/70 00:00      
                     Thx            01/01/70 00:00      
         The Compiler does not protect you            01/01/70 00:00      
            Like SDCC...            01/01/70 00:00      
               Better?            01/01/70 00:00      
                  option --main-return            01/01/70 00:00      
                     SDCC function startup code            01/01/70 00:00      
                        use a cookie near the end of the stack?            01/01/70 00:00      
                           rock bottom            01/01/70 00:00      
                           Why only 0xF8?            01/01/70 00:00      
                              paranoia!)            01/01/70 00:00      
               also Keil?            01/01/70 00:00      
            I have while(1) loop in main()            01/01/70 00:00      

Back to Subject List