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

  • 1 Replies
  • 2180 Views
*

Offline Jimmkung

  • *
  • 12
  • Innovate for Life
    • View Profile
    • http://www.nablatronics.com/
ผมใช้ STM32F107VCT6 เปิดใช้ TIMER Interrupt ช่อง 1 ได้ไม่มีปัญหาครับ แต่ผมเปิดใช้ TIMER interrupt ช่อง 2 ไม่ได้เลยครับ รบกวนผู้รู้ช่วยแนะนำ Code หน่อยน่ะครับ
ผมใช้ ride7 เขียนครับ


*

Offline Jimmkung

  • *
  • 12
  • Innovate for Life
    • View Profile
    • http://www.nablatronics.com/
พอดีไปเจอวิธีการ 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 โดยตรงครับ หวังว่าคงพอจะมีประโยชน์สำหรับคนที่ติดปัญหาเดียวกันน่ะครับผม