使用LPC1700的IEC 60601-1-8音頻警報(bào)發(fā)生器
定時(shí)信號(hào)發(fā)生器代碼包括定時(shí)器0的初始化,以及用于處理定時(shí)器0中斷的中斷服務(wù)程序。這提供用于生成報(bào)警音調(diào)的40μs(25kHz)定時(shí),以及軟件計(jì)數(shù)器生成的1ms定時(shí)。后者被包絡(luò)發(fā)生器和音符定序器所用。
定時(shí)器0初始化
定時(shí)器0需要進(jìn)行初始化,以每隔40μs生成一個(gè)匹配中斷,從而提供25kHz的采樣速率。下面給出了初始化代碼。
定時(shí)器0中斷服務(wù)程序
定時(shí)器0中斷服務(wù)程序是本應(yīng)用程序的心臟,因?yàn)樗鼮橐粽{(diào)生成以及音調(diào)定序提供所有計(jì)時(shí)。本代碼進(jìn)行試驗(yàn),以查看包絡(luò)是否啟用,如果是,它將輸出音調(diào)。除了清除中斷以外,軟件計(jì)數(shù)器被遞增,直到達(dá)到1ms的超時(shí)。在每一次1ms超時(shí)發(fā)生時(shí),定序器的狀態(tài)就被遞增,而且任何需要的動(dòng)作將由包絡(luò)發(fā)生器執(zhí)行(將在以后討論)。下面顯示了關(guān)于定時(shí)器0中斷服務(wù)程序的代碼列表。
包絡(luò)控制功能
包絡(luò)發(fā)生器控制音調(diào)的動(dòng)態(tài)水平,因?yàn)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/IEC">IEC60601-1-8要求上升時(shí)間和下降時(shí)間應(yīng)該處在規(guī)定的范圍內(nèi)。還有,報(bào)警順序中的第一個(gè)音符的振幅應(yīng)該低于其它音符。包絡(luò)發(fā)生器輸出是變量“包絡(luò)”。當(dāng)音調(diào)關(guān)閉時(shí),包絡(luò)=0。當(dāng)在順序中打開一個(gè)音符時(shí),包絡(luò)變量將每毫秒以設(shè)定的速率增大,直到它達(dá)到設(shè)定的最大水平。當(dāng)音符關(guān)閉時(shí),音調(diào)繼續(xù),但包絡(luò)變量開始以其設(shè)定的速率減小,直到它達(dá)到“0”。包絡(luò)變量將被用作音符的動(dòng)態(tài)特征的音量控制。下面給出了包絡(luò)控制功能的列表:
音符定序器功能
音符定序器為IEC60601-1-8中規(guī)定的不同報(bào)警旋律提供計(jì)時(shí)和音符定序。高級(jí)優(yōu)先權(quán)報(bào)警包括重復(fù)的5音符順序。相同報(bào)警范疇的中等優(yōu)先權(quán)形式使用其高級(jí)優(yōu)先權(quán)報(bào)警的前三個(gè)音符,但不重復(fù)。高級(jí)優(yōu)先權(quán)報(bào)警的音符間隔和持續(xù)時(shí)間比較短,因?yàn)檫@能給出緊急程度的較高感覺。以高級(jí)優(yōu)先權(quán)為例,下面顯示了實(shí)施這些功能的代碼。在定時(shí)器0中斷服務(wù)程序中討論的1ms時(shí)基增大順序計(jì)數(shù)器。作為其結(jié)果,與每個(gè)情況語句相關(guān)聯(lián)的數(shù)字均以毫秒為單位,以方便計(jì)時(shí)期間的調(diào)整。中等和低級(jí)優(yōu)先權(quán)形式使用相同的基本開關(guān)語句格式和類似的函數(shù)調(diào)用,但是,由于節(jié)拍不同,在相關(guān)的情況語句中使用了不同的計(jì)時(shí)狀態(tài)。
評(píng)論