2812 ADC采样程序

2812 ADC采样程序

ID:42179807

大小:28.51 KB

页数:5页

时间:2019-09-09

2812 ADC采样程序_第1页
2812 ADC采样程序_第2页
2812 ADC采样程序_第3页
2812 ADC采样程序_第4页
2812 ADC采样程序_第5页
资源描述:

《2812 ADC采样程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、本程序采用EVA中断启动ADC转换,级联模式6通道顺序采样:DSP28_Adc.c: voidInitAdc(void){  unsignedinti;     AdcRegs.ADCTRL1.bit.RESET=1; asm("RPT#10

2、

3、NOP");//等待12个周期,复位adc模块 AdcRegs.ADCTRL3.bit.ADCBGRFDN=3; for(i=0;i<10000;i++) asm("NOP");//能带隙和参考电路上电 AdcRegs.ADCTRL3.bit.ADCPW

4、DN=1; for(i=0;i<5000;i++) asm("NOP"); //内核内的模拟电路上电 AdcRegs.ADCTRL3.bit.ADCCLKPS=15; //核时钟分频器 AdcRegs.ADCTRL3.bit.SMODE_SEL=0; //顺序采样模式  AdcRegs.ADCTRL1.bit.RESET=0; AdcRegs.ADCTRL1.bit.SUSMOD=3;//仿真挂起时,序列发生器和其他轮询程序逻辑立即停止 AdcRegs.ADCTRL1.bit.ACQ_PS=0;

5、//控制SOC脉宽 AdcRegs.ADCTRL1.bit.CPS=0; //内核时钟预分频 AdcRegs.ADCTRL1.bit.CONT_RUN=0; //启动停止模式到达EOS后序列发生器停止 AdcRegs.ADCTRL1.bit.SEQ_CASC=1; //级联模式,SEQ1和SEQ2作为单个16状态序列发生器工作  AdcRegs.MAX_CONV.bit.MAX_CONV=0x0005;          AdcRegs.CHSELSEQ1.bit.CONV00=0x0;   A

6、dcRegs.CHSELSEQ1.bit.CONV01=0x1;   AdcRegs.CHSELSEQ1.bit.CONV02=0x2;   AdcRegs.CHSELSEQ1.bit.CONV03=0x3;       AdcRegs.CHSELSEQ2.bit.CONV04=0x4;   AdcRegs.CHSELSEQ2.bit.CONV05=0x5;   AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0; AdcRegs.ADCTRL2.bit.RST_SEQ1=0; 

7、AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1; AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0; AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1; AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=0; AdcRegs.ADCTRL2.bit.RST_SEQ2=0; AdcRegs.ADCTRL2.bit.SOC_SEQ2=0; AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2=0; AdcReg

8、s.ADCTRL2.bit.INT_MOD_SEQ2=0; AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ2=0;// AdcRegs.ADCTRL2.bit.SOC_SEQ1=1; //使能ADC中断 PieCtrl.PIEIER1.bit.INTx6=1; IER

9、=M_INT1;}  AD.c文件:#include"DSP28_Device.h"unsignedintSend_Flag;unsignedinti;char*strg="abcd";floatad[6]={0,

10、1,2,3,4,5};floatadclo=0.0;intad_freq=0;voidDelayNmSec(intN){ unsignedintj; while(N--) for(j=0;j<65535;j++);}interruptvoidT2PINT_ISR(void){  length=5;  length--;  Tx=(unsignedchar*)strg;        if(length>0)   SciaRegs.SCITXBUF=*Tx++;  else     {    le

11、ngth=0;   }    EvaRegs.EVAIMRB.bit.T2PINT=1;//中断允许   EvaRegs.EVAIFRB.bit.T2PINT=1;//清除中断标志  PieCtrl.PIEACK.bit.ACK3=1;//向cpu申请中断   }interruptvoidAD_ISR(void){       ad_freq++;    if(ad_freq==6)  {   ad[0]=((AdcRegs.RESULT0>>4)*3)/4095.0+adclo;   ad[1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。