嵌入式程式設計經驗之延遲函式
通常有兩種方法來實現延遲函式,第一種用for
迴圈實現,另一方法就是用定時器實現。
for迴圈實現的延遲函式常用於不精確的延遲,大概的意思。
定時器方式延遲能夠實現精確的延遲。
for迴圈實現延遲
void delay1ms(int time)
定時器方式實現延遲用乙個
timer
當做系統時間
,它通常都會被
設定為每10ms
中斷一次,然後在
裡面加一
個counter
當做delay
用的引數
,例如在timer
中斷函式裡放入
(兩種方式:遞增式和遞減式)。
遞增式:
void time
10ms
_isr(void)
void delay10ms(int time)
遞減式:
void time
10ms
_isr(void)
void delay10ms(int time)
延遲應用
int main()
嵌入式開發經驗
任何開發都依賴硬體,在嵌入式領域。cpu的外設很重要,我們一般都是根據外設進行開發。其實cpu的核心 arm powerpc等 反而對於我們而言並不是那樣重要。開發時,乙個好的硬體測試平台很重要。包括偵錯程式和開發環境。同時,晶元資料手冊和參考手冊很重要。但是絕對不是硬生生地像閱讀一本教科書一樣進行...
嵌入式程式設計
1 interrupt double compute area double radis 1 isr不能返回乙個值。2 isr不能傳遞引數。3 在許多處理器中浮點是不可重入的。4 printf 經常有重入和效能上的問題,所以一般不使用printf 2.volatile 1 volatile的語法和c...
嵌入式程式設計
對於簡單的應用程式,輪詢 許多時候也被稱作超級迴圈 實現起來比較簡單,而且非常適合簡單任務 見圖4.4 不過,當應用程式變得複雜或者對處理能力的要求更高時,輪詢就不合適了。例如,當乙個程序占用時間過長,其他模組在這段時間內就不會收到處理器的任何服務。即便不需要任何處理,處理器也得一直執行輪詢程式,這...