定时器中断来作延时函数可行吗

[复制链接]
2174|6
 楼主| juventus9554 发表于 2021-6-2 22:55 | 显示全部楼层 |阅读模式
unsigned int   num_time0;

void delay_TM0(unsigned int x)                  //Time0 定时
{

    OPTION_REGbits.TMR0CS=0;        //定时模式
    OPTION_REGbits.PSA=1;           //不分频
    INTCONbits.T0IF=0;
    INTCONbits.T0IE=1;
    TMR0=0xAA;                     //定时100us
    INTCONbits.GIE=1;
    num_time0=x;   
    while(num_time0);
}

void interrupt ISR(void)
{
    if(INTCONbits.TMR0IF==1)
    {
        TMR0=0xAA;
        INTCONbits.TMR0IF=0;
        num_time0--;
    }
}
dingy 发表于 2021-6-2 22:57 | 显示全部楼层

if( num_time0)
num_time0--;
supernan 发表于 2021-6-2 22:58 | 显示全部楼层
完全可以
yinxiangh 发表于 2021-6-2 23:00 | 显示全部楼层
不超过WDT重置时间就可以
 楼主| juventus9554 发表于 2021-6-2 23:03 | 显示全部楼层
明白了,多谢大家讨论这么多哈
littlelida 发表于 2021-6-17 13:58 | 显示全部楼层
这个。。是做计时?
奔波儿熊 发表于 2021-6-18 13:59 | 显示全部楼层
如果延时的时候不需要做别的任务,这样可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

900

主题

12190

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部