電氣火災監(jiān)控系統(tǒng)接收程序設計
電氣火災監(jiān)控系統(tǒng)接收程序設計
圖為電氣火災監(jiān)控系統(tǒng)監(jiān)控主機的接收監(jiān)控探測器報文的程序框圖,為了能夠及時響應總線上的數(shù)據(jù),采用中斷的方式接收。當響應接收中斷時,首先將字節(jié)存入RCREG寄存器內,然后根據(jù)緩存數(shù)組的指針判斷當前存儲的字節(jié)足否為第0個字節(jié),即地址字節(jié),如果是地址字節(jié)與主機地址匹配,則將數(shù)據(jù)保存至緩存數(shù)組,并設置TIMER丨定時器的初始化數(shù)據(jù)為檢驗字符間隔的時間;如果此時地址與主機地址不匹配,則設置TIMERI定時器的初始化數(shù)據(jù)為檢驗報文間隔的時間。如果當前接收的字節(jié)+是地址字節(jié),則首先判斷字符間隔足否超時,如果超時,則重設定時器時間,退出中斷;如果未超時,
則保存該字節(jié)至緩存數(shù)組,當所有的數(shù)據(jù)接收完畢時,將接收標志位RCOK置1,通知主程序所有數(shù)據(jù)接收完畢,進行數(shù)據(jù)處理。并重新設置TIMER丨定時器的初始化數(shù)據(jù)為檢驗報文間隔的時間。因為在Modbus協(xié)議的RTU模式中,時間間隔至關重要,為了及時地反映計時情況,采用中斷的方式計時,與串U接收中斷具有相同的優(yōu)先級別,具有TIMR1超時溢出中斷后,對報文間隔計時或者對字符間隔計時的自動轉換作用。
掃描二維碼推送至手機訪問。
版權聲明:本文如需轉載請注明出處。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 xp@gdliontech.cn舉報,一經(jīng)查實,本站將立刻刪除。