會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





請教MCU程式結構化範例
初級會員
註冊日期:
1月05日 17:30:44
所屬群組:
註冊會員
文章: 35
等級: 4; EXP: 68
HP : 0 / 92
MP : 11 / 253
離線
貴站教學資源上都是單個小方面程式的應用
但如果把這些多種小程式結合起來卻不知該如何下手
請問是否有整合多種功能的結構化程式教學或範例?(例如:在一個產品上系統化的程式、state machine)

Best regards

6月12日 14:45:46
轉換PDF檔 列印


Re: 請教MCU程式結構化範例
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14184
等級: 72; EXP: 56
HP : 1073 / 1789
MP : 4728 / 71237
離線
組合起來後通常會是個大程式。

我建議你可以參考 :
W402T v2.0 PIC18F整合應用課程
W301 Advance PICC Application

這兩個應用程式的寫法,這程式是採模組化的設計,要加入功能變得更簡單。

http://www.microchip.com.tw/Data_CD/
8-Bits MCU 相關課程 下:

6月12日 15:22:58
轉換PDF檔 列印


Re: 請教MCU程式結構化範例
中級會員
註冊日期:
2015/05/27 22:04
所屬群組:
註冊會員
文章: 44
等級: 5; EXP: 43
HP : 0 / 110
MP : 14 / 828
離線
利用Ryang提供的資料,
你可以自己嘗試整合。
比如說,你要學習state machine,
按鈕切換state,如果在最後一個state切換,則跳回第一個state.
每一個state對應某個功能,如顯示電壓(ADC),顯示溫度,跑馬燈,...
使用switch case 來做state machine.
每一個主要的state內,可以另有次級的state,由這些次級state組成某個主要功能。

以我自己曾寫過的某某訊號模擬器為例子,
經由UART的接收中斷收到PC端的命令,
符合長度或特定字首,代表接收完畢,設定接收完成的旗標。
主程式內,檢查到接收完成的旗標==1,則呼叫parseCommand函數,
在parseCommand函數內解析命令,
如果命令合法,則依照命令的種類,切換主要state,和次級的state.
主迴圈內根據主要state,和次級的state,執行對應的動作。
如果某些動作與時間相關或是外部輸入有關,
你可以在相關的中斷內設定旗標,然後在state內檢查旗標,
符合某些條件,就切換到其他的state(或STATE_IDLE).
(如果執行的動作不希望被新的PC端命令打斷,則應該暫時停止UART接收中斷,等執行的動作完成後,再enable UART接收中斷)

多看,多寫,測試。這樣比較容易自行擴展開發新的案子。
切貼修改別人的程式碼,最好自己動手整合過。
以免案子所需功能,恰巧是沒有現成可以剪貼過來用的,就有可能卡住。

6月12日 21:08:05
轉換PDF檔 列印


Re: 請教MCU程式結構化範例
初級會員
註冊日期:
1月05日 17:30:44
所屬群組:
註冊會員
文章: 35
等級: 4; EXP: 68
HP : 0 / 92
MP : 11 / 253
離線
多謝argogee先進指點!!

6月29日 14:35:22
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project