DSP CCS12.00 芯片:TMS320F28335 结课设计 数字电压表 TFTLCD 模块 + ADC 模块
生活随笔
收集整理的這篇文章主要介紹了
DSP CCS12.00 芯片:TMS320F28335 结课设计 数字电压表 TFTLCD 模块 + ADC 模块
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(永輝電子DSP 的板子? )
扭動滑動變阻器 改變電壓
代碼:
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" // DSP2833x Examples Include File #include <bsp_includes.h>#if (TFTLCD_TEST == 1) uchar class[]= {"班級 :"}; uchar Name[]= {"姓名: "}; uchar student_ID[]={"學(xué)號: "}; uchar Str1[] = {"題目: 數(shù)字電壓表測試 "};//方向的提示語句 uchar Str2[] = {"電壓: "}; #endif#define ADC_MODCLK 0x5 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*4) = 15MHz // for 60 MHz devices: HSPCLK = 60/(2*4) = 7.5 MHz #define ADC_CKPS 0x1 // ADC module clock = HSPCLK/2*ADC_CKPS = 15MHz/(1*2) = 7.5MHz #define ADC_SHCLK 0xf // S/H width in ADC module periods = 16 ADC clocks #define AVG 100 // Average sample limit #define ZOFFSET 0x00 // Average Zero offset #define BUF_SIZE 2048 // Sample buffer sizeUint16 SampleTable[BUF_SIZE]; float Vin=0; float mm=1; float m1=1;int a1; int a2; int a3; int a4; //函數(shù)入口 void main(void) {InitSysCtrl();DINT;InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();EINT;ERTM;InitXintf();InitSpiaGpio();int temp;Uint16 i;Uint32 Sum=0;/*初始化系統(tǒng)*/InitSysCtrl();// Specific clock setting for this example:EALLOW;SysCtrlRegs.PCLKCR0.bit.ADCENCLK=1;//ADCSysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/(2*ADC_MODCLK)=15MHZEDIS;/*初始化GPIO;*///InitSpiaGpio();/* 關(guān)中斷 */DINT;IER = 0x0000;IFR = 0x0000;/* 初始化PIE控制寄存器 */InitPieCtrl();/* 初始化PIE參數(shù)表 */InitPieVectTable();// 步驟 4.初始化片內(nèi)外設(shè):InitAdc(); // For this example, init the ADC///初始化SPIEINT; // Enable Global interrupt INTMERTM; // Enable Global realtime interrupt DBGM// Specific ADC setup for this example:AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK;//設(shè)置采樣窗口時間:(15+1)*ADCCLKAdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS;//ADC內(nèi)核時鐘分頻:HSPCLK/2=6.25MHZAdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 1選擇級聯(lián)模式AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; //通道選擇ADCAIN0AdcRegs.ADCTRL1.bit.CONT_RUN = 1; // 設(shè)置為連續(xù)運行AdcRegs.ADCMAXCONV.bit.MAX_CONV1=0x0;// 采樣表清0for (i=0; i<BUF_SIZE; i++){SampleTable[i] = 0;}// 軟件啟動SEQ1AdcRegs.ADCTRL2.all = 0x2000;i=0;//TFTLCD實驗 #if (TFTLCD_TEST == 1)ILI9325_Init(); //TFT初始化//顯示字符LCD_PutString(37, 20,Str1, BLUE,WHITE);LCD_PutString(37, 40,class, WHITE,RED);LCD_PutString(37, 60,Name, WHITE,RED);LCD_PutString(37, 80,student_ID, RED,WHITE);LCD_PutString(37, 100,Str2, WHITE,RED); #endifwhile (1){while (AdcRegs.ADCST.bit.INT_SEQ1== 0){} // 等待中斷AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;SampleTable[i++] =((AdcRegs.ADCRESULT0>>4) );if(i>(BUF_SIZE-1)){for(i=0;i<BUF_SIZE;i++){mm+=SampleTable[i];}mm=mm/2048/1000;a4=(int)(mm*100);a1=a4/100;a2=a4%100/10;a3=a4%10;uchar kk[5];kk[0]=a1+48;kk[2]=a2+48;kk[1]='.';kk[3]=a3+48;kk[4]=0;LCD_PutString(100, 100,kk, WHITE,RED);mm=0;i=0;}} }總結(jié)
以上是生活随笔為你收集整理的DSP CCS12.00 芯片:TMS320F28335 结课设计 数字电压表 TFTLCD 模块 + ADC 模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UDP都是全双工通信的吗
- 下一篇: Oracle分析函数PERCENTILE