请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F2808 工具/软件:Code Composer Studio
我正在尝试运行 example_280xAdcSeqModeTest.c 我已更改时钟和 S/H 值。我尝试在连续运行的仿真级联模式下读取两个8通道。示例中有两个 用于循环的通道。如果我按下 Debug 按钮加载程序、我将看到图1所示的正确波形。但当我执行此操作时 按“Resume”(恢复)按钮,然后得到失真的波形。我无法解决此问题。
// TI 文件$Revision:/main/2 $ //签入$Date:2009年7月31日14:26:00 $ //###################################################################################################### // ////文件:example_280xAdcSeqModeTest.c // //标题:DSP280x ADC 序列模式测试。 // //假设: // //此程序需要 DSP280x 头文件。 // //确保在 编译此示例之前在// DSP280x_Examples.h 中正确定义了 CPU 时钟速度。 // //将要转换的信号连接到通道 A0。 // //根据提供的信息,此项目配置为“引导至 SARAM” //操作。 280x 引导模式表如下所示。 //有关配置 eZdsp 引导模式的信息, //请参阅 eZdsp 附带的文档, // 引导 GPIO18 GPIO29 GPIO34 // 模式 SPICLKA SCITXDA // SCITXB// ---------------------------------- // 闪存 1 1 1 // SCI-A 1 1 0 // SPI-A 1 0 1 // I2C-A 1 0 0 // eCAN-A 0 1 1 // Saram 0 1 0 <-"boot to SARAM" // OTP 0 0 1 // I/0 0 0 0 // // //说明: // //通道 A0被永久转换并记录在缓冲区(SampleTable) // //打开 SampleTable 的存储器窗口以观察缓冲区 //运行一段时间并停止并查看表内容。 // // 观察变量: // SampleTable -转换值的日志。 // //########################################################################################################################## // //原始来源:S.S. // //$TI 发行版:DSP280x C/C++头文件 V1.70 $ //$发行 日期:2009年7月27日$ //############################################################################ #include "DSP280x_Device.h" // DSP280x 头文件包含文件 #include "DSP280x_examples.h"// DSP280x 示例包含文件 // ADC 启动参数 #define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*4) = 12.5MHz //对于60MHz 器件:HSPCLK = 60/(2*4) = 7.5MHz #define ADC_CKPS 0x1 // ADC 模块时钟= HSPCLK/2*ADC_CKPS = 12.5MHz/(1*2)= 6.25MHz //对于60MHz 器件:ADC 模块 clk = 7.5MHz/(1*2) = 3.75MHz #define ADC_SHCLK 0x0 // ADC 模块周期中的 S/H 宽度 = 16个 ADC 时钟 #define AVG 2048 //平均采样限制 #define zOffset 0x00 //平均零偏移 #define BUF_SIZE 2048 //样本缓冲区大小 //此示例的全局变量 uint16 SampleTable[BUF_SIZE]; uint16 j = 0; uint16 i = 0; main () { //步骤1。 初始化系统控制: // PLL、看门狗、启用外设时钟 //此示例函数位于 DSP280x_sysctrl.c 文件中。 InitSysCtrl(); //此示例的特定时钟设置: EALLOW; SysCtrlRegs.HISPCP。all = ADC_MODCLK;// HSPCLK = SYSCLKOUT/ADC_MODCLK EDIS; //步骤2。 初始化 GPIO: //此示例函数位于 DSP280x_GPIO.c 文件中, //说明了如何将 GPIO 设置为其默认状态。 // InitGpio();//跳过此示例 //步骤3。 清除所有中断并初始化 PIE 矢量表: //禁用 CPU 中断 DINT; //将 PIE 控制寄存器初始化为默认状态。 //默认状态是禁用所有 PIE 中断并 清除标志//。 //此函数位于 DSP280x_PIECTRL.c 文件中。 InitPieCtrl(); //禁用 CPU 中断并清除所有 CPU 中断标志: IER = 0x0000; IFR = 0x0000; //使用指向 shell 中断 //服务例程(service routinese, ISR)的指针初始化 PIE 矢量表。 //这将填充整个表,即使在 本示例中未使用中断//也是如此。 这对于调试很有用。 //可以在 DSP280x_DefaultIsr.c 中找到 shell ISR 例程 //此函数可在 DSP280x_PieVect.c 中找到 InitPieVectTable(); //步骤4. 初始化所有器件外设: //此函数可在 DSP280x_InitPeripherals.c 中找到// InitPeripherals ();//此示例不需要 InitAdc ();//对于此 示例,初始化 ADC //特定的 ADC 设置: AdcRegs.ADCTRRegs.bit.ACQ_PS = ADCCTL3.ADCMS.ADCLA.ADCL1.ADCLA.ADCL1.ADCLA.ADCLK ;ADCLA.ADCLA.ADCL1.ADCL1.ADCL1.ADCLA.ADCLK = ADCL1.ADCLA.ADCL1.ADCLA.ADCL1.ADCL1.ADCLK;ADCLA.ADCL1.ADCL1.ADCL1.ADCL1.ADCLK = ADCLA.ADCL1.ADCL1.ADCL1.ADCL // 1级联模式 AdcRegs.ADCMAXCONV.ALL=0x0007; AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x0; AdcRegs.ADCCHSELSEQ1.bit.ADCSEV03 = 0x0;ADCCONV03 = 0x0;ADCCONV02.ADCSEQ1 = 0x0 AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x0; AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x0; AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x0; AdcRegs.ADCCHSELSEQ2.bit.V07 = 0x0;ADCCONVRL.RL.RL.RCOM.R0=0x0;ADCCHSELSEQ1.bit.RCONVR0=0x0;ADCON1.RCOL.R1.R1.R1.R1. //设置连续运行 //步骤5。 特定于用户的代码、启用中断: //清除( i=0;i >4); SampleTable[i++]=((AdcRegs.ADCRESULT2>>4)); SampleTable[i++]=(AdcRegs.ADCRESULT4>4)); SampleTable[i++]=(AdcRegs.ADCRESULT6>4)); SampleTable[i++]=(AdcRegs.ADCRESULT8>4)); SampleTable[i++]=(AdcRegs.ADCRESULT10>4)); SampleTable[i++]=(AdcRegs.ADCRESULT12>4)); SampleTable[i]=(AdcRegs.ADCRESULT14>4)); } }//==================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== //不再需要。 //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

