《实验四 SysTick实验.pdf》由会员分享,可在线阅读,更多相关《实验四 SysTick实验.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、辽宁工程技术大学上机实验报告实验名称院系姓名实验目的实验准备实验进度成绩SysTickSysTick 实验实验软件学院专业学号软件工程班级日期1、了解SysTick 定时器的意义与作用2、掌握 SysTick 定时器的使用方法PC机一台模块化单片机数学科研平台一个本次共有1个练习,完成1个。1、实验内容利用 STM32 内部 RTC 时钟,实时刷新当前系统年月日时分秒的信息,并通过单片机显示。2、实验原理实时时钟(RTC)是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。在以前,操作系统还有实验内容所
2、有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。例如,操作系统可以为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器, 以维持操作系统 “心跳” 的节律。 Cortex-M3处理器内部包含了一个简单的定时器。因为所有的CM3 芯片都带有这个定时器,软件在不同CM3 器件间的移植工作就得以化简。该定时器的时钟源可以是内部时钟(FCLK
3、,CM3 上的自由运行时钟) ,或者是外部时钟(CM3处理器上的STCLK 信号) 。不过,STCLK 的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同。因此,需要检视芯片的器件手册来决定选择什么作为时钟源。SysTick 定时器是作为NVIC(嵌套向量中断控制器)的一部分实现的。 可以为系统提供一个 “时基” (用于切换任务) , 同时, SysTick 的精确计时,也可以用来作为延时。对于延时时间要求严格的场合,SysTick 的意义是相当大的。嵌套中断处理示意图如图一所示。图一 嵌套中断处理示意图3.程序流程图图二 RTC 时钟实验程序流程图4.关键代码(1)中断嵌
4、套关键代码:void SysTick_Handler(void)extern uint32_t Tcount;extern uint8_t Sec_count;if(Tcount1000)Tcount+;else if(Tcount =1000)Tcount=0;Sec_count+;elseTcount=0;(2)时间进位关系主要代码如下:if(Sec_count=60)Sec_count=0;Min_count+;if(Min_count=60)Min_count=0;H_count+;if(H_count=24)H_count=0;Day_count+;if(Mon_count=1)|(
5、Mon_count=3)|(Mon_count=5)|(Mon_count=7)|(Mon_count=8)|(Mon_count=10)|(Mon_count=12)&(Day_count=32)Day_count=1;Mon_count+;if(Mon_count=13)Mon_count=1;if(YearL_count=99)。YearL_count=0;YearH_count+;Year_count=YearH_count*100+YearL_count;elseYearL_count+;Year_count=YearH_count*100+YearL_count;elseif(Mo
6、n_count=4)|(Mon_count=6)|(Mon_count=5)|(Mon_count=9)|(Mon_count=11)&(Day_count=31)Day_count=1;Mon_count+;else if(Mon_count=2)&(Day_count=29)&(Year_count%4)Day_count=1;Mon_count+;else if(Mon_count=2)&(Day_count=30)&(!(Year_count%4)Day_count=1;Mon_count+;5.连线关系图三连线关系6.实验现象将 J-Link 插头插入到 STM32 板的下载座 J4,依次打开实验箱、母板和 STM32 板的电源。 配置之后且编译成功无错误了就可以将程序编译生成的.hex 文件下载到 STM32 板,并观察实验现象。如图四,图五所示2017-10-31/23: 59图四 2017-10-31/23:59 59 秒2017-11-01/00: 00图五 2017-11-01/00:00 00 秒