欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3117|回復: 4
收起左側

用單片機定時器0編寫一個可以調用的延時函數怎么寫?

[復制鏈接]
ID:72649 發表于 2020-11-6 12:52 | 顯示全部樓層 |閱讀模式
用定時器0編寫一個可以調用的延時函數怎么寫?比如1s的延時函數,要用的時候輸入參數延時10s。
回復

使用道具 舉報

ID:311846 發表于 2020-11-6 16:34 | 顯示全部樓層
定義一個全局變量,在定時器計數,比如定時器10ms計數一次,那么1S的話則計數100次,那么延時函數while(1){判斷計數變量是否大于等于100,是的話break跳出死循環;}
回復

使用道具 舉報

ID:451718 發表于 2020-11-6 18:36 | 顯示全部樓層
unsigned long SysTick;

void Timer0Init(void)                //1毫秒@18.432MHz
{
        AUXR |= 0x80;                //定時器時鐘1T模式
        TMOD &= 0xF0;                //設置定時器模式
        TL0 = 0x00;                //設置定時初值
        TH0 = 0xB8;                //設置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
}

timer0() interrupt 1
{
        SysTick++;       
}

void Delay(unsigned long var)
{
    unsigned long i;
       
        i = SysTick;

        while(SysTick-i < var)
        {
       ;
        }   
}
回復

使用道具 舉報

ID:548551 發表于 2020-11-7 13:55 | 顯示全部樓層
你都知道用定時器了還為什么要用延時?
回復

使用道具 舉報

ID:72649 發表于 2020-11-7 21:35 | 顯示全部樓層
robinsonlin 發表于 2020-11-6 18:36
unsigned long SysTick;

void Timer0Init(void)                //1毫秒@18.432MHz

謝謝樓主
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表