[問題] 請益如何避免While迴圈中重啟問題

看板C_and_CPP作者 (此ID停止使用)時間4年前 (2020/01/05 23:00), 編輯推噓3(308)
留言11則, 5人參與, 4年前最新討論串1/1
開發平台(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

01/05 23:41, 4年前 , 1F
多加一個flag(電壓掉到6v以下就set flag)到statement裡
01/05 23:41, 1F

01/05 23:41, 4年前 , 2F
,應該有更好的做法,目前只想到這。話說這種工作不是
01/05 23:41, 2F

01/05 23:41, 4年前 , 3F
一般都在中斷做嗎?給while跑感覺有點浪費
01/05 23:41, 3F

01/05 23:43, 4年前 , 4F
設一個flag?
01/05 23:43, 4F

01/06 12:28, 4年前 , 5F
break啊
01/06 12:28, 5F

01/06 12:39, 4年前 , 6F
設定flag後break出去,等待電池更換or充電事件發生
01/06 12:39, 6F

01/06 12:39, 4年前 , 7F
時清除flag,重啟電壓偵測
01/06 12:39, 7F

01/06 12:41, 4年前 , 8F
用狀態機整理可能的模式與模式跳躍的條件,會比較清
01/06 12:41, 8F

01/06 12:41, 4年前 , 9F
01/06 12:41, 9F

01/06 13:05, 4年前 , 10F
ok 感謝 問題已經解決
01/06 13:05, 10F

01/06 13:06, 4年前 , 11F
謝謝 大大們的熱心幫忙 感恩
01/06 13:06, 11F
文章代碼(AID): #1U4Ve4aV (C_and_CPP)