定时器模块测试.ppt

定时器模块测试.ppt

ID:48740374

大小:183.00 KB

页数:16页

时间:2020-01-21

定时器模块测试.ppt_第1页
定时器模块测试.ppt_第2页
定时器模块测试.ppt_第3页
定时器模块测试.ppt_第4页
定时器模块测试.ppt_第5页
资源描述:

《定时器模块测试.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、定时器模块测试定时器模块基本原理1定时器模块主要函数2测试方法3添加代码4定时器模块基本原理定时器模块可以用来初始化时间计数器以及获取当前系统时间为协议栈后续流程使用。在这里用Timer1作为计数器。它是一个独立的16位的定时/计数器,支撑5条独立捕获/比较通道,每个通道独立使用一个通用I/O口。定时器模块主要函数voidSymbolTimerInit(void)符号时间计数器初始化函数:将Timer1设定为128分频,定时器模式为自动重装,从0x0000到0xFFFF。并进行清除中断标志,开中断以及设定初值操作。TICKTickGet(void)获取计数

2、器值,得知当前系统时间。函数返回值为一个结构体包含四个无符号字符型的值b0、b1、b2、b3,得知系统滴答为(b3*oxFF+b2)*0xFFFF+b1b0。在Timer1中断标志为1并且Timer1状态寄存器的溢出中断标志为1的条件下,如果Timer1计数器低8位的值小于10,那么将中断的次数加1。(当一处发生在关闭Timer1和读取计数器低8位的值之间时,那么读取的中断次数值不正确,人为修改timerextension1中的值,用计数器低8位的值小于10的方法表示刚刚溢出即读值有误)。HAL_ISR_FUNCTION(Timer1Isr,T1_VECT

3、OR),发生中断时调用该函数,用于计算中断的次数。#defineTickGetDiff(a,b)((a.Val>b.Val)?(a.Val-b.Val):(0xFFFFFFFF-b.Val+a.Val+1))这个宏定义用来算出前后两次获取时钟滴答之间的时间差。#defineSYMBOLS_TO_TICKS(a)(DWORD)(a*MAC_RADIO_TIMER_TICKS_PER_SYMBOL())用于将symbol转变成tick.一个symbol是16um测试方法利用TickGetDiff(a,b)函数测出前后两次获取时钟滴答的时间差,然后与100ms进

4、行对比,若小于则继续TickGet(),知道大于为止,若大于则n值减1(n初值为10),直到n减为0红灯亮。应该是一秒的时间,利用时钟滴答计算出具体的系统时间进行比较。添加代码hal_symboltime.c下面添加的内容包括//初始化LED灯voidInitLed(void){P1DIR=0x03;//P10,P11为输出;RLED=0;GLED=0;}voidSymbolTimerInit(void){//.............................................................InitLed();//将

5、LED灯进行初始化...}hal_symboltime.h下面添加的内容包括#defineRLEDP1_0//用灯的亮灭测试时间准不准#defineGLEDP1_1main_COORD.c下面添加内容//.................添加。。。。。。。。。。。。TICKtemp1,temp2;//存放TickGet()返回值//.........................................../*temp1=TickGet();//每隔一秒亮灭。。。。。。。。。。while(1){//RLED=!RLED;temp2=TickGet

6、();if(TickGetDiff(temp2,temp1)>ONE_SECOND){RLED=!RLED;temp1=TickGet();}//else//GLED=!GLED;}*///用10个100毫秒代替temp1=TickGet();intn=10;while(1){temp2=TickGet();if(TickGetDiff(temp2,temp1)>0x61A8)//0X61A8是100毫秒的长度{n--;temp1=temp2;if(n==0){n=10;RLED=!RLED;}}}temp3=SYMBOLS_TO_TICKS(2);Tha

7、nkYou!That’sall

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。