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

作者: sweetdance (此ID停止使用)   2020-01-05 23:00:18
開發平台(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以上造成重啟,但只希望它執行完第一
次供電後就不再重啟
請問各位高手有沒有什麼方式可以讓它不要再重啟 ?
手機排板有點傷眼 請各位大大海涵
感恩~
作者: dces4212 (flawless)   2020-01-05 23:41:00
多加一個flag(電壓掉到6v以下就set flag)到statement裡,應該有更好的做法,目前只想到這。話說這種工作不是一般都在中斷做嗎?給while跑感覺有點浪費
作者: wargods8402 (維尼X維尼)   2020-01-05 23:43:00
設一個flag?
作者: tomsawyer (安安)   2020-01-06 12:28:00
break啊
作者: hongsiangfu   2020-01-06 12:39:00
設定flag後break出去,等待電池更換or充電事件發生時清除flag,重啟電壓偵測用狀態機整理可能的模式與模式跳躍的條件,會比較清楚
作者: sweetdance (此ID停止使用)   2020-01-06 13:05:00
ok 感謝 問題已經解決謝謝 大大們的熱心幫忙 感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com