新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TMS320F2812高精度數字頻率計的設計

        基于TMS320F2812高精度數字頻率計的設計

        作者: 時間:2009-02-26 來源:網絡 收藏

        單色液晶屏模塊

        CM320240是一種圖形點陣液晶顯示器,主要采用動態驅動原理由行驅動控制器和列驅動控制器兩部分組成了320(列)×240(行)的全點陣液晶顯示,此顯示器內含了硬件字庫,編程模式簡潔方便。

        該液晶模塊的讀寫周期最小為800ns。如果采用總線方式控制液晶模塊,讀、寫周期最大值為200ns,不能滿足該液晶模塊的要求,故采用間接控制方式。為節約硬件成本,該系統選用通用GPIO來控制液晶屏的讀寫信號。

        鍵盤模塊

        由于鍵盤是低速外設,與連接時存在速度匹配問題。為此,設計時設置相應的全局變量實現與系統的同步。

        本系統將鍵盤分為二類:通道選擇鍵(3個)與系統鍵(4個)。通道選擇鍵主要完成系統單通道、雙通道、四通道模式的設定;系統鍵包括停止鍵(停止觀察顯示的頻率)、返回鍵(通道選擇的重新設定)、UP鍵和DOWN鍵(選擇捕獲單元硬件連接方式)。

        軟件設計

        系統軟件設計是本系統的重點,主要包括三部分內容:捕獲中斷測頻子程序、鍵盤定時中斷掃描子程序和LCD顯示處理子程序。系統軟件總體流程圖如圖4所示。

        鍵盤定時中斷掃描

        為滿足系統實時性要求、完成鍵盤操作的實時響應,本系統設置了一個5ms的時基,采用事件管理器的EVB的time4定時周期中斷來完成。對鍵盤掃描、命令形成與標志位設置功能,都在定時器中斷服務子程序完成。鍵盤定時中斷掃描流程圖如圖5所示。


        捕獲中斷測頻

        本系統使用事件管理器模塊的捕獲單元來測頻,捕捉被測信號的有效電平跳變沿,由內部的計數器記錄一個周波內標頻脈沖個數,并通過相應的運算來得到被測頻率的大小。此模塊主要包括捕獲與定時的初始化設置與捕獲中斷子程序兩部分。

        捕獲中斷測頻子程序的部分代碼如下:

        (1)void InitEv1(void)//捕獲1初始化設置

        {
        EALLOW;
        SysCtrlRegs.HISPCP.all = 0x00;// 外設高速時鐘
        EDIS;
        EvaRegs.CAPCONA.bit.CAP1EDGE=1; //檢測上升沿,計算周期脈沖寬度
        EvaRegs.CAPFIFOA.bit.CAP1FIFO=0; //CAP1FIFO空
        EvaRegs.CAP1FBOT=0;//棧底清零
        EvaRegs.CAP1FIFO=0;
        EvaRegs.EVAIFRC.bit.CAP1INT=1;//清捕獲中斷1標志位
        EvaRegs.EVAIMRC.bit.CAP1INT=1; //捕獲1中斷使能
        }

        (2)interrupt void CAPINT1_isr(void)//捕獲中斷1子程序

        {
        CAP1_t1=EvaRegs.CAP1FIFO;//
        CAP2_t1=EvaRegs.CAP1FIFO;
        if(CAP2_t1>CAP1_t1)
        temp1=CAP2_t1-CAP1_t1;
        else
        temp1=CAP2_t1+EvaTimer1InterruptCount*65535-CAP1_t1;
        f1= 1171875.0/(float)temp1;
        value=f1;
        fpart = modf(value, ipart);
        a1=(long)ipart;//獲得頻率的32位整數
        *(Uint16 *)0x80008=a10x0ffff;//獲的低16位
        *(Uint16 *)0x80009=(a10xffff0000)>>16;//獲的高16位
        EvaRegs.EVAIFRC.bit.CAP1INT=1;//清捕獲中斷1標志位
        EvaRegs.EVAIMRC.bit.CAP1INT=1; //捕獲1中斷使能
        PieCtrlRegs.PIEACK.bit.ACK3 = 1;//開外設中斷應答
        }

        LCD顯示處理

        LCD的顯示分為信息區與顯示區兩部分。其中信息區包括固定信息(顯示煙臺大學DSP實驗室等),顯示區包括通道號信息與各通道的頻率值信息的顯示。本模塊主要包括LCD的初始化設置與頻率值的顯示等子程序。

        實驗結果

        本系統測試了如表1中的6組數據,并做出了誤差分析。輸入信號頻率與實測信號頻率如表1所示。

        誤差分析:本系統的誤差主要來自如下兩個方面,即計數脈沖和門控信號不同步以及晶振不穩定。

        結束語

        本文設計了一種具有和簡單結構特點的測頻系統,由于在實現上簡單,可以滿足低成本的要求,使測頻電路大為簡化,便于工程應用,具有較大的應用價值。

        經過反復測試后得出:系統的測頻誤差可達到0.1%,由于采用了實時的鍵盤定時中斷掃描,可以較好地滿足實時性要求。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 仁寿县| 集贤县| 萝北县| 紫阳县| 莱芜市| 平安县| 汉寿县| 隆安县| 承德县| 孟州市| 乐陵市| 桐乡市| 丰都县| 民权县| 崇仁县| 东阿县| 扶绥县| 凤台县| 乡宁县| 南皮县| 博客| 纳雍县| 桦甸市| 巫溪县| 云梦县| 西乌珠穆沁旗| 城口县| 法库县| 韶山市| 西和县| 安乡县| 嘉黎县| 七台河市| 青神县| 车险| 新宾| 谢通门县| 榆社县| 静海县| 西乌| 巩留县|