单片机系统的时间

对于非arm的单片机也可以用一个定时器实现类似arm的systick的功能:阻塞式延时。

void timerX_configYsIT(void)

{

  /*设置基准时长*/

     /*定时器禁止,中断使能*/

}

void timerX_HanderYsIT(void)

{

  /*清中断标记*/

     /*重设填充值*/

    /*全局计数变量 volitile syscouts++*/

}

void Delay(unsigned long nms)

{

 unsigned long tmp=nms;

   syscouts =0;

 /*启动定时器*/ 

 do{

      }while(syscouts <tmp);

  /*停止定时器*/

}

缺点:不能嵌套使用,优化措施是设置定时结构体和队列结构,模仿时间片轮结构在每个延时到了之后置位相应标记。

posted on 2017-08-29 17:20  杰瑞鼠  阅读(275)  评论(0编辑  收藏  举报