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

標題: 小白求單片機編程思路,怎樣實現定時? [打印本頁]

作者: 芙蓉焊料    時間: 2023-9-19 09:48
標題: 小白求單片機編程思路,怎樣實現定時?
用51單片機業余制作:按鍵加減1-9,代表1-9小時,單只數碼管顯示數字,到設定數字時間后啟動28BYJ-48步進電機輸出一定角度,然后停止3sz再轉動同樣角度,等待下一次定時到,請教怎樣實現呢?求程序思路,萬分感謝!

作者: jeyran    時間: 2023-9-19 17:25
要簡單點的話,直接死等模式去做
作者: jeyran    時間: 2023-9-19 17:36
要簡單點的話,直接死等模式吧:
while(1)
{
  while(m)
  {
     m --;
     delay_10ms();
     if(detect_keyboad())//有動作
     {
        n = get keyboard set();//獲取設定值
        m = n *100;
        break;
      }
      
  }
  motor ctrl//轉動電機
}
作者: 294479435    時間: 2023-9-19 17:43
建議分模塊,按鍵只負責按鍵處理,比如掃描或者中斷,顯示負責顯示,固定刷新率更新顯示,步進電機負責步進電機
作者: xiaoshidai    時間: 2023-9-19 17:47
294479435 發表于 2023-9-19 17:43
建議分模塊,按鍵只負責按鍵處理,比如掃描或者中斷,顯示負責顯示,固定刷新率更新顯示,步進電機負責步進 ...

初學者還是要有分模塊的良好習慣
作者: 大漠落日    時間: 2023-9-19 17:55
直接上定時器,產生50ms中斷,在中斷中累加產生秒中斷標志,當你設定定時后,開始計時,時間到,置位定時到標志,然后,輸出一串脈沖,脈沖數目對應步進電機轉動角度。做后再延時計時3秒,重新輸出脈沖轉動步進電機。
作者: yzwzfyz    時間: 2023-9-20 09:10
多讀單片機原理的書,而后再行行動。這樣靠譜一些。
作者: hero_71    時間: 2023-9-20 10:48
使用定時器T1和T2配置系統時間和定時時間,T1運行到T2的時間時,T2觸發中斷。此時,配置定時器0/1,計數3s的tick數,到了觸發中斷,中斷事件中控制步進電機轉動角度。
作者: 小飛飛呀呀    時間: 2023-10-7 22:45
1.使用延時函數 可以使用STM32提供的延時函數來實現延時功能,延時函數根據CPU時鐘頻率和延時時間計算出延時的時間,在延時期間CPU處于忙等待狀態。  需要注意的是,延時函數會占用過多的CPU資源,并且在延時期間無法執行其他任務。  這種方式是初學者玩的,如果用到實際項目,除了大聰明,我找不到更好的詞夸你。  2.使用定時器和中斷 可以使用STM32內置的定時器和中斷來實現延時功能。  將定時器配置為2小時的定時周期,并啟用定時器中斷。  在中斷處理函數中設置標志位表示延時結束,并執行相應的操作。  需要注意的是,定時器中斷的頻率不能太高,否則會占用過多的系統資源,但中斷頻率也不能太慢,畢竟定時器是稀缺資源,一個定時器可能有很多不同的定時需求。  這個可能是最多人的選擇,畢竟省心、省成本。  3.使用RTC實時時鐘 可以使用STM32內置的RTC實時時鐘模塊來實現延時功能。  將RTC設置為2小時的計時周期,并啟用RTC中斷。  在中斷處理函數中設置標志位表示延時結束,并執行相應的操作。  需要注意的是,RTC的精度相對于定時器較高,但配置和使用上相對復雜。  我一般不會用這種,因為配置比較麻煩,我比較懶。  4.使用外部實時時鐘模塊 可以使用外部的實時時鐘模塊,如DS1302等,來實現延時功能。  將實時時鐘模塊連接到STM32的GPIO口,通過SPI或I2C等總線協議與STM32進行通信,獲取當前時間并計算出延時結束的時間。  需要注意的是,外部實時時鐘模塊的精度和配置相對于RTC更加復雜。  這種方式有點脫褲子放屁的感覺,還會增加硬件成本,不過有些場合確實需要這樣做,比如你看老板不爽,老板又不懂技術的時候。
作者: zyftank    時間: 2023-10-8 09:32
定時可以用定時器實現
作者: 圣博朗西斯    時間: 2023-10-27 13:40
學會用定時器很重要的




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1