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