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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
04/07/05 16:54
Read: times


 
#91180 - A timing issue
Have been having problems with timing in a code. The variations in the actual achieved timing were quite erratic and wrote a small checkout code. The MCU is P89v51rd2 @ 6Mhz in 6-clk mode. The display is a 16C x 2L LCD.

In the checkout code, I simply toggled a LED and tried to read the On time and Off time. Instead of them being equal at 1000, I get 1000/768 ms and that 768 occurs randomly. Similarly if I load 2000ms , I get 2000/1902 and that 1902 happens randomly.
I get similiar FIXED variation for other delays.

What could be the reason. The checkout code is given. Since for every delay, the variation is fixed, I am suspecting any hardware problem and hence not changed the crystal / MCU.

What else could be wrong ?

//=============================================
// T2 is set for a 1ms interrupt in auto-reload

void timer2_int(void) interrupt 5 using 2
{
  TF2 = 0;
  ++checkCount;            // count of ms
  ++msTick_1 ;             // count of general purpose delay
}  
//=============================================

//Part of Main code for checkout. No other part is active..

 while(1)
   { 
     LedFlash(); 
                   
     // checkCount is the actual delay in ms.

     if (toggle==0)
     sprintf (string, "%s%d","LED OFF:", checkCount );
     else
     sprintf (string, "%s%d","LED ON: ", checkCount );
     display(string);
     checkCount = 0;
   } 
//===============================================

void LedFlash (void)
{
    msDelay(1000);       // Flash Interval 

    DOT_3 = ~DOT_3;      // Change LED state for every call
    toggle = ~toggle;    // Flag to change On/Off message

}

//================================================
//Time delay function. Call with required ms delay

 void msDelay (int DelayVal)
{
  TR2 = 1;
  while ( msTick_1 < DelayVal); // msTick1 inc.by timer2_int
  msTick_1 = 0;
  TR2 = 0;
}
//================================================


Thanks

Raghu



List of 7 messages in thread
TopicAuthorDate
A timing issue            01/01/70 00:00      
   Atomicity?            01/01/70 00:00      
   curious            01/01/70 00:00      
      Synchonocity was the issue            01/01/70 00:00      
      Synchonocity and Atmomicity?            01/01/70 00:00      
         Let me try?            01/01/70 00:00      
            Atomic and Synchronous            01/01/70 00:00      

Back to Subject List