新手上路
- 积分
- 38
- 金钱
- 38
- 注册时间
- 2016-9-22
- 在线时间
- 7 小时
|
20金钱
[mw_shl_code=applescript,true]void TIM3_IRQHandler(void) //TIM3中断
{
if ((TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)) //检查指定的TIM中断发生与否:TIM 中断源
{
//清除TIMx的中断待处理位:TIM 中断源
TIM_ClearITPendingBit(TIM3, TIM_IT_Update );
TIM_Cmd(TIM3,DISABLE);
OutTime=(7200*(OUT*(1.00-(DUTY/100.00))/10.0)-1);
TIM2_Int_Init(OutTime,10000);
DAC_Cmd(DAC_Channel_1, DISABLE); //失能DAC1
LED_Init();
printf("外循环的高电平结束\r\n");
}
}
//定时器2中断服务程序
void TIM2_IRQHandler(void) //TIM3中断
{
if ((TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)) //检查指定的TIM中断发生与否:TIM 中断源
{
//清除TIMx的中断待处理位:TIM 中断源
TIM_ClearITPendingBit(TIM2, TIM_IT_Update );
TIM_Cmd(TIM2,DISABLE);
OutTime=(7200*(OUT*(DUTY/100.00)/10.0)-1);//例OUT=10,DUTY=50,
TIM3_Int_Init(OutTime,10000);
Dac1_Init();
printf("外循环的低电平结束\r\n");
}
}
[/mw_shl_code]
为何TIM3和TIM2一直没有计数直接跳入中断?是因为向预装载寄存器中写入新值时也会跳入中断吗?那如何在写入新值时不跳入中断,只有在计数完之后才跳入中断呢?还是因为其他的问题。
|
最佳答案
查看完整内容[请看2#楼]
哎,搞定了,有点绕进去了,任务要求其实只要使能和失能定时器就能完成了,没必要全部初始化,不过还是感谢。
|