* 例程功能:利用中断定时器每隔一秒钟,从DSP28335的A0、A1口接收模拟信号,并转换为数字信号存放在SampleTable1,SampleTable2中。 * */

#include\// DSP2833x头文件

#include\// DSP2833x Examples Include File

// ADC启动参数

#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT

#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) =

25.0 MHz

#endif

#if (CPU_FRQ_100MHZ)

#define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) =

25.0 MHz

#endif

#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 PIEACK_GROUP1 0x0001

interruptvoidISRTimer0(void);

int SampleTable1=0,SampleTable2=0; intcount,count1,count2;

main() {

// 步骤1.初始化系统控制:PLL,WatchDog,启用外设时钟该示例函数可在DSP2833x_SysCtrl.c文件中找到。 InitSysCtrl();

// ADC工作时钟设置: EALLOW;

SysCtrlRegs.HISPCP.all = ADC_MODCLK;

// HSPCLK =

SYSCLKOUT/ADC_MODCLK,ADC工作的标准频率

EDIS;

// 步骤2.初始化GPIO:该示例函数位于DSP2833x_Gpio.c文件中,并说明如何将GPIO设

置为默认状态。

// InitGpio(); // 在这个例子中被跳过

// 第3步。清除所有中断并初始化PIE矢量表:禁用CPU中断 DINT;

// 初始化PIE控制寄存器为默认状态。默认状态是禁止所有的PIE中断并清除标志。 // 这个函数可以在DSP2833x_PieCtrl.c文件中找到。 InitPieCtrl();

// 禁用CPU中断并清除所有CPU中断标志: IER = 0x0000; IFR = 0x0000;

// Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines (ISR).

// 这将填充整个表,即使在这个例子中没有使用中断。这对于调试目的很有用。 // The shell ISR routines are found in DSP2833x_DefaultIsr.c. // 该函数在DSP2833x_PieVect.c中找到。 InitPieVectTable();

EALLOW;

PieVectTable.TINT0=&ISRTimer0; // 告诉定时器0的中断地址为中断向量表的

INT0

EDIS;

InitCpuTimers();

ConfigCpuTimer(&CpuTimer0,150,1000000);

StartCpuTimer0();

//CPU第一组中断将会产生,并使能第一组中断的第七个小中断 IER|=M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7=1;

// 步骤4.初始化所有器件外设:此功能可在DSP2833x_InitPeripherals.c中找到 InitAdc(); //ADC初始化设置

// ADC工作方式设置:

AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK; // 设置采集窗的大小。该控制位

控制SOC脉冲的宽度,SOC脉冲信

号的宽度等于 ADCLK周期 *(ADC_SHCLK+1)

AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS; // 核心时钟分频。ADC模块时钟 =

HSPCLK/2*ADC_CKPS =

25.0MHz/(1*2) = 12.5MHz AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 建立级联序列方式 AdcRegs.ADCTRL1.bit.CONT_RUN = 1; // 读取完转换序列后停止 AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; // 使能排序覆盖

AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // 设置ADCINA0作为第一个变换 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; // 设置ADCINA1作为第一个变换 AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x1; // 最大采集通道

// 第5步。用户特定的代码,启用中断: EINT; // 启用全局中断INTM ERTM; // 启用全局实时中断DBGM

AdcRegs.ADCTRL2.all = 0x2000; // 启动SEQ1 }

interruptvoidISRTimer0(void) {

while (AdcRegs.ADCST.bit.INT_SEQ1==0) {} // 等待中断

AdcRegs.ADCTRL3.bit.SMODE_SEL = 1; //设置同步采样模式

AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; //向该位写1,清除SEQ1中断标志

SampleTable1=((AdcRegs.ADCRESULT0>>4)); //取A0数据并记录在

SampleTable1数组中

SampleTable2=((AdcRegs.ADCRESULT1>>4)); //取A1数据并记录在

SampleTable2数组中

PieCtrlRegs.PIEACK.all=PIEACK_GROUP1; //0x0001赋给12组中断ACKnowlwdge寄

存器,对其全部清除,不接受其它中断

CpuTimer0Regs.TCR.bit.TIF=1; //定时到了指定时间,标志位置位,清除标

CpuTimer0Regs.TCR.bit.TRB=1; //重载Timer0的定时数据

}

adcclk最大_DSP28335 ADC程序 中文说明 -相关推荐

  1. matlab相机标定程序,MATLAB单相机校准程序中文.pdf

    MATLAB单相机校准程序中文 单相机标定程序 相机标定概述 您可以使用相机标定程序估计相机内参数,外参数,镜头畸变参数.您可以使用 这些相机参数到多种计算机视觉应用.这些应用范围包括消除镜头畸变的影 ...

  2. 西门子828D 840Dsl数控程序PLC西门子数控程序中文注释

    西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍. 对于维修人员,或者想学习PLC编程的工程师,初学者. 绝对是不错的选择,因为我也是从不懂过来的,所以再添加注释解释时会 ...

  3. 西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍

    西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍. 对于维修人员,或者想学习PLC编程的工程师,初学者. 绝对是不错的选择,因为我也是从不懂过来的,所以再添加注释解释时会 ...

  4. Linux下Java程序中文乱码问题

    转载自: http://blog.chinaunix.net/u3/114157/showart_2245018.html 留着有空看 摘  要:在一个项目的开发中,我用linux内核源代码和busy ...

  5. Linux下Java程序中文乱码问题研究

    Linux下Java程序中文乱码问题研究 摘  要:在一个项目的开发中,我用linux内核源代码和busybox源代码自己编译打造的操作系统mylinux 1.0 ,服务器是我用java语言自己编写的 ...

  6. 解决 命令行程序 中文英文不对齐的情况

    解决 命令行程序 中文英文不对齐的情况 问题描述 我用java写了个命令行的工具程序,在程序中我会输出一些提示语句,这些输出语句中有中文,但是奇怪的是中文老是对不齐,强迫症的我看起来很不舒服. 原因 ...

  7. 【STM32】ADC程序示例

    00. 目录 文章目录 00. 目录 01. ADC简介 02. 硬件资源 03. 编程思路 04. 程序示例 05. 预留 06. 附录 07. 声明 01. ADC简介 STM32F4xx 系列一 ...

  8. adcclk最大_STM32 ADC转换时间

    STM32F103XX的ADC的采样时钟最快14MHz,最快采样率为1MHz. ADC时钟: 这个ADC时钟是从哪来的呢.我们看下面这个STM32的时钟结构图: 我们大多使用STM32的最快PCLK2 ...

  9. c语言删标点,C程序中文标点惹的祸,你可长点儿心吧

    版权声明:本文为作者原创文章,转载时请注明文章来源,否则视为侵权,并按法律程序处理! 想必你在编程时,即使写了一个很小很简短的程序,本以为编译一定不会有问题,自信满满,结果编译完了,编译器 给了几个大 ...

最新文章

  1. 学习OpenCV——配置CUDA环境
  2. 我对序列化(Serializable)的理解
  3. bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
  4. Python中的生成器与yield
  5. 微型计算机字,微型计算机杂志
  6. 音视频开发(1)---Red5流服务器搭建
  7. openssl 基本算法小例
  8. Next.js提供了基于React的简单通用JavaScript框架
  9. 【字符编码系列】常用的几种字符编码(GBK,UTF-8,UTF-16)
  10. java案例代码5--编码的方式--密码
  11. VMware安装Windows Server 2003提示Operating System not found
  12. c语言int doubt,c语言错误error: incompatible types in assignment
  13. mac 电脑如何从双系统恢复原mac系统,无需u盘一键重新安装macos
  14. mcldownload文件夹_download文件夹是什么?Win7系统download文件夹可以删除?
  15. 01. 利用正则表达式提取文章中的所有英文单词
  16. 最近搞的AGV调度控制中心
  17. HTML5 2D 游戏开发(一): Snail Bait 简介
  18. 学画画要花多少钱_高中学美术要花多少钱 学美术的费用是多少
  19. 2022-2028全球氢化镁行业调研及趋势分析报告
  20. 人人车公布2019年新战略:成立8千万元基金 加大品牌广告投放

热门文章

  1. 汪光焘:中国城市交通问题、对策与理论需求
  2. py函数式编程(高阶函数map/reduce/filter/sorted、闭包函数/返回函数、匿名函数lamber、@装饰器decorator、偏函数functool.partial())
  3. Jmeter自定义函数开发-------输入参数被分割
  4. php英文随机验证码,PHP随机字母数字验证码
  5. K8S以及Kubesphere离线部署方案
  6. e系列是服务器CPU吗,教你识别英特尔E系列服务器CPU
  7. 华为平板电池损耗用什么软件测试,平板怎么看电池损耗
  8. 用html语言编写笑脸,怎么使用HTML5中的Canvas绘制笑脸
  9. GEO数据库学习一(简介 数据下载 芯片知识)
  10. gitlab找回已删除的分支