作者sweetdance (此ID停止使用)
看板C_and_CPP
標題[問題] 請益如何避免While迴圈中重啟問題
時間Sun Jan 5 23:00:18 2020
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
keil / mcu ST
問題(Question):While迴圈中重啟問題
迴圈中做if else if
電壓判別(adc)給出相對輸出值
當電壓大於7V開始做輸出,電壓低於6V關閉輸出,並且再電壓值回升到7V以上也不再輸出
以下簡述
While
if A點 high 外部供電
if A點 low 而且電池大於7V由電池供電做輸出
else if 電池電壓小於6V關閉輸出
由於電池特性問題,切斷後 電池電壓會回升到7V以上造成重啟,但只希望它執行完第一
次供電後就不再重啟
請問各位高手有沒有什麼方式可以讓它不要再重啟 ?
手機排板有點傷眼 請各位大大海涵
感恩~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.184.95 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1578236420.A.91F.html
推 dces4212: 多加一個flag(電壓掉到6v以下就set flag)到statement裡 01/05 23:41
→ dces4212: ,應該有更好的做法,目前只想到這。話說這種工作不是 01/05 23:41
→ dces4212: 一般都在中斷做嗎?給while跑感覺有點浪費 01/05 23:41
推 wargods8402: 設一個flag? 01/05 23:43
→ tomsawyer: break啊 01/06 12:28
推 hongsiangfu: 設定flag後break出去,等待電池更換or充電事件發生 01/06 12:39
→ hongsiangfu: 時清除flag,重啟電壓偵測 01/06 12:39
→ hongsiangfu: 用狀態機整理可能的模式與模式跳躍的條件,會比較清 01/06 12:41
→ hongsiangfu: 楚 01/06 12:41
→ sweetdance: ok 感謝 問題已經解決 01/06 13:05
→ sweetdance: 謝謝 大大們的熱心幫忙 感恩 01/06 13:06