在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM7S3C44b0看門狗作延時函數(shù)

        ARM7S3C44b0看門狗作延時函數(shù)

        作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
        static int delayLoopCount=400;

        void Delay(int time)
        {
        int i,adjust=0;

        本文引用地址:http://www.biyoush.com/article/201611/322312.htm

        if(time==0)//校準(zhǔn)
        {
        time=200;
        adjust=1;
        delayLoopCount=400;
        rWTCON=((MCLK/1000000-1)<<8)|(2<<3);//MCLK/1M,Watch-dog disable,1/64,interrupt disable,reset disable
        rWTDAT=0xffff;//for first update
        rWTCNT=0xffff;//resolution=64us@any MCLK
        rWTCON=((MCLK/1000000-1)<<8)|(2<<3)|(1<<5); //Watch-dog timer start
        }

        for(;time>0;time--)

        for(i=0;i

        if(adjust==1)
        {
        rWTCON=((MCLK/1000000-1)<<8)|(2<<3);//Watch-dog timer stop
        i=0xffff-rWTCNT;//1count->64us, 200*400 cycle runtime = 64*i us
        delayLoopCount=8000000/(i*64);//200*400:64*i=1*x:100 -> x=80000*100/(64*i)
        }
        }

        初看這個函數(shù)時有問題的,花了很長時間才搞懂,很經(jīng)典的一段程序。

        (1)這個函數(shù)在使用前必須先運(yùn)行一下Delay(0),這個是關(guān)鍵。它主要完成的是delayLoopCount變量的計(jì)算,即100uS的校準(zhǔn)。

        (2)假設(shè)MCLK=66M,

        rWTCON=((MCLK/1000000-1)<<8)|(2<<3);經(jīng)過預(yù)分頻,輸出頻率1M,即1us計(jì)時;時鐘除數(shù)因子=1/64,即看門狗定時器對1M的64分頻計(jì)數(shù), 計(jì)數(shù)一次是64us,每64usWTCON減1。

        (3)for(i=0;i

        (4)用此函數(shù)前,先用Delay(0)校準(zhǔn),一個是兩個for循環(huán)延時。for循環(huán)延時同時,定時器計(jì)數(shù)。

        200*400個循環(huán)對應(yīng)------看門狗計(jì)數(shù)次數(shù)i(i=0xffff-rWTCNT,計(jì)數(shù)一次是64us),延時64*i個us;(200*400)/64i是每個us循環(huán)的個數(shù), 100us對應(yīng)的循環(huán)個數(shù),(200*400)*100/64i;

        delayLoopCount=8000000/(i*64);就是100us的for循環(huán)個數(shù)



        評論


        技術(shù)專區(qū)

        關(guān)閉