定时器怎么实现延时函数

2019-07-27 18:30发布

本人是新手。请各位高手指点一下。我所用的芯片是F28035,然后我想用定时器0做一个延时函数,让程序延时200Ms,但是又不想用到中断。因为直接用循环的delay()函数时间不准确,所以想用定时器来实现一个200ms的延时,但是又不用中断。望各位高手不吝赐教!!谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
hnkf118
2019-07-28 01:24

void sleep (u16_t ms)
{
    u16_t cur_cnt;


    if ( ms != 0 ) {                              // 时间不为0?
        cur_cnt    = CpuMsTicks;                  // 获取当前TICKS数
        while ( (CpuMsTicks - cur_cnt) < ms) {    // 等待时间到来
            _idle_();                             // 休眠
        }
    } else {
        _idle_();                                 // 休眠
    }
}


// 1MS中断
void TX_Handler (void)
{
    CpuMsTicks++;
}

一周热门 更多>