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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1688|回復: 6
打印 上一主題 下一主題
收起左側

求教STC單片機軟件延時問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:483407 發表于 2024-12-12 16:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在使用1602液晶延時函數時,發現了這個STC8F2K6S2,在使用延時函數的時候,修改毫秒、50毫秒、秒這3個函數的循環次數,都可以改變延時的結果,但是對于50微秒這個函數中,將i改為100,50,20,最后的延時都沒有改變!搞不明白這是為什么?
void delay_50us(uchar us50){        //@12.000MHz
        uchar  i;
        i = 198;                  //i=198:STC軟件中查到的12M時鐘數據
        while(us50--)while (--i);
}
void delay_ms(unsigned char ms){
        while(ms--)delay_50us(20);          //100
}
void delay_50ms(uchar i){
        while(i--)delay_ms(50);
}
void delay_s(unsigned char s){
        while(s--)delay_50ms(20);
}


clock.rar

137.18 KB, 下載次數: 0

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:92781 發表于 2024-12-13 10:47 | 只看該作者
重新看了一下,樓下是對的,void delay_50us(uchar us50)的局部變量i在第一次循環到0之后沒有重新賦值,后面相當于都是while(0),直接跳過了
回復

使用道具 舉報

板凳
ID:161164 發表于 2024-12-13 11:47 | 只看該作者
因為i沒有重裝
  1. void delay_50us(uchar us50)         //@12.000MHz
  2. {
  3.         uchar  i;
  4.         while(us50--)
  5.         {
  6.                 i = 198;                  //i=198:STC軟件中查到的12M時鐘數據
  7.                 while (--i);
  8.         }
  9. }
復制代碼

評分

參與人數 1黑幣 +5 收起 理由
jjy1039 + 5 很給力!很認真,我第一次看的時候忽略了,.

查看全部評分

回復

使用道具 舉報

地板
ID:1109793 發表于 2024-12-13 13:14 | 只看該作者
板凳說的對,局部變量只初始化一次,所以只在調用時=198;之后都是0,--i就是255了。在循環內部I = 198;就OK了。
回復

使用道具 舉報

5#
ID:1139662 發表于 2024-12-13 14:58 來自觸屏版 | 只看該作者
1.循環變量初始化位置:在delay_50us函數中,變量i的初始化應該放在內層while循環的內部,以確保每次外層while循環時i都能被重新初始化。如果i只初始化一次,那么不論外層循環執行多少次,i的值都不會改變,導致延時不變。正確的做法是將i = 198;放在內層while循環內部,如下所示: void delay_50us(uchar us50){     //@12.000MHz     uchar  i;     while(us50--){         i = 198; // i=198:STC軟件中查到的12M時鐘數據         while (--i);     } } 這樣
回復

使用道具 舉報

6#
ID:1139664 發表于 2024-12-13 17:08 | 只看該作者
是不是太快了你沒看出來啊
回復

使用道具 舉報

7#
ID:483407 發表于 2024-12-19 11:40 | 只看該作者
論壇里有經驗的高手很多呀,感謝2、3、4、5、6樓的各位。仔細看了一下代碼,確實如各位所說。我還是經驗缺
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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