*********************************************************************************************************
** Function name: InitSysTick
** Descriptions: 系统节拍定时器初始化
** input parameters: 无
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void InitSysTick(uint32 ulMsTime)
{
STCTRL = (1ul << 0) | (1ul << 1); /* 使能系统节拍定时器并使能中断*/
/*
* (FAHBCLK / 2000000* ulMsTime - 1)为us延时
* (FAHBCLK / 2000* ulMsTime - 1)为ms延时
*/
STRELOAD = FAHBCLK / 2000000 * ulMsTime - 1; /* 定时时间设置 */
zyIsrSet(STI, (unsigned long )SysTickIsr, PRIO_ONE );
}
理论上,如果ulMsTime = 1的话值应该是0.5us,但实际是1us。是什么原因呢?
此帖出自
小平头技术问答
一周热门 更多>