您的位置 首页 IC

怎么选用SysTick来做定时器

如何采用SysTick来做定时器-1 硬件电路配置

这里还是借用前面LED电路我就不贴图片。

2 时钟说明

SysTick和HCK的时钟频率是一样的库函数代码如下

/**

*@briefInitializeandstarttheSysTickcounteranditsinterrupt.

*

*@paramticksnumberofticksbetweentwointerrupts

*@return1=failed,0=successful

*

*Initialisethesystemticktimeranditsinterruptandstartthe

*systemticktimer/counterinfreerunningmodetogenerate

*periodicalinterrupts.

1 硬件电路装备

这儿仍是借用前面LED电路我就不贴图片。

2 时钟阐明

SysTIck和HCK的时钟频率是相同的库函数代码如下

/**

*@briefIniTIalizeandstarttheSysTIckcounteranditsinterrupt.

*

*@paramTIcksnumberofticksbetweentwointerrupts

*@return1=failed,0=successful

*

*Initialisethesystemticktimeranditsinterruptandstartthe

*systemticktimer/counterinfreerunningmodetogenerate

*periodicalinterrupts.

*/

static__INLINEuint32_tSysTick_Config(uint32_tticks)

{

 

if(ticks》SysTick_LOAD_RELOAD_Msk)return(1);/*Reloadvalueimpossible*/

SysTick-》LOAD=(ticks&SysTick_LOAD_RELOAD_Msk)-1;/*setreloadregister*/

NVIC_SetPriority(SysTick_IRQn,(1《《__NVIC_PRIO_BITS)-1);/*setPriorityforCortex-M0SystemInterrupts*/

SysTick-》VAL=0;/*LoadtheSysTickCounterValue*/

SysTick-》CTRL=SysTick_CTRL_CLKSOURCE_Msk|

SysTick_CTRL_TICKINT_Msk|

SysTick_CTRL_ENABLE_Msk;/*EnableSysTickIRQandSysTickTimer*/

return(0);/*Functionsuccessful*/

}

由库函数可知道没有进行分频动作所以时钟和主时钟相同

装备时钟中止的时刻距离

voidSysTick_Init(void)

{

/*SystemFrequency/10001ms中止一次

*SystemFrequency/10000010us中止一次

*SystemFrequency/10000001us中止一次

*/

//if(SysTick_Config(SystemFrequency/100000))//ST3.0.0库版别

if(SysTick_Config(SystemCoreClock/1000))//ST3.5.0库版别

{

/*Captureerror*/

while(1);

}

//我需求不断的敞开中止所以这句话屏蔽起来

//SysTick-》CTRL&=~SysTick_CTRL_ENABLE_Msk;

}

用中止形式所以需求在中止文件中做守时标志。一下这个函数在中止文件中

/**

*@briefThisfunctionhandlesSysTickHandler.

*@paramNone

*@retval:None

*/

voidSysTick_Handler(void)

{

TimingDelay_Decrement();

}

中止函数在调用一个计数函数,计数函数应该放在外面一个公共文件中便利各个文件中数据传递。

/*

*函数名:TimingDelay_Decrement

*描绘获取节拍程序

*输入无

*输出无

*调用在SysTick中止函数SysTick_Handler()调用

*/

voidTimingDelay_Decrement(void)

{

if(TimingDelay!=0x00)

{

TimingDelay–;

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/346183.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部