Wednesday, January 05, 2005

開 Turbo

今日開始進入狀能,
開行 Turbo 寫 Firmware。
Auto Power Off 攪掂,
LED Display 攪掂,
(遲 d 轉 LCD)
但係 Debouncing 度中伏。
簡單講咩叫 Bouncing 先,
就係當你按一個 Switch 時,
電流導通的瞬間,
1/0 個 State 係唔穩定,
會係 1 和 0 之間來回彈跳。
解決方法其實好簡單,
就係 loop 住例如 10ms 咁,
先做下一步。
但係問題係我個 Switch 係駁住 Interupt,
一按就要熄機,
再按就要開返機。
而個 Processor 係唔支援 Interupt 插叫 Interupt,
即係話當 loop 緊既時候,
成部機係 Hold 晒係度。


可能你會問,
點解唔直接駁個 Toggle Switch 去電源,
按一下通電,
再按就斷電。
但係我個 Device 要支援 Auto Power Off,
老闆仲想唔係 Hardware 做,
而係夠 Firmware 做 Auto Power Off。
結果就要咁駁法。

我馬死落地行,
照在 Interupt 中 loop,
以為 10ms 應該唔會好察覺。
但係效果唔係好理想,
一時開唔到機,
一時熄唔到機。

另一個問題係,
因為同一個 Switch 做 On/Off,
如果我按實個 Switch,
部機就會不斷又開又熄。
個 Switches 既 Problems 攪左我成日,
攪到 8 點 8 個字先收得工,
做埋揸匙人鎖門,
仲要未 De 晒 bug,
激死我…

No comments: