[学习笔记] AC781x TIMER模块学习笔记

[复制链接]
17047|27
 楼主| RunningX 发表于 2019-7-16 17:28 | 显示全部楼层 |阅读模式
本帖最后由 RunningX 于 2019-7-16 17:28 编辑

简介
TIMER模块是可用于定时发起中断和触发的定时器。


特性

1.定时器能够生成触发脉冲;
2.定时器能够生成中断;
3.可屏蔽中断;
4.每个定时器都具有独立的超时周期;
5.支持最多8 个通道(TIMER0,TIMER1通道为32位计数器,其他6个通道为16位计数器);
6.所有通道均为链( Chain)模式(注意:TIMER0不能链接至任何其他定时器);

寄存器定义
TIMER寄存器.PNG

详细的学习笔记代码,可下载附件,查阅《AC781X TIMER模块应用笔记》,通过配置TIMER_SAMPLE_SELECT来实现
不同功能。



功能1:TIMER0实现10ms计时;TIMER1实现1s计时;TIMER2、TIMER3、TIMER4级联实现1分钟计时;TIMER5、TIMER6、TIMER7级联实现1小时计时。
功能2:TIMER1实现LED以0.5Hz闪烁
功能3:通过TIMER0计算按键的按下时间




timer_sample.rar (125.02 KB, 下载次数: 142)




TechHolder 发表于 2019-7-16 19:43 | 显示全部楼层
棒棒嗒
心口上的朱砂痣 发表于 2019-12-4 16:54 | 显示全部楼层
感谢分享
wisengang 发表于 2021-6-8 14:03 | 显示全部楼层
《AC781X TIMER模块应用笔记》里的《ATC_AC781x_ReferenceManual_CH.pdf》在哪里下载呢
守夜人遇到极昼 发表于 2021-6-8 15:23 | 显示全部楼层
wisengang 发表于 2021-6-8 14:03
《AC781X TIMER模块应用笔记》里的《ATC_AC781x_ReferenceManual_CH.pdf》在哪里下载呢

http://www.autochips.com/jk/MCU1/info_225.aspx?pid=531&typeid=225
单片小菜 发表于 2021-6-8 16:43 | 显示全部楼层
感谢分享笔记
便携手到老 发表于 2021-6-8 17:08 | 显示全部楼层
基础知识确实很重要的,夯实基础。
huquanz711 发表于 2021-6-8 18:55 来自手机 | 显示全部楼层
写的详细,赞一下。
秋风起302418 发表于 2021-8-25 15:52 | 显示全部楼层
请教下各位要怎么开启SysTick_Handler的中断?
 楼主| RunningX 发表于 2021-8-25 17:57 | 显示全部楼层
秋风起302418 发表于 2021-8-25 15:52
请教下各位要怎么开启SysTick_Handler的中断?
  1. __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
  2. {
  3.   if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
  4.   {
  5.     return (1UL);                                                   /* Reload value impossible */
  6.   }

  7.   SysTick->LOAD  = (uint32_t)(ticks - 1UL);                         /* set reload register */
  8.   NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
  9.   SysTick->VAL   = 0UL;                                             /* Load the SysTick Counter Value */
  10.   SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
  11.                    SysTick_CTRL_TICKINT_Msk   |
  12.                    SysTick_CTRL_ENABLE_Msk;                         /* Enable SysTick IRQ and SysTick Timer */
  13.   return (0UL);                                                     /* Function successful */
  14. }


可以参考m3内核的sysTick配置,SysTick_CTRL_TICKINT_Msk就是中断设置位
七毛钱 发表于 2021-9-1 10:43 来自手机 | 显示全部楼层
谢谢分享,笔记很棒
littlelida 发表于 2021-9-1 11:46 | 显示全部楼层
不错啊~感谢
kiwis66 发表于 2021-9-7 16:11 | 显示全部楼层
使能,置中断标志位
海滨消消 发表于 2021-9-8 16:17 来自手机 | 显示全部楼层
好笔记,赞一个
我是强子吖 发表于 2022-7-22 09:39 | 显示全部楼层
为什么使用TIMER2定时器无法定时实现LED2的亮灭呢,而我换成了TIMER1定时器,LED灯就能正常的亮灭呢? 8476262d9ffbc14758.png
永远不停 发表于 2022-7-25 14:34 | 显示全部楼层
我是强子吖 发表于 2022-7-22 09:39
为什么使用TIMER2定时器无法定时实现LED2的亮灭呢,而我换成了TIMER1定时器,LED灯就能正常的亮灭呢? ...


你底下的初始化配置函数,还是写的TIMER1,最后两句。

7242562de3962683b7.png
shjuturt 发表于 2022-7-31 15:52 | 显示全部楼层
马住,收藏起来看
zyj213 发表于 2022-7-31 15:52 | 显示全部楼层
谢谢楼主,很实用
deliahouse887 发表于 2022-9-4 22:09 | 显示全部楼层
定时器是必须要掌握的
sanfuzi 发表于 2022-9-5 14:09 | 显示全部楼层
这个使用滴答定时器了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

223

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部