基于雙處理器的投影機升降控制設計方案
圖4 紅外模塊遙控解碼模塊接口圖。
4 軟件設計
軟件總體設計分為Atmega 8 軟件設計和Stm32F101 軟件設計。Stm32F101 收到命令后進入相關的處理函數,根據命令執(zhí)行不同的操作,同時通過I2C 總線與Atmega8 通訊。
4.1 Atmega8 軟件流程
開始后首先執(zhí)行系統(tǒng)初始化,其中包括初始化定時器,串口,I2C 等,然后從E2PROM 中讀取掉電時刻保存的電機參數,完全還原電機掉電時的狀態(tài)。進入主函數后循環(huán)執(zhí)行各個子函數。當電機轉動時,根據采集的電平信號更新結構體變量,轉過一圈motor_ data 元素加1 或者減1,當motor _ data 與motor_ over 相等時產生外部中斷信號使Stm32F101 發(fā)生中斷,在中斷函數體內執(zhí)行程序使電機停止下來。
無論何時掉電,都會立即進入掉電保存程序,將重要參數寫進E2PROM,下次上電時完全還原電機掉電時刻的參數。由于Stm32F101 是主I2C,當Atmege8 接收到I2C 數據時產生I2C 中斷,保存數據到相應數組,同時置位相關標志位,當循環(huán)到I2C中斷標志為1 時,馬上進入處理命令函數,滿足條件時中斷Stm32F101,程序流程圖如圖5 所示。
圖5 Atmega8 軟件流程圖。
紅外遙控器相關文章:紅外遙控器原理 蜂鳴器相關文章:蜂鳴器原理
評論