2015-05-16 48 views
2

當涉及到代碼設計時,我不確定如何繼續進行項目。代碼設計 - 狀態機或程序代碼

想象一下,必須使用模擬/數字轉換器來監視電壓值的設備,如果測量值有一定的限制,有時必須調整它的pwm輸出。該設備還具有接口,例如, LED和按鈕以及一個電位器。

如果用戶更改電位計值,設備仍然必須在設備等待用戶輸入時監控電壓。還有一個問題是,該設備必須快速行動(在10ms內關閉驅動器以供電)。你會推薦一個狀態機或程序編程嗎?

在C中構建狀態機有多困難?當控制器(STM32F0)必須讀取4個ADC輸入並生成2個PWM時,速度足夠快嗎?

+1

如果您正在考慮狀態機設計,請考慮[QP Active Object Framework](http://state-machine.com/)。它有一條學習曲線,但我認爲它非常值得。 – kkrambo

回答

2

狀態機最適合小型應用程序,不需要擴展。如果這是進入一個有目的的設備,狀態機就可以。當涉及到功能蠕變時,狀態機將很快變得混亂。

您正在使用的處理器具有足夠的馬力來處理此任務。最有可能的工作是定時器和中斷驅動設計。從定時器中斷讀取ADC。您應該能夠以1000Hz或更快的速度輕鬆讀取ADC。

並使用固定點或整數而不是浮點數。

+5

我不同意狀態機一定難以擴展。狀態機是將複雜性分解爲更多模塊化塊的一種方法。有了正確的狀態機框架,擴展應該變得更容易 - 並不難。 – kkrambo