新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機中時延函數易常范的錯誤

        單片機中時延函數易常范的錯誤

        作者: 時間:2016-11-24 來源:網絡 收藏
        有時候需要長時間的延時時,可以用循環也可以傳一個大點的參數。但是在傳大點的參數時一定要看清楚參數的類型及此類型所能表示的值的范圍。
        如我所編AD轉換程序中,在轉換時間要長達30ms時才能有有效的數據輸出。如果時間過短,則不會起到即時的效果。unsigned char 最大值為255再大就要用循環了。
        下面是原碼:
        #include
        #include
        sbit wr = P3^6;
        sbit rd = P3^7;
        sbit dula = P2^6;
        sbit wela = P2^7;
        unsigned char j,k,aa;
        void delay(unsigned char i) //最大值255
        {
        for(j=i;j>0;j--)
        for(k=125;k>0;k--);
        }
        void main()
        {
        unsigned char a;
        while(1)
        {
        wela = 1; //選通P0的74hc573
        P0 = 0; //選通ADCS
        wr = 0; //起動adc0804,寫入模擬信號
        _nop_();
        wr = 1;
        delay(10);
        // for(a = 20;a>0;a--)
        delay(255); //轉換等待
        rd = 0; //AD讀使能
        }
        }
        【注釋】此代碼在TX-1C中通過


        關鍵詞: 單片機時延函

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 屏东县| 于都县| 岳西县| 凤庆县| 兰考县| 东明县| 古丈县| 水富县| 沙田区| 邵阳县| 楚雄市| 沅江市| 翁源县| 潢川县| 山东省| 慈溪市| 苏尼特右旗| 武宁县| 福清市| 石柱| 龙口市| 通渭县| 镇江市| 炉霍县| 鲜城| 嘉荫县| 巴南区| 那曲县| 鄢陵县| 榆林市| 彭水| 专栏| 寻甸| 高阳县| 静乐县| 安泽县| 尼勒克县| 宣武区| 廊坊市| 云龙县| 耒阳市|