Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
定时器
M2354
【NuMaker-M2354试用】定时器——基本定时功能
发布于 2021-12-15 10:46:03 浏览:1049
订阅该版
[tocm] #### 环境介绍 Keil : 版本5.34.0.0 编译器V6 官方SDK版本:Nuvoton.NuMicro_DFP.1.3.12 RT_THREAD -3.15 nano 请在KEil 的Run-Time Environment环境进行下载, 需要自行实现systick定时器的中断定时器功能 最开始自行从零搭建工程发现非常多的警告,使用的是V6的编译器, 而编译警告选项选着问题。当然现在很少需要这样创建工程了,有官方例程可以使用 #### 芯片资源介绍 手上的这个M2354芯片定时器资源十分的丰富,6个32位定时器,每个定时器有 1 个 24 位向上计数器。其中TMR0-TMR3四个功能强大,PWM功能适合电机控制,TMR4-TMR5 PWM简单一些。详细功能参考TRM_M2354_Series_EN_Rev1.01文档 第6章9小节。 #### 例程功能介绍 绿灯在使用操作RT RTOS 一个线程实现绿灯1秒闪烁一次。 实现功能: 定时器1实现100MS中断一次进行LED状态切换,如此循环。 配置步骤 - 确认外设时钟源,以及频率,设置预分频器 - 设置工作模式 - 设置CMP 的初始值 - 配置中断优先级 - 使能中断,TIMERx_CMP与TIMERx_CNT值匹配中断,TIF中断。 - 使能定时器 初始化函数 ``` void TIMER1_Init(void) { CLK_EnableModuleClock(TMR1_MODULE); // /* APBCLK0 */ TIMER_SET_CMP_VALUE(TIMER1,49999); TIMER_SET_PRESCALE_VALUE(TIMER1,191); TIMER_SET_OPMODE(TIMER1,TIMER_PERIODIC_MODE); NVIC_SetPriority (TMR1_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); NVIC_EnableIRQ(TMR1_IRQn); TIMER_EnableInt(TIMER1); TIMER_Start(TIMER1); } ``` 中断处理 ``` void TMR1_IRQHandler(void) { if(TIMER1->INTSTS&1) { TIMER1->INTSTS |= 0x0001; LED_YELLOW ^= 1; } } ``` #### 工作原理: 定时器使用的是周期模式(手册6.9.5.4 Periodic Mode),开启定时器之后CNT寄存器计数,到达CMP的值之后将中断标志位TIF设置位1 ,使能中断之后,发生中断,CNT值变为0,继续向上计时如此回环 中断检测是TIF中断后清除中断标志,后操作LED. 中断时间(ms)计算:(CMP+1)/TMR_CLK(96Mhz) / (预分频值+1) *1000 本例:(49999+1)/96000000/(191+1)*1000= 50000/500000*1000 = 100ms 从示波器可以看的本例中断中期199.73MS 频率5.0068HZ 符合计算结果的。 ![图片1.png](https://oss-club.rt-thread.org/uploads/20211215/80cfa34986af3f5c3b3999b3fa2cb9f3.png.webp) 代码:https://gitee.com/z-day-by-day/nu-maker-m2354
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
wenkit
这家伙很懒,什么也没写!
文章
3
回答
0
被采纳
0
关注TA
发私信
相关文章
1
定时器中要延时,用什么办法?
2
cubemx配置定时器PWM可以输出移到RT_stdio不能输出?
3
对源码中优先级处理和定时器的两个疑问?
4
关于定时器时钟,怎么定时一个1MHz时钟
5
rt_spi_send、rt_spi_recv不能放在定时器里进行使用
6
关闭定时器中断,再开启中断
7
关于在L4潘多拉上定时器TIM3跑hwtimer_sample例程出错的问题
8
rtthread studio里定时器倍频问题
9
rt-thread-studio开发潘多拉的定时器出现问题?
10
多个软件定时器之间会不会冲突
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
3
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部