专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

STM32中的tic与toc,用SysTick统计代码段执行时间

作者:刘蕊飞   来源:本站原创   点击数:  更新时间:2014年03月02日   【字体:

STM32中的systick一共有4个寄存器,名称和地址分别是:

SysTick_CTRL,        0xE000E010  --  
控制寄存器
SysTICK_LOAD,     0xE000E014  --  
重载寄存器
SysTick_VAL,        0xE000E018  --  
当前值寄存器
SysTick_CALRB,   0xE000E01C  --   
校准值寄存器

首先看SysTick->CTRL控制寄存器:寄存器内有4个位具有意义




0位:ENABLESystick 使能位  0:关闭Systick功能;1:开启Systick功能)
1位:TICKINTSystick 中断使能位    0:关闭Systick中断;1:开启Systick中断)
2位:CLKSOURCESystick时钟源选择  0:使用HCLK/8 作为Systick时钟;1:使用HCLK作为Systick时钟)
16位:COUNTFLAGSystick计数比较标志,如果在上次读取本寄存器后,SysTick 已经数到了0,则该位为1。如果读取该位,该位将自动清零

SysTick_LOAD  
重载寄存器: 




 

SysTick_VAL
当前值寄存器: 


也是个24位的寄存器,读取时返回当前倒计数的值;写它则使之清零,同时还会清除在SysTick 控制及状态寄存器中的COUNTFLAG 标志。


SysTick_CALRB  
校准值寄存器: 


这个寄存器好像目前的水平我还用不到,大体意思明白点,把英文说明放这吧:
31 NOREF 1=没有外部参考时钟(STCLK 不可用)0=外部参考时钟可用
30 SKEW1=校准值不是准确的1ms 0=校准值是准确的1ms
[23:0] Calibration value
Indicates the calibration value when the SysTick counter runs on HCLK max/8 as external clock. The value is product dependent, please refer to the Product Reference Manual, SysTick Calibration Value section. When HCLK is programmed at the maximum frequency, the SysTick period is 1ms. If calibration information is not known, calculate the calibration value required from the frequency of the processor clock or external clock.

类似matlab里的tic与toc函数,用来统计程序代码执行需要的时间:
uint16_t OverFlowTimes=0;

void tic(void)                            //程序开始计时
{
SysTick->CTRL |= (1<<2);   //时钟选择,HCLK
SysTick->CTRL |= (1<<1);   //中断使能
SysTick->VAL=0X00;            //当前数值寄存器清零,并清除溢出标志位
SysTick->LOAD=0XFFFFFF;     //计数器赋初值
SysTick->CTRL |= (1<<0);     //开启计数器
}

void toc(void)                            //结束计时
{
float ElaspTime;
uint32_t ClkNum;
SysTick->CTRL &= ~(1<<0); //关闭计数器
ClkNum=SysTick->VAL; //读取计数器的值
ElaspTime=(OverFlowTimes*((float)0xffffff/SystemCoreClock)+(float)(0xffffff-ClkNum)/SystemCoreClock); //计算时间
OverFlowTimes=0;
printf("\r\nEscaple time is %f\r\n",ElaspTime);

}
/*溢出的次数*/
void SysTick_Handler(void)
{
OverFlowTimes++;
}


 

关闭窗口

相关文章