ขอทราบวิธีการ Initial Timer2 Interrupt ครับผม

Started by Jimmkung, February 17, 2013, 03:36:27 AM

Previous topic - Next topic

Jimmkung

ผมใช้ STM32F107VCT6 เปิดใช้ TIMER Interrupt ช่อง 1 ได้ไม่มีปัญหาครับ แต่ผมเปิดใช้ TIMER interrupt ช่อง 2 ไม่ได้เลยครับ รบกวนผู้รู้ช่วยแนะนำ Code หน่อยน่ะครับ
ผมใช้ ride7 เขียนครับ


Jimmkung

พอดีไปเจอวิธีการ set Timer2 เลยจะนำมาฝากคนที่ติดปัญหาเดียวกันครับ

//------------------------------ Function TIM2 Configuration -----------------------------------------//
void TIM2_setup()
{
 
RCC->APB1ENR=0x00000001; //Timer2 peripheral clock enable

TIM2->CR1=0X0280;    //0x0281;//Prescalar is 10 ie. tDTS=4*tCK_INT, autoreload enabled

TIM2->PSC=0x0001;    //Prescaler is 1
TIM2->ARR=0x0167;    //Autoreload is 359 at 10us

TIM2->CNT=0x0000;
TIM2->EGR=0x0000; //0x0001;
TIM2->DIER = 0x0001;;                             // enable interrupt
NVIC->ISER[0] |= (1 << (TIM2_IRQChannel & 0x1F)); // enable interrupt
TIM2->CR1|=0X0001;
   
}


//------------------------------ Function TIM2 Update ISR --------------------------------------------//
void TIM2_IRQHandler(void)
{
  x = x+1;                 
  TIM2->SR=0x0000;
  TIM2->CR1|=0X0001;
}

เซตที่ register โดยตรงครับ หวังว่าคงพอจะมีประโยชน์สำหรับคนที่ติดปัญหาเดียวกันน่ะครับผม