u16 g_ulTime3OverCount = 0;//溢出次数计数
void TIM3_IRQHandler(void)
{
u16 usCC3;
u16 usOF3 =0;
u16 itstatus =0;
/* enter interrupt */
//PB0 TIM3-chan3
//read int status
itstatus = TIM3->SR;
TIM_ClearITPendingBit(TIM3, TIM_IT_CC3 | TIM_IT_Update);
//read trigger first
if(itstatus & TIM_IT_Update)
{
g_ulTime3OverCount++;
}
if(itstatus & TIM_IT_CC3)
{
usCC3 = TIM3->CCR3;
usOF3 = g_ulTime3OverCount;
buf_write(&buf_axis1_pwm2, (u8 *)&usCC3,2);//写缓存
buf_write(&buf_axis1_pwm2, (u8 *)&usOF3,2);
}
}
|