Re: 請問這個要求需要使用到multi-task甚至是RTOS嗎?

作者 Eigen 於 2017年09月12日 22:59:46
我十五年前剛開始時,就是將所有的程式『通通塞在中斷之中』(當時沒人教,將簡單的產品讓我負責,就做成這樣)

以你這種小程式當然可以,我以前做的程式沒沒多複雜,就控制馬達上上下下,加上一些保護

功能簡單當然可以這樣搞,功能複雜時,這種寫法一定gg的

ex: 你 1ms 中斷一次,結果你寫的程式超過 1ms,然後程式就永遠卡在中斷之中或時間算不準~~

所以最後一定是『非常重要的』才在中斷處理,不是很重要的,就set flag ,回到 mail loop 再處理

這樣才能處理很多事~~

led 你要亮 300ms,不是真的delay 300ms ,用delay 的方式,你其它事通通都不用做了

300/4ms = 75,也就是 led=1 led_timer =75,然後在 4ms flag set 的程序之中,led_timer--

當 led_timer=0 時,就表示過了 300ms ,這時就能 led=0

羅輯大概就是這樣(再看不懂我也沒招~~ 讓其它人來吧)

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=21604&post_id=76734