#include "DSP28x_Project.h" #include "DSP2803x_Adc.h" #include "DSP2803x_GlobalPrototypes.h" #include "DSP2803x_CpuTimers.h" #include "DSP2803x_XIntrupt.h" #include "DSP2803x_SysCtrl.h" #include "DSP2803x_DevEmu.h" #include "DSP2803x_EPwm_defines.h"是什么
时间: 2023-07-19 15:06:33 浏览: 260
这是一些头文件的引用,用于在 Texas Instruments 公司的 DSP2803x 系列数字信号处理器(DSP)上进行编程。其中包括 DSP28x_Project.h、DSP2803x_Adc.h、DSP2803x_GlobalPrototypes.h、DSP2803x_CpuTimers.h、DSP2803x_XIntrupt.h、DSP2803x_SysCtrl.h、DSP2803x_DevEmu.h 和 DSP2803x_EPwm_defines.h。这些头文件定义了各种寄存器、变量和函数,用于访问和操作 DSP 的各个部分,例如 ADC、定时器、中断控制器、系统控制器、调试模块和 PWM 控制器等。
相关问题
F28335的<bsp_includes.h>文件内容
`<bsp_includes.h>`文件通常是一个包含其他头文件的文件,用于方便地包含一组相关的头文件。对于F28335,它可能包含以下头文件:
```c
#ifndef BSP_INCLUDES_H_
#define BSP_INCLUDES_H_
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
#include "DSP2833x_GlobalPrototypes.h" // Prototypes for global functions within the
// .c files.
#endif /* BSP_INCLUDES_H_ */
```
其中,`DSP2833x_Device.h`是DSP2833x器件的头文件,包含了器件的寄存器定义、位字段、函数原型等等;`DSP2833x_Examples.h`是一些DSP2833x例程使用的头文件;`DSP2833x_GlobalPrototypes.h`包含了一些全局函数的原型声明,用于在其他源文件中引用这些函数。这些头文件都是TI官方提供的,可以从TI官网下载。
dsp28335芯片 adc中断方式采样代码
以下是基于DSP28335芯片的ADC中断方式采样代码示例:
```c
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "DSP2833x_GlobalPrototypes.h"
Uint16 AdcBuf[8];
volatile Uint16 SampleFlag;
interrupt void AdcIsr(void)
{
AdcBuf[0] = AdcResult.ADCRESULT0;
AdcBuf[1] = AdcResult.ADCRESULT1;
AdcBuf[2] = AdcResult.ADCRESULT2;
AdcBuf[3] = AdcResult.ADCRESULT3;
AdcBuf[4] = AdcResult.ADCRESULT4;
AdcBuf[5] = AdcResult.ADCRESULT5;
AdcBuf[6] = AdcResult.ADCRESULT6;
AdcBuf[7] = AdcResult.ADCRESULT7;
SampleFlag = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
void AdcInit(void)
{
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;
AdcRegs.ADCTRL1.bit.RESET = 1;
AdcRegs.ADCTRL1.bit.SUSMOD = 3;
AdcRegs.ADCTRL1.bit.ACQ_PS = 9;
AdcRegs.ADCTRL1.bit.CPS = 1;
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0;
AdcRegs.ADCTRL3.bit.ADCPWDN = 1;
AdcRegs.ADCTRL3.bit.ADCCLKPS = 7;
AdcRegs.ADCTRL3.bit.SMODE_SEL = 1;
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 7;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0;
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 1;
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 2;
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 3;
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 4;
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 5;
AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 6;
AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 7;
AdcRegs.ADCTRL1.bit.INTPULSEPOS = 1;
PieVectTable.ADCINT1 = &AdcIsr;
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx1 = 1;
AdcRegs.ADCTRL1.bit.ADCENABLE = 1;
EDIS;
}
void main(void)
{
InitSysCtrl();
EINT;
InitPieCtrl();
InitPieVectTable();
AdcInit();
for (;;) {
while (SampleFlag == 0)
;
SampleFlag = 0;
// 此处可进行数据处理
}
}
```
在这个例子中,我们使用了ADC中断来采样8个通道的数据,并将其存储在AdcBuf数组中。每次ADC中断被触发,SampleFlag标志会被设置为1,然后在主循环中进行数据处理。注意,在AdcInit函数中需要配置ADC的各项参数,使其符合实际需求。
阅读全文