完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
由于所有使用Cortex-M内核的芯片都带有SysTick,并且在这些芯片中,SysTick的处理方式(寄存器映射地址及作用)都是相同的,若使用SysTick产生时间“滴答”,可以简化嵌入式软件在Cortex-M内核芯片间的移植。故,对SysTick的定义在SDK/CMSIS/core-cm7.h中。该定时器被捆绑在NVIC(嵌套向量中断控制器)中。
Systick定时器模块中有4个32位寄存器,分别为:控制及状态寄存器、重载寄存器、计数器、校准寄存器。 控制及状态寄存器:配置功能及状态标志 重载寄存器:低24位有效,计数器到0,用该寄存器的值重载 计数器:低24位有效,计数器当前值,减1计数 校准寄存器:针对不同MCU,校准恒定中断频率。KL25未用。 一、控制及状态寄存器 COUNTFLAG(溢出标志位):计数器减1到0,则该位为1;读取该位清零 CLKSOURCE(时钟源选择位):=0,外部时钟(KL25选此项,为内核时钟/16);=1,内核时钟 TICKINT(中断使能控制位):=0,禁止中断;=1,允许中断(计数器到0时,中断) ENABLE(SysTick模块使能位):Systick模块使能位,=0,关闭;=1,使能 二、计数器及重载寄存器 Systick模块的计数器保存当前值,这个寄存器是由芯片硬件自行维护的,用户无须干预,系统可通过读取该寄存器的值得到更精细的时间表示。 Systick模块的重载寄存器低24位有效,其值是计数器的处值及重载值。 Systick模块内的计数器是一个24位计数器,减1计数。初始化时,选择时钟源(决定了计数频率)、设置重载计数器、设置优先级、允许中断(计数器的初值为重载寄存器中的值)、使能该模块。计数器减1计数,计数到0时,Systick控制及状态寄存器的溢出标志位被置1,产生中断请求,同时,计数器自动重载初值并继续减1计数。 三、校准寄存器(用的不多) NOREF:=1没有外部参考时钟(STCLK不可用);=0外部参考时钟可用 SKEW:=1校准值不是准确的10ms;=0校准值是准确的10ms TENMS:10ms 的时间内倒计数的格数。若该值读 回零,则表示无法使用校准功能 M0+内核优先级设置寄存器: 编写Systick模块初始化程序还需用到M0+内核优先级设置寄存器(SHPR3),用于设定Systick模块中断的优先级。该寄存器位于系统控制块SCB中。在ARM Cortex-M0+中,只有Systick、SVC(系统服务调用)和PendSV(可挂起系统调用)等内部异常可以设置其中断优先级,其他内核异常的优先级是固定的。SVC的优先级在SHPR2寄存器中设置,Systick和PendSV优先级在SHPR3寄存器中设置。 |
|
|
|
只有小组成员才能发言,加入小组>>
3909个成员聚集在这个小组
加入小组3123 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4096 浏览 1 评论
4093 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-30 09:24 , Processed in 0.732565 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191