找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1909|回復: 6
打印 上一主題 下一主題
收起左側(cè)

單片機實戰(zhàn)項目中怎樣讓一個燈閃爍3S 求思路

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1043858 發(fā)表于 2022-12-9 15:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目前在做一個電飯煲項目,要選者煮飯按鍵時對應的led燈要閃爍3S,3S后常亮并且進入煮飯模式,目前while主循環(huán)4MS進入一次,怎樣實現(xiàn)這個功能?
定時器是125us進入一起,希望大家給個思路
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2022-12-9 17:53 | 只看該作者
1、定義閃一次:亮0.3s,暗0.2s。需要兩個計時器,分別:LT=0.3s=0.3s/125us=2400;AT=0.2s=0.2s/125us=1600。
2、閃三次。需要一個計時器,TT=3。
3、燈明亮用一個標記:B_LAMP。
現(xiàn)在可以寫程序了:
鍵按下后做下例事件:
1、初化:LT、AT、TT、燈亮,
2、對依序?qū)T、AT、TT中<>0的進行計時,=0的則跳過。
中斷服務程序:
1、LT =0,進入下一步(不在亮燈時間內(nèi))
   LT<>0,做LT-1<>0時:跳過以下各步。(燈亮還未結(jié)束,繼續(xù)計時)
            LT-1 =0時:關(guān)燈B_LAMP=0。(燈亮結(jié)束)跳過以下各步。
2、AT =0,進入下一步(不在暗燈時間內(nèi))
   AT<>0,做AT-1<>0時:跳過以下各步。(燈暗還未結(jié)束,繼續(xù)計時)
            AT-1 =0時:亮燈B_LAMP=1。(燈暗結(jié)束)跳過以下各步。
3、TT =0, 三次全部分過程結(jié)束了,跳出。
   TT<>0,做TT-1,復位LT=2400,AT=1600,亮燈B_LAMP=1(三次未到,繼續(xù)再來)。
回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2022-12-9 20:20 | 只看該作者
見此貼的回復,示例中用到閃爍功能,可以借鑒。
http://www.torrancerestoration.com/bbs/forum.php?mod=viewthread&tid=225635
回復

使用道具 舉報

地板
ID:401564 發(fā)表于 2022-12-9 21:44 | 只看該作者
大哥,你是認真的嗎?
你都接手項目了,閃燈3秒鐘的程序都寫不了,那電飯煲后繼的程序怎么辦?
回復

使用道具 舉報

5#
ID:1043858 發(fā)表于 2022-12-10 08:51 | 只看該作者
Y_G_G 發(fā)表于 2022-12-9 21:44
大哥,你是認真的嗎?
你都接手項目了,閃燈3秒鐘的程序都寫不了,那電飯煲后繼的程序怎么辦?

其他的都搞完了,客戶那邊要加這個閃爍,我現(xiàn)在想的是在4ms主循環(huán)里面放多一個時間函數(shù) 每進入一次主循環(huán)就記錄一次,然后再弄個燈閃爍的子函數(shù)看看,燈閃爍的子函數(shù)里面主要是燈的取反
回復

使用道具 舉報

6#
ID:213173 發(fā)表于 2022-12-10 10:51 | 只看該作者
此函數(shù)放在4ms主循環(huán)中運行
  1. bit LED_make=0;//煮飯按鍵使能位

  2. void LED_flicker()
  3. {
  4.         static unsigned int count=0;//4ms計數(shù)
  5.         static bit flicker=0;//閃爍標志
  6.         static bit sec_3=0;//3秒標志

  7.         if(LED_make)//煮飯使能
  8.         {
  9.                 if((++count>=750) && !sec_3)
  10.                 {
  11.                         sec_3=1;
  12.                         flicker=0;
  13.                 }
  14.                 if(count%25==0)//閃爍周期200ms
  15.                 {
  16.                         flicker=~flicker;
  17.                 }
  18.                 if(!sec_3 && !flicker)
  19.                 {
  20.                         LED=0;//滅
  21.                 }
  22.                 else LED=1;//亮
  23.         }
  24.         else
  25.         {
  26.                 LED=0;//滅
  27.                 count=0;//復位清0
  28.                 flicker=0;//復位清0
  29.                 sec_3=0;//復位清0
  30.         }
  31. }
復制代碼
回復

使用道具 舉報

7#
ID:1043858 發(fā)表于 2022-12-10 14:00 | 只看該作者
wulin 發(fā)表于 2022-12-10 10:51
此函數(shù)放在4ms主循環(huán)中運行

好我試一下,謝謝大神
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

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