完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 lee_st 于 2016-10-20 16:51 编辑
按项目的要求,在原有的基础上增加了定时器功能 仔细研究Datasheet中关于rtt的部分 见附图,rtt框图 首先实时定时计数器的时钟SCLK是32KHz,先进入一个16位的分频器,每来个一个时钟脉冲,32位的计数器自动加1,同时产生中断,为了使能这个中断,必须设置RTtiNCIEN、ALMIEN等寄存器位。见附图相关的RTT寄存器。 本文只截取部分视图,详细大家可以可以仔细阅读datasheet。见附件 下面解释一下实时定时计数器中的配置函数。 rtt_init(RTT, 32768)这函数设置了分频器分频数,这样产生1Hz的脉冲值,这样每一秒钟产生中断,并且计数器的计数最大值是232秒,这样可以计时超过136年。 NVIC_DisableIRQ(RTT_IRQn); NVIC_ClearPendingIRQ(RTT_IRQn); RTT_IRQn是RTT的中断号,此值为3。这两个函数作用是清除NVIC(嵌入中断向量控制器)中的RTT和待处理的RTT,以前的RTT不对现在的RTT产生干扰。 NVIC_SetPriority(RTT_IRQn, 0); 设置RTT的中断优先级,atsam4s16c中有0~15个优先级,0是最高级。 NVIC_EnableIRQ(RTT_IRQn); 在NVIC中使能RTT。 rtt_enable_interrupt(RTT, RTT_MR_RTTINCIEN); 使能RTT中的MR寄存器中的RTTINCIEN位,定时计数器加1使能。 由此实时定时计数器的初始化配置完成。 在中断函数中, if ((ul_status & RTT_SR_RTTINC) == RTT_SR_RTTINC) { //此处为自己添加代码部分 } 由此我的程序介绍就写完了,下图是我的头文件和主函数。 rtt头文件 #ifndef DRV_RTT_H_ #define DRV_RTT_H_ void configure_rtt(void); void RTT_Handler(void); #endif /* DRV_RTT_H_ */ rtt.c文件 #include "drv_rtt.h" void configure_rtt(void) { uint32_t ul_previous_time; /* Configure RTT for a 1 second tick interrupt */ rtt_init(RTT, 32768); ul_previous_time = rtt_read_timer_value(RTT); while (ul_previous_time == rtt_read_timer_value(RTT)); /* Enable RTT interrupt */ NVIC_DisableIRQ(RTT_IRQn); NVIC_ClearPendingIRQ(RTT_IRQn); NVIC_SetPriority(RTT_IRQn, 0); NVIC_EnableIRQ(RTT_IRQn); rtt_enable_interrupt(RTT, RTT_MR_RTTINCIEN); } void RTT_Handler(void) { uint32_t ul_status; /* Get RTT status */ ul_status = rtt_get_status(RTT); /* Time has changed, toggle led1 */ if ((ul_status & RTT_SR_RTTINC) == RTT_SR_RTTINC) { //自添加部分 } } |
|
相关推荐
|
|
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11793 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 21:16 , Processed in 0.505734 second(s), Total 64, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号