第一范文网 - 专业文章范例文档资料分享平台

“简简单单DSP”系列学习活动——第六期AD学习及使用

来源:用户分享 时间:2025/6/16 7:08:44 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

AdcRegs.ADCTRL1.bit.CPS=1;

AdcRegs.ADCTRL3.bit.ADCCLKPS=3; /*采样窗口长度设置2.5M*/

AdcRegs.ADCTRL1.bit.ACQ_PS=5; /*配置AD*/ /*级联模式 */

AdcRegs.ADCTRL1.bit.SEQ_CASC=1; /*设置顺序采样模式*/

AdcRegs.ADCTRL3.bit.SMODE_SEL=0;

/*序列发生器最大采样通道数为 16, SEQ 将用到 ADCADCCHSELSEQ1、ADCADCCHSELSEQ2,ADCADCCHSELSEQ3、ADCADCCHSELSEQ4 ,用到ADCMAXCONV的低4位*/

AdcRegs.MAX_CONV.all=0x000F; /*采样 ADCINA0*/

AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0; /*采样 ADCINA1*/

AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x1; /*采样 ADCINA2*/

AdcRegs.ADCCHSELSEQ1.bit.CONV02=0x2; /*采样 ADCINA3*/

AdcRegs.ADCCHSELSEQ1.bit.CONV03=0x3; /*采样 ADCINA4*/

AdcRegs.ADCCHSELSEQ2.bit.CONV04=0x4; /*采样 ADCINA5*/

AdcRegs.ADCCHSELSEQ2.bit.CONV05=0x5; /*采样 ADCINA6*/

AdcRegs.ADCCHSELSEQ2.bit.CONV06=0x6; /*采样 ADCINA7*/

AdcRegs.ADCCHSELSEQ2.bit.CONV07=0x7; /*采样 ADCINB0*/

AdcRegs.ADCCHSELSEQ3.bit.CONV08=0x8; /*采样 ADCINB1*/

AdcRegs.ADCCHSELSEQ3.bit.CONV09=0x9; /*采样 ADCINB2*/

AdcRegs.ADCCHSELSEQ3.bit.CONV10=0xA; /*采样 ADCINB3*/

AdcRegs.ADCCHSELSEQ3.bit.CONV11=0xB; /*采样 ADCINB4*/

AdcRegs.ADCCHSELSEQ4.bit.CONV12=0xC; /*采样 ADCINB5*/

AdcRegs.ADCCHSELSEQ4.bit.CONV13=0xD; /*采样 ADCINB6*/

AdcRegs.ADCCHSELSEQ4.bit.CONV14=0xE; /*采样 ADCINB7*/

AdcRegs.ADCCHSELSEQ4.bit.CONV15=0xF; /*中断模式0*/

AdcRegs.ADCTRL2.bit.INT_MOD_SEQ=1; /*使能ADC中断,*/

AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;

/*如果是其他方式触发中断,那么还要设置,比如取EVA触发中断,那么要加这么一条设置,软件上触发就不需要了*/

AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; }

ADC中断函数处理:

ADC的中断函数在DSP281X_DefaultIsr.c库函数中了,在中断函数里面主要是读取ADC结果缓冲寄存器的值,12位在高位了,因此要把结果缓冲寄存器的值右移4位。并且要复位ADC的输入通道排序寄存器到CONV00,等待ADC采样使能,即有SOC脉冲;清外设中断标志位,以及PIEACK清零。 Uint16 ConversionCount; Uint16 Voltage1[1024]; Uint16 Voltage2[1024];

interrupt void ADCINT_ISR(void) // ADC {

/*读数*/

Voltage1[ConversionCount] =AdcRegs.ADCRESULT0 >>4; Voltage2[ConversionCount]= AdcRegs.ADCRESULT1 >>4; // If 40 conversions have been logged, start over if(ConversionCount == 1023) {

ConversionCount = 0; }

else ConversionCount++; /*复位SEQ1*/

AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; /*中断标志位清0*/

AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; /*PIEACK清0*/

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; return; }

“简简单单DSP”系列学习活动——第六期AD学习及使用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5jxr54oopd7z7sh756bo_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top