OpenEdv-开源电子网

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

迷你版定时器问题

[复制链接]

22

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2015-3-4
在线时间
8 小时
发表于 2015-3-4 15:41:53 | 显示全部楼层 |阅读模式
5金钱
在<第十二章 定时器中断实验>这一节中,我想看看计数器值是什么时候重载的,于是改成向下计数模式.
在中断函数中设置断点,并通过软件菜单peripherals中的timers里边timer 3查看定时器寄存器值.
void TIM3_IRQHandler(void)
{                                       
    if(TIM3->SR&0X0001)//溢出中断//此处设置断点
    {
        LED1=!LED1;                                                                    
    }                   
    TIM3->SR&=~(1<<0);//清除中断标志位         
}

但是发现,TIM3->CNT的值与TIM3->ARR的值有时相差较远.按理说,在中断的时候自动更新计数值,这样CNT的值应该与ARR的值相差不远才对.
求大神指点,谢谢!

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13135
金钱
13135
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-3-4 16:18:08 | 显示全部楼层
定时器3的计数值  与  定时器2的重载值 有什么关系?

另外同一个定时器的CNT与ARR 可以最大相差 ARR
学无止境
回复

使用道具 举报

22

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2015-3-4
在线时间
8 小时
 楼主| 发表于 2015-3-4 16:46:49 | 显示全部楼层
回复【2楼】jermy_z:
---------------------------------
你没看懂我想说啥.
我是想看看计数值是不是在产生中断的时候把重载值更新进去的,然后继续递减至0,再产生中断,如此循环.
如果是这样的话,那么在那设断点,就会看到这两个值相差不大才对.但实际有时相差很大.所以不解.
另:我把代码改成了向下计数模式.
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13135
金钱
13135
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-3-4 16:47:43 | 显示全部楼层
回复【3楼】arcrong:
---------------------------------
不是我没看懂你在说什么  是你没看懂我在说啥吧

或者咱俩互相没看懂
学无止境
回复

使用道具 举报

22

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2015-3-4
在线时间
8 小时
 楼主| 发表于 2015-3-4 16:50:16 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
晕,打错了,都是定时器3
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-4 22:41:24 | 显示全部楼层
建议你用printf,将cnt的值打印出来,同时将定时器的技术频率降低,方便观察。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

22

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2015-3-4
在线时间
8 小时
 楼主| 发表于 2015-3-5 11:47:35 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
在断点处改用打印,效果一样,还是差较多:
CNT = 0x0DAB
CNT = 0x0E1E
CNT = 0x0E92
CNT = 0x0F05
CNT = 0x0F79
CNT = 0x0FEC
CNT = 0x1060
CNT = 0x10D3
CNT = 0x1147
CNT = 0x11BA
CNT = 0x122E
CNT = 0x12A1
CNT = 0x1315
CNT = 0x1388
CNT = 0x13FC
CNT = 0x146F
CNT = 0x14E3
CNT = 0x1556
CNT = 0x15CA
CNT = 0x163D
CNT = 0x16B1
CNT = 0x1724
CNT = 0x1798
CNT = 0x180B
CNT = 0x187F
CNT = 0x18F2
CNT = 0x1966
CNT = 0x19D9
CNT = 0x1A4D
CNT = 0x1AC0
CNT = 0x1B34
CNT = 0x1BA7
CNT = 0x1C1B
CNT = 0x1C8E
CNT = 0x1D02
CNT = 0x1D75
CNT = 0x1DE9
CNT = 0x1E5C
CNT = 0x1ED0
CNT = 0x1F43
CNT = 0x1FB7
CNT = 0x202A
CNT = 0x209E
CNT = 0x2111
CNT = 0x2185
CNT = 0x21F8
CNT = 0x226C
CNT = 0x22DF
CNT = 0x2353
CNT = 0x23C6
CNT = 0x243A
CNT = 0x24AD
CNT = 0x2521
CNT = 0x2594
CNT = 0x2608
CNT = 0x267B
CNT = 0x26EF
CNT = 0x2762
CNT = 0x27D6
CNT = 0x2849
CNT = 0x28BD
CNT = 0x2930
CNT = 0x29A4
CNT = 0x2A17
CNT = 0x2A8B
CNT = 0x2AFE
CNT = 0x2B72
CNT = 0x2BE5
CNT = 0x2C59
CNT = 0x2CCC
CNT = 0x2D40
CNT = 0x2DB3
CNT = 0x2E27
CNT = 0x2E9A
CNT = 0x2F0E
CNT = 0x2F81
CNT = 0x2FF5
CNT = 0x3068
CNT = 0x30DC
CNT = 0x314F
CNT = 0x31C3
CNT = 0x3236
CNT = 0x32AA
CNT = 0x331D
CNT = 0x3391
CNT = 0x3404
CNT = 0x3478
CNT = 0x34EB
CNT = 0x355F
CNT = 0x35D2
CNT = 0x3646
CNT = 0x36B9
CNT = 0x372D
CNT = 0x37A0
CNT = 0x3814
CNT = 0x0046
CNT = 0x00BA
CNT = 0x012D
CNT = 0x01A1
CNT = 0x0214
CNT = 0x0288
CNT = 0x02FB
CNT = 0x036F
CNT = 0x03E2
CNT = 0x0456
CNT = 0x04C9
CNT = 0x053D
CNT = 0x05B0
CNT = 0x0624
CNT = 0x0697
CNT = 0x070B
CNT = 0x077E
CNT = 0x07F2
CNT = 0x0865
CNT = 0x08D9
CNT = 0x094C
CNT = 0x09C0
CNT = 0x0A33
CNT = 0x0AA7
CNT = 0x0B1A
CNT = 0x0B8E
CNT = 0x0C01
CNT = 0x0C75
CNT = 0x0CE8
CNT = 0x0D5C
CNT = 0x0DCF
CNT = 0x0E43
CNT = 0x0EB6
CNT = 0x0F2A
CNT = 0x0F9D
CNT = 0x1011
CNT = 0x1084
CNT = 0x10F8
CNT = 0x116B
CNT = 0x11DF
CNT = 0x1252
CNT = 0x12C6
CNT = 0x1339
CNT = 0x13AD
CNT = 0x1420
CNT = 0x1494
CNT = 0x1507
CNT = 0x157B
CNT = 0x15EE
CNT = 0x1662
CNT = 0x16D5
CNT = 0x1749
CNT = 0x17BC
CNT = 0x1830
CNT = 0x18A3
CNT = 0x1917
CNT = 0x198A
CNT = 0x19FE
CNT = 0x1A71
CNT = 0x1AE5
CNT = 0x1B58
CNT = 0x1BCC
CNT = 0x1C3F
CNT = 0x1CB3
CNT = 0x1D26
CNT = 0x1D9A
CNT = 0x1E0D
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-5 22:51:09 | 显示全部楼层
int main(void)
{    
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,115200);  //串口初始化为115200
delay_init(72);       //延时初始化 
LED_Init();    //初始化与LED连接的硬件接口
  TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数5K次为500ms
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 17:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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