This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Timer 2

Hello,
I am using timer 0 for generating 20msec interrupts, and Timer 1 as a baud rate generator. Now, I require Timer 2 in my project. So, I had studied the pdf's of Phillips 89C52X2 and started writing code as described below. if I need timer 2 in auto-reload mode in up-counting timer style. I need to toggle test led every 1 sec, which is working fine using Timer 0. But, it is not working if I use Timer 2. I need a solution

Please advise.

##############  PART OF MY PROJECT CODE ###################

unsigned int volatile  time_keeper;

void serialInit(void)
{
        IE = 0;                  /* disable the interrupts */
        RI=0;                   //serial port receiver and trans meter is
        TI=0;

        T2CON = 0x04;
        T2MOD = 0x02;

        TH2 = 0XB8;     //load timer 2 for generating 20 msec delay
        TL2 = 0X00;

        ET2=1;                  //enable timer 2 interrupt

        RCAP2L = 0X00;
        RCAP2H = 0XB8;

        TR2=1;                  //run the timer 2

        EA=1;                   //enable global interrupt flag
}


void onTimerISR(void)interrupt 5 using 1
{

        EA  = 0;
        TR2 = 0;
        TH2 = 0xB8;
        TL2 = 0x00;
        TR2 = 1;


        time_keeper++;  //incrementing the timer on every
                                        //interruptso we can have delay in
                                        // multiples of 20msec
        if(!(time_keeper%50))

        test_led = ~test_led;   // test led toggling every 1 second

        ET2=1;
        EA=1;           //enable Interrupt
}

void main(void)
{
  time_keeper = 0;
  serialInit();
  demonTask();
}

##############  PART OF MY PROJECT CODE ###################

0