久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

while(1)循環是不是很慢

  [復制鏈接]
跳轉到指定樓層
樓主
ID:1144680 發表于 2025-5-31 21:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
DS1302時鐘,在while(1)里有兩個"if"檢測按鍵,沒有按鍵時用switch/case顯示時鐘,結果發現時鐘不同步,秒進位時,有時候“小時”或“分鐘”會延遲1秒左右,這是while循環有延遲嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:712493 發表于 2025-5-31 21:46 | 只看該作者
肯定不是,while(1)只是大循環而已!
回復

使用道具 舉報

板凳
ID:584814 發表于 2025-5-31 22:33 | 只看該作者
可能是防抖功能的設計問題
回復

使用道具 舉報

地板
ID:619259 發表于 2025-5-31 23:38 | 只看該作者
時間有延時與while(1)無關,秒溢出,分+1延時,應該是你的1302讀寫函數有延時了。
回復

使用道具 舉報

5#
ID:624769 發表于 2025-5-31 23:54 | 只看該作者
是你讀DS1302代碼的問題
回復

使用道具 舉報

6#
ID:1128898 發表于 2025-6-1 06:15 | 只看該作者
延遲對的,信號并不是時時的,關鍵看處理什么控制什么,又不是f16
回復

使用道具 舉報

7#
ID:1109793 發表于 2025-6-1 07:51 | 只看該作者
是一個循環,慢不慢,看你代碼啊
回復

使用道具 舉報

8#
ID:1144680 發表于 2025-6-1 13:45 | 只看該作者
xiaobendan001 發表于 2025-6-1 07:51
是一個循環,慢不慢,看你代碼啊

幫忙看看,謝謝!

  1.         while (1)      
  2. {       
  3.       if (TM1639_KEY_B1==1)
  4. {
  5.     _nop_();
  6.     while(TM1639_KEY_B1==1);//按住不放
  7.     _nop_();
  8.         SetSelect++;//松手后
  9.        
  10.                                 if(SetSelect>=7){SetSelect=0;DS1302_GengxinTime();}        //更新時間                       
  11.                                
  12. //                                        LED_OF[TimeWei-1]=0xff;        //離開該位顯示,防止正好熄滅       
  13.                                 LED_OF[0]=0xff;
  14.                                 LED_OF[1]=0xff;                                
  15.                                 LED_OF[3]=0xff;        
  16.                                 LED_OF[4]=0xff;
  17.                                 LED_OF[6]=0xff;                                
  18.                                 LED_OF[7]=0xff;                                        
  19. }
  20.                         switch(SetSelect)
  21.                         {
  22.                                 case 0:        TimeShow(); break;        //讀取并顯示時間
  23.                                 case 1:        TimeWei=0;        break;        //10時               
  24.                                 case 2:        TimeWei=1;        break;        // 時               
  25.                                 case 3:        TimeWei=3;        break;                //10分       
  26.                                 case 4: TimeWei=4;        break;                //分       
  27.                                 case 5:        TimeWei=6;        break;        //10秒                       
  28.                                 case 6: TimeWei=7;        break;        //秒       
  29.                         }
  30.                
  31. if (TM1639_KEY_B2==1)
  32.         {
  33.     _nop_();
  34.     while(TM1639_KEY_B2==1);//按住不放
  35.     _nop_();
  36.                
  37.     Shezhi();        //設置時間
  38.         }       
  39.                
  40. }
復制代碼



回復

使用道具 舉報

