色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)典型案例開發(fā)(六)

          單片機(jī)典型案例開發(fā)(六)

          作者: 時間:2013-07-13 來源:網(wǎng)絡(luò) 收藏
          PACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">  運(yùn)行在的底層軟件主要負(fù)責(zé)ADC的采集、DAC的輸出以及串口的通信,下面詳細(xì)介紹各個部分:

            1、 光柵頻率測量:測量模擬基準(zhǔn)一個周期內(nèi)的光柵個數(shù)

            在程序中,每次進(jìn)入外中斷0的處理程序void int0_isr(void)(即基準(zhǔn)脈沖上升沿到來時)調(diào)用void do_gd_opt_frq()函數(shù)測量光柵頻率。

            在do_gd_opt_frq ()函數(shù)中,先把前一次讀取計(jì)數(shù)器1的計(jì)數(shù)值保存在全局變量time1_prev中,再讀取計(jì)數(shù)器1的值并保存在time1_next中,因?yàn)閮纱沃袛嗟拈g隔就是模擬基準(zhǔn)的周期,有一個光柵脈沖計(jì)數(shù)器1就加1,所以,前后兩次的差值就是一個模擬基準(zhǔn)周期內(nèi)光柵的個數(shù)。

            2、 模擬基準(zhǔn)幅度

            在INT0的中斷處理函數(shù)中置一個全局標(biāo)志refoa_gd_flag = 0xff,在一個100?s的定時器的中斷處理函數(shù)中查詢此全局標(biāo)志,若置位,則對模擬基準(zhǔn)的ADC通道連續(xù)采樣400次,采樣后清 refoa_gd_flag標(biāo)志并置采樣結(jié)束的標(biāo)志refoa_gd_finished = 0xff。在主程序main()函數(shù)中不斷查詢refoa_gd_finished標(biāo)志,若置位,則調(diào)用do_refoa_high()函數(shù)求出模擬基準(zhǔn)幅度,然后清標(biāo)志。在do_refoa_high()函數(shù)中求出采樣400個點(diǎn)中的最大值和最小值,兩者之差即為模擬基準(zhǔn)幅度。

            3、 模擬基準(zhǔn)周期:測量一個模擬基準(zhǔn)周期的毫秒值

            在一個1ms的定時器溢出中斷處理函數(shù)中,全局的計(jì)數(shù)變量ref_gd_count加1,ref_gd_count初始化為0。在外中斷0的處理函數(shù) int0_isr()中讀取ref_gd_count的值,即為模擬基準(zhǔn)的周期,再把ref_gd_count清零。這樣,只有第一次測量值是無效的,以后均為有效的模擬基準(zhǔn)周期。

            4、 模擬基準(zhǔn)寬度

            在INT0的中斷處理函數(shù)中置全局變量refoa_width_gd_ count=0,在100?s的定時器中斷中查詢外中斷0的引腳是否為高電平,是高電平則refoa_width_gd_count加1,直至變?yōu)榈碗娖?,refoa_width_gd_ count的值就是模擬基準(zhǔn)的寬度。

            5、 電地球波

            在do_ein()函數(shù)中處理工控機(jī)串口傳過來的電地球波信息,如果是停止電地球波命令(state=0),通過DA電地球波直接輸出高電平并清除電地球波使能標(biāo)志位ein_gd_enable。如果是開始電地球波命令(state=1),把相位、寬度、幅值、斜率等信息賦給全局變量保存,并且計(jì)算出步距和斜率上各個點(diǎn)的輸出值,置位電地球波使能標(biāo)志 ein_gd_enable。

            電地球波的產(chǎn)生是以模擬基準(zhǔn)為基準(zhǔn)的,在INT0的中斷處理函數(shù)中設(shè)置計(jì)數(shù)器的比較中斷并使能。

            圖3中, T0與T1 之間是地球波的相位,T2與T5之間是地球波的寬度。在T1時刻進(jìn)入計(jì)數(shù)器1的比較中斷timer1_compa_isr(),全局變量 ein_count_gd初始化為0,若ein_count_gd不等于1,則設(shè)置比較中斷寄存器初值為下一步距點(diǎn),并通過DA輸出,若下一個比較中斷到來ige ein_count_gd不等于1,則繼續(xù)設(shè)置比較中斷寄存器初值為下一個步距,并輸出幅值,直到斜率上所有的幅值輸出完畢,置ein_count_gd 等于1并設(shè)置比較中斷寄存器,使T4進(jìn)入比較中斷。T4進(jìn)入比較中斷,并按照前述方法輸出斜率上所有的幅值,完畢則禁止比較中斷并置 ein_count_gd=0xff。

            

          地球波的相位

            ADC采集和串口通信比較簡單,這里不再贅述。



          關(guān)鍵詞: 單片機(jī) 典型案例

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