OpenEdv-开源电子网

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

请问如何设置定时器,才能让它不自动重装载值。

[复制链接]

50

主题

124

帖子

0

精华

高级会员

Rank: 4

积分
528
金钱
528
注册时间
2013-6-27
在线时间
79 小时
发表于 2013-7-9 16:46:24 | 显示全部楼层 |阅读模式
我试过把TIM3-〉ARR=arr;去掉。
然后加上TIM3-〉CNT=5000; 
发现,那个LED还在闪,只是闪的慢的好多。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-9 18:17:04 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-9 18:22:57 | 显示全部楼层
你想要什么效果?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

50

主题

124

帖子

0

精华

高级会员

Rank: 4

积分
528
金钱
528
注册时间
2013-6-27
在线时间
79 小时
 楼主| 发表于 2013-7-9 18:57:39 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
比如,我想让LED灯只亮500ms,然后灭掉,不要像例程里那样闪烁。不用delay_ms(),用TIM3来实现。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-9 21:26:14 | 显示全部楼层
这个功能实在蛋疼.
不过也可以实现,TIM3设置为500ms中断一次,在中断里面把定时器关了,后面就不会再进中断了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

1447

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2258
金钱
2258
注册时间
2010-12-16
在线时间
206 小时
发表于 2013-7-9 22:46:55 | 显示全部楼层
TIMx->CR1.OPM
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

50

主题

124

帖子

0

精华

高级会员

Rank: 4

积分
528
金钱
528
注册时间
2013-6-27
在线时间
79 小时
 楼主| 发表于 2013-7-10 08:53:04 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
我在中断中添加了TIM3->DIER&=~(1<<0);结果灯从上电就一直亮;把这句话放在if语句里面,结果还是一样的。关定时器不是用这一句吗?
led.c里面
     GPIOA->CRH&=0XFFFFFFF0; 
    GPIOA->CRH|=0X00000003;//PA8 推挽输出    
    GPIOA->ODR|=1<<8;      //PA8 输出高
 
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
GPIOD->ODR|=1<<2;      //PD.2输出高 
表示的LED上电应该是灭的,那么是不是说一上电没延时就进入中断了呢?
//定时器3中断服务程序  
void TIM3_IRQHandler(void)
{              
if(TIM3->SR&0X0001)//溢出中断
{
LED1=!LED1;                    
}    
TIM3->SR&=~(1<<0);//清除中断标志位     
TIM3->DIER&=~(1<<0);   
}
//通用定时器中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void Timerx_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1;//TIM3时钟使能    
  TIM3->ARR=arr;  //设定计数器自动重装值//刚好1ms    
TIM3->SC=psc;  //预分频器7200,得到10Khz的计数时钟
//这两个东东要同时设置才可以使用中断
TIM3->DIER|=1<<0;   //允许更新中断
// TIM3->DIER|=1<<6;   //允许触发中断    
TIM3->CR1|=0x01;    //使能定时器3
   MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2  
}
回复 支持 反对

使用道具 举报

50

主题

124

帖子

0

精华

高级会员

Rank: 4

积分
528
金钱
528
注册时间
2013-6-27
在线时间
79 小时
 楼主| 发表于 2013-7-10 09:01:13 | 显示全部楼层
回复【6楼】shihantu:
---------------------------------
我在定时器初始化里加了TIM3->CR1|=1<<3; 结果灯从上电就一直亮。
void Timerx_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1;//TIM3时钟使能  
TIM3->CR1|=1<<3;  
  TIM3->ARR=arr;  //设定计数器自动重装值//刚好1ms    
TIM3->SC=psc;  //预分频器7200,得到10Khz的计数时钟
//这两个东东要同时设置才可以使用中断
TIM3->DIER|=1<<0;   //允许更新中断
// TIM3->DIER|=1<<6;   //允许触发中断    
TIM3->CR1|=0x01;    //使能定时器3
   MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2  
}
回复 支持 反对

使用道具 举报

50

主题

124

帖子

0

精华

高级会员

Rank: 4

积分
528
金钱
528
注册时间
2013-6-27
在线时间
79 小时
 楼主| 发表于 2013-7-10 16:58:45 | 显示全部楼层
原子哥呢,求帮忙
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-10 21:07:11 | 显示全部楼层
回复【9楼】szn1423:
---------------------------------
仿真调试,慢慢研究下吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-3-1
在线时间
6 小时
发表于 2013-7-22 11:31:07 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
为什么我把计数器的方向改为向下计数,灯闪烁的频率不变啊?还有计数器初值是从0000开始计数的吗?它是怎样和自动重装值联系起来的,麻烦原子哥解答一下,谢谢!
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-3-1
在线时间
6 小时
发表于 2013-7-22 11:39:22 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
我已经懂了,嘿嘿!
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-7-23 09:17:28 | 显示全部楼层
关闭中断就不闪了
1-1
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-16 18:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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