打印
[PIC®/AVR®/dsPIC®产品]

定时器中断作延时函数可行不?

[复制链接]
1604|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
y18370990546|  楼主 | 2018-4-3 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 y18370990546 于 2018-4-3 11:25 编辑

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--;
    }
}



沙发
Cjy_JDxy| | 2018-4-3 11:50 | 只看该作者
if( num_time0)
num_time0--;

使用特权

评论回复
评论
y18370990546 2018-4-3 14:34 回复TA
好的 
板凳
ayb_ice| | 2018-4-9 15:43 | 只看该作者
完全可以

使用特权

评论回复
地板
www0903| | 2018-4-12 00:51 | 只看该作者
不超过WDT重置时间就可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

112

帖子

0

粉丝