- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
定时器模块测试第1页,共16页,星期日,2025年,2月5日定时器模块基本原理1定时器模块主要函数2测试方法3添加代码4第2页,共16页,星期日,2025年,2月5日定时器模块基本原理定时器模块可以用来初始化时间计数器以及获取当前系统时间为协议栈后续流程使用。在这里用Timer1作为计数器。它是一个独立的16位的定时/计数器,支撑5条独立捕获/比较通道,每个通道独立使用一个通用I/O口。第3页,共16页,星期日,2025年,2月5日定时器模块主要函数voidSymbolTimerInit(void)符号时间计数器初始化函数:将Timer1设定为128分频,定时器模式为自动重装,从0x0000到0xFFFF。并进行清除中断标志,开中断以及设定初值操作。TICKTickGet(void)获取计数器值,得知当前系统时间。函数返回值为一个结构体包含四个无符号字符型的值b0、b1、b2、b3,得知系统滴答为(b3*oxFF+b2)*0xFFFF+b1b0。第4页,共16页,星期日,2025年,2月5日在Timer1中断标志为1并且Timer1状态寄存器的溢出中断标志为1的条件下,如果Timer1计数器低8位的值小于10,那么将中断的次数加1。(当一处发生在关闭Timer1和读取计数器低8位的值之间时,那么读取的中断次数值不正确,人为修改timerextension1中的值,用计数器低8位的值小于10的方法表示刚刚溢出即读值有误)。第5页,共16页,星期日,2025年,2月5日HAL_ISR_FUNCTION(Timer1Isr,T1_VECTOR),发生中断时调用该函数,用于计算中断的次数。#defineTickGetDiff(a,b)((a.Valb.Val)?(a.Val-b.Val):(0xFFFFFFFF-b.Val+a.Val+1))这个宏定义用来算出前后两次获取时钟滴答之间的时间差。第6页,共16页,星期日,2025年,2月5日#defineSYMBOLS_TO_TICKS(a)(DWORD)(a*MAC_RADIO_TIMER_TICKS_PER_SYMBOL())用于将symbol转变成tick.一个symbol是16um第7页,共16页,星期日,2025年,2月5日测试方法利用TickGetDiff(a,b)函数测出前后两次获取时钟滴答的时间差,然后与100ms进行对比,若小于则继续TickGet(),知道大于为止,若大于则n值减1(n初值为10),直到n减为0红灯亮。应该是一秒的时间,利用时钟滴答计算出具体的系统时间进行比较。第8页,共16页,星期日,2025年,2月5日添加代码hal_symboltime.c下面添加的内容包括//初始化LED灯voidInitLed(void){P1DIR=0x03;//P10,P11为输出;RLED=0;GLED=0;}第9页,共16页,星期日,2025年,2月5日voidSymbolTimerInit(void){//.............................................................InitLed();//将LED灯进行初始化...}第10页,共16页,星期日,2025年,2月5日hal_symboltime.h下面添加的内容包括#defineRLEDP1_0//用灯的亮灭测试时间准不准#defineGLEDP1_1第11页,共16页,星期日,2025年,2月5日main_COORD.c下面添加内容//.................添加。。。。。。。。。。。。TICKtemp1,temp2;//存放TickGet()返回值//...........................................第12页,共16页,星期日,2025年,2月5日
原创力文档


文档评论(0)