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