|
发表于 2012-8-7 22:46:51
|
显示全部楼层
可以自己分析優先順序, 若DTMF_send > LCD refresh > Key scan > etc .....那就超時吧. 也不過是20ms.
或是改了結構. 例如每次trigger, 就while(task()). 那state machine就可以很多變化. 可以多個wait_timer, wait_xxx. 然後state = next_state.
這個10ms就是sender專屬. 就算轉了一圈, 還是可以繼續處理.
多底層就看重不重要而以, 不然OS為何多個優先級. 能拖能拉的輪了一圈再處理. 急的趕的拆不開的一次搞完.
底層用了state machine, 那你的app layout呢? 也搞一個machine?? 是不是太複雜了.
我翻了一下HT9200 DTMF datasheet. 似乎延時要求不大啊.
而且可以傳送Multi Bytes. 應該可以再改善流程.
既然要用state machine. 那麼state應該要明確指示.
state++; 指誰??????
state = TxStopState;
state = 0;
state = CE9200State;
唔, 去看看pthread.
|
|