DSP28335入门教程:ADC的使用

DSP28335入门教程:ADC的使用老笨来讲讲 dsp28335 的 ADC 的最基本用法 先来看看硬件电路连接图 程序 include DSP28x Project h defineADC CKPS0x1 ADCmoduleclo HSPCLK 2 ADC CKPS 25 0MHz 1 2 12 5MHz defineADC SHCLK0xf S

老笨来讲讲dsp28335的ADC的最基本用法。

先来看看硬件电路连接图:

DSP28335入门教程:ADC的使用

DSP28335入门教程:ADC的使用

程序

#include "DSP28x_Project.h" #define ADC_CKPS 0x1 // ADC module clock = HSPCLK/2*ADC_CKPS = 25.0MHz/(1*2) = 12.5MHz #define ADC_SHCLK 0xf // S/H width in ADC module periods = 16 ADC clocks #define BUFF_SIZE 4 Uint16 SampleTable[BUFF_SIZE]; main() { Uint16 i; InitSysCtrl(); EALLOW; //允许编辑受保护的寄存器 SysCtrlRegs.HISPCP.all = 0x3; //HSPCLK = SYSCLKOUT/6 = 25.0 MHz EDIS; //禁止编辑 DINT; //关中断 InitPieCtrl(); //复位PIE控制寄存器为0 IER = 0x0000; //清除所有CPU中断标识 IFR = 0x0000; InitPieVectTable(); //初始化中断向量表 InitAdc(); //开启ADC时钟,校准,ADC电路上电 AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK; AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS; AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //1 级联模式 AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 3; //设置最大通道数为n + 1,从通道0开始,按照顺序算 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; //通道(管脚)选择 ADCINA0 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; //ADCINA1 AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x8; //ADCINB0 AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x9; //ADCINB1 AdcRegs.ADCTRL1.bit.CONT_RUN = 1; //连续运行模式 AdcRegs.ADCTRL2.all = 0x2000; //1 << 13; Start SEQ1. 级联模式下不需要开启SEQ2 for(i = 0; i < BUFF_SIZE; i++) { SampleTable[i] = 0; } for(;;) { while (AdcRegs.ADCST.bit.INT_SEQ1 == 0) {} //等待转换完成,级联不需要等待INT_SEQ2 AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; //清除中断标识 SampleTable[0] = AdcRegs.ADCRESULT0>>4; SampleTable[1] = AdcRegs.ADCRESULT1>>4; SampleTable[2] = AdcRegs.ADCRESULT2>>4; SampleTable[3] = AdcRegs.ADCRESULT3>>4; } } 

 

程序解析

SysCtrlRegs.HISPCP.all = 0x3;

 

 

这个时钟的设置请看下图

DSP28335入门教程:ADC的使用

 再来看看是如何选择管脚的。dsp28335有1个12位adc共16个通道CONV00-CONV15,分为四个组,

ADCCHSELSEQ1-4,对应的管脚为ADCINA0-ADCINA7,ADCINB0-ADCINB7,在级联模式下就直

接设置对应的数值即可,现在仔细体会以下代码,应该不难理解:

 AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 3; //设置最大通道数为n + 1,从通道0开始,按照顺序算 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; //管脚为ADCINA0,转换结果在AdcRegs.ADCRESULT0 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; //ADCINA1,AdcRegs.ADCRESULT1 AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x8; //ADCINB0,AdcRegs.ADCRESULT2 AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x9; //ADCINB1,AdcRegs.ADCRESULT3 AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0xa; //ADCINB1,AdcRegs.ADCRESULT4 AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x1; //ADCINA1,AdcRegs.ADCRESULT5 AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 0xe; //ADCINB6,AdcRegs.ADCRESULT8 AdcRegs.ADCCHSELSEQ4.bit.CONV12 = 0xf; //ADCINB7,AdcRegs.ADCRESULT12

注意一下MAX_CONV1 = 3,最大通道数为3 + 1 = 4通道,也就是只转换CONV00,CONV01,CONV02,CONV03,结果存在ADCRESULT0-3中,ADCRESULT4及往后读出来为零。以此类推,MAX_CONV1 = 6,则只转换CONV00-CONV06。

 

观察结果

打开Expression窗口,添加SampleTable变量观察。用一字螺丝刀调节变阻器,可以看到数值相应变化。

DSP28335入门教程:ADC的使用

 

好,老笨就说到这了。

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175937.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:04
下一篇 2026年3月26日 下午11:04


相关推荐

  • Stata安装外部命令——以Winsor2缩尾命令为例

    Stata安装外部命令——以Winsor2缩尾命令为例说明计量经济学中经常要对数据进行缩尾处理 winsor 是 Stata 中常用的缩尾命令 需要安装才能调用 安装 winsor2 方法一 sscinstallwi 方法二 finditwinsor 的使用 winsor2var cut 199 replacePS 表示对数据进行上下 1 缩尾处理 直接替换 不产生新变量

    2026年3月26日
    8
  • RESTFul API 接口文档模板

    RESTFul API 接口文档模板修订记录发布日期修改说明 2019 01 01 第一次发布说明排版约定排版格式含义 lt gt 变量 可选项 必选项 互斥关系等宽字体 CourierNew 屏幕输出编码若请求消息体中的参数支持中文 则中文字符必须为 UTF 8 编码 时间与日期日期与时间的表示有多种方式 为统一起见 除非是约定俗

    2026年3月18日
    3
  • C++并发实战19:lock free编程

    C++并发实战19:lock free编程涉及到并行/并发计算时,通常都会想到加锁,加锁可以保护共享的数据,不过也会存在一些问题:1.由于临界区无法并发运行,进入临界区就需要等待,加锁使得效率的降低。多核CPU也不能发挥全部马力2.在复杂的情况下,很容易造成死锁,并发进程、线程之间无止境的互相等待。3.在中断/信号处理函数中不能加锁,给并发处理带来困难。4.加锁影响实时性,等待时间不确定5.优先级反转,优先级

    2022年7月19日
    22
  • phpstorm激活码2021最新_在线激活

    (phpstorm激活码2021最新)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9A…

    2022年3月22日
    210
  • 虚拟机配置IIS服务

    虚拟机配置IIS服务虚拟机配置 IIS 服务器 IIS 简介配置 windows2003 的相关服务查看 XP 客户端服务端配置默认网页 XP 客户端访问 IIS 简介 IIS 互联网信息服务 英语 InternetInfo 简称 IIS 是由微软公司提供的基于运行 MicrosoftWin 的互联网基本服务 即发布网站的服务器 在此处我们用 windows2003 作为 IIS 服务器 windowsXP 作为一个客户端 windows2003 的 ip 设置为 10 1 1 1 24 windowsXP 的 ip 设置为 10

    2026年3月18日
    2
  • 【2025最新】DeepSeek-R1+Open-WebUI双系统部署全攻略:从Linux到Windows保姆级教程,手把手搭建可视化AI对话平台

    【2025最新】DeepSeek-R1+Open-WebUI双系统部署全攻略:从Linux到Windows保姆级教程,手把手搭建可视化AI对话平台

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号