9#
ID:1144680 發表于 2025-6-1 13:47 | 只看該作者
  1. void TimeShow()
  2. {
  3.      DS1302_ReadTime();//讀取時間
  4.           LED_BCD[0] =DS1302_Time[0];                  //最高位,10時               
  5.           LED_BCD[1] =DS1302_Time[1];         

  6.           LED_BCD[3] =DS1302_Time[3];                        
  7.           LED_BCD[4] =DS1302_Time[4];                       

復制代碼


顯示時間代碼
回復

使用道具 舉報

10#
ID:1144680 發表于 2025-6-1 13:49 | 只看該作者
man1234567 發表于 2025-5-31 22:33
可能是防抖功能的設計問題

是有兩個延遲,不過是按鍵按下后才起作用。
回復

使用道具 舉報

11#
ID:1144680 發表于 2025-6-1 13:50 | 只看該作者
cy009 發表于 2025-5-31 23:38
時間有延時與while(1)無關,秒溢出,分+1延時,應該是你的1302讀寫函數有延時了。

有點頭暈,下面有代碼,能不能幫忙看看。。。
回復

使用道具 舉報

12#
ID:1144680 發表于 2025-6-1 13:51 | 只看該作者
188610329 發表于 2025-5-31 23:54
是你讀DS1302代碼的問題

一開始沒問題,后來加了按鍵檢測后出現的,不知道哪個環節出的。
回復

使用道具 舉報

13#
ID:1152291 發表于 2025-6-1 16:53 | 只看該作者
dcc60 發表于 2025-6-1 13:51
一開始沒問題,后來加了按鍵檢測后出現的,不知道哪個環節出的。

其實加了按鍵檢測是不太靈敏的,首先按鍵檢測是是基于一個模塊的,但是你如果添加了多個模塊的話,按鍵檢測到底是應用于誰了,所以基于按鍵檢測模塊的書寫,一般是只能需求一個模塊的,多個模塊添加進來,是會使軟件整混的,應用于仿真和實物都是不太靈敏的。
回復

使用道具 舉報

14#
ID:1133081 發表于 2025-6-1 17:31 | 只看該作者
dcc60 發表于 2025-6-1 13:51
一開始沒問題,后來加了按鍵檢測后出現的,不知道哪個環節出的。

TM1639讀到的鍵值是1個字節,并不是位信號0/1。沒有看到相關代碼,無法判斷與你所說的延遲1秒是否有關。
回復

使用道具 舉報

15#
ID:1152365 發表于 2025-6-1 17:40 | 只看該作者
肯定不是,while(1)只是大循環而已
回復

使用道具 舉報

16#
ID:1144680 發表于 2025-6-1 18:15 | 只看該作者
WL0123 發表于 2025-6-1 17:31
TM1639讀到的鍵值是1個字節,并不是位信號0/1。沒有看到相關代碼,無法判斷與你所說的延遲1秒是否有關。

估計是我搞錯了。
下次把按鍵改為單片機引腳。
回復

使用道具 舉報

17#
ID:1144680 發表于 2025-6-1 18:17 | 只看該作者
單片機重購 發表于 2025-6-1 16:53
其實加了按鍵檢測是不太靈敏的,首先按鍵檢測是是基于一個模塊的,但是你如果添加了多個模塊的話,按鍵檢 ...

太復雜了。
謝謝支持,再研究研究。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情精品久久久久 | 在线视频第一页 | 国产一区二区在线视频 | 日本又色又爽又黄的大片 | 国产1区2区3区 | 99久久婷婷国产精品综合 | 91视频网址 | 激情五月激情综合网 | 操久久久| 日韩亚洲一区二区 | 日韩视频一区二区三区 | 精品欧美乱码久久久久久1区2区 | 亚洲人精品午夜 | 成人影院免费视频 | 亚洲日韩中文字幕一区 | 国产乱码精品一区二区三区中文 | 久色视频在线观看 | 国产一级特黄aaa大片评分 | 黄色三级毛片 | 日韩黄色小视频 | 日韩二三区 | 中文字幕成人av | 97久久精品午夜一区二区 | 一区二区在线 | 欧美99久久精品乱码影视 | 欧美精品一区二区三区在线播放 | 日韩精品在线观看免费 | 久久精品欧美一区二区三区麻豆 | 欧美日韩在线精品 | 欧美精品一区二区三区在线 | 欧美在线色 | 国产一区二区影院 | 黄视频国产 | 久久久久成人精品 | a级性视频 | 精品国产一二三区 | 日韩视频一区在线观看 | 爱爱免费视频 | 亚洲精品久久久久中文字幕二区 | 国产日韩精品在线 | 欧美成人精品一区二区三区 |