主控源代碼部分,截止目前為止,都是屬于辛辛苦苦敲出來的。沒有使用實時操作系統,我們稱之為裸機代碼,未使用操作系統裸跑的意思。 為了滿足各個層次用戶的需求和體現出我們的努力,后續會試著移植Small RTOS51實時操作系統內核。Small RTOS51是陳明計先生(就職于周立功公司)編寫的一個實時操作系統,適合在小RAM單片機上運行。 那么,現在就結合裸機代碼,來說說喵嗚ISO的軟件框架。 圖1 框圖 圖2 流程圖 總體的流程圖,就是這么簡單。定時器里面的任務,是整個系統的核心。下面具體介紹實現細節。 初始化學過 51單片機的都知道,任何一個處理器要正常運行后面的代碼,首先必須得有一大段設備初始化的代碼先運行,這些代碼用于初始化處 理器的內部時鐘、中斷優先級、I/O 口的輸入輸出方向等等,也就是為后續代碼正常運行,做了一個環境配置準備。 初始化看起來很繁雜,很多,也沒啥好說的。 接下來 ,程序運行到死循環while(1);程序會一直停在這里,等待數據中斷的到來,而不是死機死在這里,這是有區別的,學過51的人都知道,我不再多說。 定時器可以看到角度環、速度環、PID計算、PWM輸出都放在定時中斷1里面,它們屬于需要精確時間周期執行,因此可以在一個周期定時中斷里完成。
|