adcclk最大_DSP28335 ADC程序 中文说明 -
* 例程功能:利用中断定时器每隔一秒钟,从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程序 中文说明 -相关推荐
- matlab相机标定程序,MATLAB单相机校准程序中文.pdf
MATLAB单相机校准程序中文 单相机标定程序 相机标定概述 您可以使用相机标定程序估计相机内参数,外参数,镜头畸变参数.您可以使用 这些相机参数到多种计算机视觉应用.这些应用范围包括消除镜头畸变的影 ...
- 西门子828D 840Dsl数控程序PLC西门子数控程序中文注释
西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍. 对于维修人员,或者想学习PLC编程的工程师,初学者. 绝对是不错的选择,因为我也是从不懂过来的,所以再添加注释解释时会 ...
- 西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍
西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍. 对于维修人员,或者想学习PLC编程的工程师,初学者. 绝对是不错的选择,因为我也是从不懂过来的,所以再添加注释解释时会 ...
- Linux下Java程序中文乱码问题
转载自: http://blog.chinaunix.net/u3/114157/showart_2245018.html 留着有空看 摘 要:在一个项目的开发中,我用linux内核源代码和busy ...
- Linux下Java程序中文乱码问题研究
Linux下Java程序中文乱码问题研究 摘 要:在一个项目的开发中,我用linux内核源代码和busybox源代码自己编译打造的操作系统mylinux 1.0 ,服务器是我用java语言自己编写的 ...
- 解决 命令行程序 中文英文不对齐的情况
解决 命令行程序 中文英文不对齐的情况 问题描述 我用java写了个命令行的工具程序,在程序中我会输出一些提示语句,这些输出语句中有中文,但是奇怪的是中文老是对不齐,强迫症的我看起来很不舒服. 原因 ...
- 【STM32】ADC程序示例
00. 目录 文章目录 00. 目录 01. ADC简介 02. 硬件资源 03. 编程思路 04. 程序示例 05. 预留 06. 附录 07. 声明 01. ADC简介 STM32F4xx 系列一 ...
- adcclk最大_STM32 ADC转换时间
STM32F103XX的ADC的采样时钟最快14MHz,最快采样率为1MHz. ADC时钟: 这个ADC时钟是从哪来的呢.我们看下面这个STM32的时钟结构图: 我们大多使用STM32的最快PCLK2 ...
- c语言删标点,C程序中文标点惹的祸,你可长点儿心吧
版权声明:本文为作者原创文章,转载时请注明文章来源,否则视为侵权,并按法律程序处理! 想必你在编程时,即使写了一个很小很简短的程序,本以为编译一定不会有问题,自信满满,结果编译完了,编译器 给了几个大 ...
最新文章
- 学习OpenCV——配置CUDA环境
- 我对序列化(Serializable)的理解
- bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
- Python中的生成器与yield
- 微型计算机字,微型计算机杂志
- 音视频开发(1)---Red5流服务器搭建
- openssl 基本算法小例
- Next.js提供了基于React的简单通用JavaScript框架
- 【字符编码系列】常用的几种字符编码(GBK,UTF-8,UTF-16)
- java案例代码5--编码的方式--密码
- VMware安装Windows Server 2003提示Operating System not found
- c语言int doubt,c语言错误error: incompatible types in assignment
- mac 电脑如何从双系统恢复原mac系统,无需u盘一键重新安装macos
- mcldownload文件夹_download文件夹是什么?Win7系统download文件夹可以删除?
- 01. 利用正则表达式提取文章中的所有英文单词
- 最近搞的AGV调度控制中心
- HTML5 2D 游戏开发(一): Snail Bait 简介
- 学画画要花多少钱_高中学美术要花多少钱 学美术的费用是多少
- 2022-2028全球氢化镁行业调研及趋势分析报告
- 人人车公布2019年新战略:成立8千万元基金 加大品牌广告投放
热门文章
- 汪光焘:中国城市交通问题、对策与理论需求
- py函数式编程(高阶函数map/reduce/filter/sorted、闭包函数/返回函数、匿名函数lamber、@装饰器decorator、偏函数functool.partial())
- Jmeter自定义函数开发-------输入参数被分割
- php英文随机验证码,PHP随机字母数字验证码
- K8S以及Kubesphere离线部署方案
- e系列是服务器CPU吗,教你识别英特尔E系列服务器CPU
- 华为平板电池损耗用什么软件测试,平板怎么看电池损耗
- 用html语言编写笑脸,怎么使用HTML5中的Canvas绘制笑脸
- GEO数据库学习一(简介 数据下载 芯片知识)
- gitlab找回已删除的分支