OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3622|回复: 1

无法开关定时器4

[复制链接]

5

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-3-9
在线时间
1 小时
发表于 2015-5-14 08:43:43 | 显示全部楼层 |阅读模式
5金钱

[mw_shl_code=c,true]//定时器4中断服务程序 void TIM4_IRQHandler(u8 T4_OFF) { if(TIM4->SR&0X0001){//溢出中断 // BEEP=!BEEP; LED3=!LED3; } TIM4->SR&=~(1<<0);//清除中断标志 if(T4_OFF==1){ TIM4->CR1&=0<<0; //关闭定时器4 } } //通用定时器4中断初始化 //这里时钟选择为APB1的2倍,而APB1为36M //arr:自动重装值。 //psc:时钟预分频数 //这里使用的是定时器3! void TIM4_Int_Init(void) { RCC->APB1ENR|=1<<2; //TIM4时钟使能 TIM4->ARR=4999; //设定计数器自动重装值//刚好1ms TIM4->SC=7199; //预分频器7200,得到10Khz的计数时钟 TIM4->DIER|=1<<0; //允许更新中断 TIM4->CR1|=0x01; //使能定时器4 MY_NVIC_Init(1,3,TIM4_IRQn,2);//抢占1,子优先级3,组2 }[/mw_shl_code] [mw_shl_code=c,true]请问一下 我想在需要的时候才开启定时器,不要的时候关掉,可是T4_OFF带进去要么处在一直开或者一直关的状态怎么解 TIM4->CR1&=0<<0;    //关闭定时器4 [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

解决了哈 ,原来很简单 自己一直想着在中断服务函数里面开关,其实在主程序里面开关就可以了 就像 [mw_shl_code=c,true]if(adcx<=0x0010){ //短路的情况 0x000a TIM4->CR1|=0x01; //使能定时器4电流故障报警 // disbeep(1000); //开蜂鸣器 // 开启蜂鸣器-故障报警 PA7 } } }else if(adcx>0x0010&&adcx<0x00B4){//零电流的情况 TIM4->CR1&=0< ...
学无止境
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-3-9
在线时间
1 小时
 楼主| 发表于 2015-5-14 08:43:44 | 显示全部楼层
解决了哈 ,原来很简单 自己一直想着在中断服务函数里面开关,其实在主程序里面开关就可以了 就像
[mw_shl_code=c,true]if(adcx<=0x0010){ //短路的情况 0x000a TIM4->CR1|=0x01; //使能定时器4电流故障报警 // disbeep(1000); //开蜂鸣器 // 开启蜂鸣器-故障报警 PA7 } } }else if(adcx>0x0010&&adcx<0x00B4){//零电流的情况 TIM4->CR1&=0<<0; //关闭定时器4 }else if(adcx>0x00B4){ //开路的情况 kailu(1); guzhang(1); TIM4->CR1|=0x01; //使能定时器4电流故障报警 } }[/mw_shl_code]

学无止境
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 14:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表