打印

TMS320F2833X/2823X头文件函数

[复制链接]
3039|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangmangui|  楼主 | 2014-4-10 22:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI提供的SPR530(C2833x/C2823x C/C++ 头文件和外设示例)使我们非常方便的使用2833X和2823X的外设。下面就它定义的函数加一个说明。

// $TI Release: DSP2833x Header Files V1.10 $
// $Release Date: February 15, 2008 $

//**************在DSP2833x_Adc.c中定义的,共1个函数**************************//
void InitAdc(void);//在DSP2833x_Adc.c中定义,初始化ADC,使能ADCCLK,调入ADC的出厂刻度数据,上电。

//**************在DSP2833x_DMA.c中定义的,共37个函数**************************//
void DMAInitialize(void);//执行DMA硬件复位,设置DMA不受仿真器的影响。。

// DMA Channel 1
void DMACH1AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
//设置DMA的源和目标
void DMACH1BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
//设置每次Burst的字节数、源地址增量、目标地址增量。注意对于28335,BYTE和WORD是一样的,都是16BIT。
void DMACH1TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
//设置每次传送包含多少个Burst、传送完毕发中断,源地址增量、目标地址增量
void DMACH1WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
//设置传送完毕的源地址和目标地址
void DMACH1ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
//设置DMA工作模式,包括触发源、是否使能触发源、是否使能oneshot模式、是否使能Continuous模式、是否使能外围设备同步、选择同步模式、溢出中断等。)
参数说明:
persel--选择触发源,值为下列选项
    DMA_SEQ1INT--------ADC
    DMA_SEQ2INT--------ADC
    DMA_XINT1  --------外部中断
    DMA_XINT2  --------外部中断
    DMA_XINT3  --------外部中断
    DMA_XINT4  --------外部中断
    DMA_XINT5  --------外部中断
    DMA_XINT6  --------外部中断
    DMA_XINT7  --------外部中断
    DMA_XINT13 --------外部中断
    DMA_TINT0  --------CPU时钟
    DMA_TINT1  --------CPU时钟
    DMA_TINT2  --------CPU时钟
    DMA_MXEVTA  --------McBSP-A
    DMA_MREVTA  --------McBSP-A
    DMA_MXREVTB --------McBSP-B
    DMA_MREVTB  --------McBSP-B
perinte--使能触发源,值为PERINT_DISABLE或PERINT_ENABLE
oneshot--使能oneshot模式,值为ONESHOT_DISABLE或ONESHOT_ENABLE。此模式下,一次触发完成全部burst。
cont--使能Continuous模式,值为CONT_DISABLE或CONT_ENABLE。此模式下,传送完毕后DMA重新被初始化,并等待触发源。
synce--使能外围设备同步,值为SYNC_DISABLE或SYNC_ENABLE。
syncsel--同步选择。值为SYNC_SRC或SYNC_DST。
ovrinte--使能溢出中断。值为OVRFLOW_DISABLE或OVEFLOW_ENABLE。
datasize--每次传送位数。值为SIXTEEN_BIT或THIRTYTWO_BIT。
chintmode--通道中断产生模式。CHINT_BEGIN:传送开始发中断。CHINT_END:传送结束发中断。
chinte--使能通道中断。值为CHINT_DISABLE或CHINT_ENABLE。
void StartDMACH1(void);
//启动DMACH1

//其它5个通道的DMA的函数功能含义是一样的
// DMA Channel 2
void DMACH2AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
void DMACH2BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
void DMACH2TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
void DMACH2WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
void DMACH2ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
void StartDMACH2(void);
// DMA Channel 3
void DMACH3AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
void DMACH3BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
void DMACH3TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
void DMACH3WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
void DMACH3ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
void StartDMACH3(void);
// DMA Channel 4
void DMACH4AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
void DMACH4BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
void DMACH4TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
void DMACH4WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
void DMACH4ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
void StartDMACH4(void);
// DMA Channel 5
void DMACH5AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
void DMACH5BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
void DMACH5TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
void DMACH5WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
void DMACH5ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
void StartDMACH5(void);
// DMA Channel 6
void DMACH6AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
void DMACH6BurstConfig(Uint16 bsize,Uint16 srcbstep, int16 desbstep);
void DMACH6TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
void DMACH6WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
void DMACH6ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
void StartDMACH6(void);

相关帖子

沙发
zhangmangui|  楼主 | 2014-4-10 22:55 | 只看该作者

//*************V1.10版中未发现DSP2833x_InitPeripherals.c文件******************//
void InitPeripherals(void);
//在DSP2833x_InitPeripherals.c中定义,但在V1.10版中未发现DSP2833x_InitPeripherals.c文件

//**************在DSP2833x_ECan.c中定义的,共6个函数**************************//
void InitECan(void);//初始化eCAN模块
void InitECana(void);//初始化eCAN-A模块
void InitECanb(void);//初始化eCAN-B模块
void InitECanGpio(void);//初始化GPIO管脚为eCAN功能管脚
void InitECanaGpio(void);//初始化GPIO管脚为eCAN-A功能管脚
void InitECanbGpio(void);//初始化GPIO管脚为eCAN-B功能管脚

//**************在DSP2833x_ECap.c中定义的,共8个函数**************************//
void InitECap(void);//初始化eCap模块,此函数在V1.10中未定义
void InitECapGpio(void);//初始化GPIO管脚为eCap功能管脚
void InitECap1Gpio(void);//初始化GPIO管脚为eCap1功能管脚
void InitECap2Gpio(void);//初始化GPIO管脚为eCap2功能管脚
void InitECap3Gpio(void);//初始化GPIO管脚为eCap3功能管脚
void InitECap4Gpio(void);//初始化GPIO管脚为eCap4功能管脚
void InitECap5Gpio(void);//初始化GPIO管脚为eCap5功能管脚
void InitECap6Gpio(void);//初始化GPIO管脚为eCap6功能管脚

//**************在DSP2833x_EPwm.c中定义的,共10个函数**************************//
void InitEPwm(void);//初始化ePwm模块,此函数在V1.10中未定义
void InitEPwmGpio(void);//初始化GPIO管脚为ePwm功能管脚
void InitEPwm1Gpio(void);//初始化GPIO管脚为ePwm1功能管脚
void InitEPwm2Gpio(void);//初始化GPIO管脚为ePwm2功能管脚
void InitEPwm3Gpio(void);//初始化GPIO管脚为ePwm3功能管脚
void InitEPwm4Gpio(void);//初始化GPIO管脚为ePwm4功能管脚
void InitEPwm5Gpio(void);//初始化GPIO管脚为ePwm5功能管脚
void InitEPwm6Gpio(void);//初始化GPIO管脚为ePwm6功能管脚
void InitEPwmSyncGpio(void);//初始化GPIO管脚为ePwm Synch功能管脚,在DSP2833x_GlobalPrototypes.h中未声明
void InitTzGpio(void);//初始化GPIO管脚为Trip Zone功能管脚


使用特权

评论回复
板凳
zhangmangui|  楼主 | 2014-4-10 22:59 | 只看该作者

//**************在DSP2833x_EQep.c中定义的,共4个函数**************************//
void InitEQep(void);//初始化ePwm模块,此函数在V1.10中未定义
void InitEQepGpio(void);//初始化GPIO管脚为eQep功能管脚
void InitEQep1Gpio(void);//初始化GPIO管脚为eQep1功能管脚
void InitEQep2Gpio(void);//初始化GPIO管脚为eQep2功能管脚

//**************在DSP2833x_I2C.c中定义的,共2个函数**************************//
void InitGpio(void);//初始化I2C模块,此函数在V1.10中未定义
void InitI2CGpio(void);//初始化GPIO管脚为I2C功能管脚

//**************在DSP2833x_Mcbsp.c中定义的,共20个函数**************************//
/*    其中两个为延时程序,内部使用。                                            */
// void InitMcbspGpio(void)在DSP2833x_GlobalPrototypes.h中未声明                */
// 调用了InitMcbspaGpio()和InitMcbspbGpio()                                 */
void InitMcbsp(void);//初始化Mcbsp模块,调用InitMcbspa()和InitMcbspb()
void InitMcbspa(void);//初始化Mcbsp-A模块
void InitMcbspaGpio(void);//初始化GPIO管脚为Mcbsp-A功能管脚
void InitMcbspa8bit(void);//设置发送和接收字长度为8bit
void InitMcbspa12bit(void);//设置发送和接收字长度为12bit
void InitMcbspa16bit(void);//设置发送和接收字长度为16bit
void InitMcbspa20bit(void);//设置发送和接收字长度为20bit
void InitMcbspa24bit(void);//设置发送和接收字长度为24bit
void InitMcbspa32bit(void);//设置发送和接收字长度为32bit
void InitMcbspb(void);//初始化Mcbsp-B模块
void InitMcbspbGpio(void);//初始化GPIO管脚为Mcbsp-B功能管脚
void InitMcbspb8bit(void);//设置发送和接收字长度为8bit
void InitMcbspb12bit(void);//设置发送和接收字长度为12bit
void InitMcbspb16bit(void);//设置发送和接收字长度为16bit
void InitMcbspb20bit(void);//设置发送和接收字长度为20bit
void InitMcbspb24bit(void);//设置发送和接收字长度为24bit
void InitMcbspb32bit(void);//设置发送和接收字长度为32bit

//**************在DSP2833x_PieCtrl.c中定义的,共2个函数**************************//
void EnableInterrupts(void);//使能PIE
void InitPieCtrl(void);//禁止PIE,清PIEIER和PIEIFR寄存器

//**************在DSP2833x_PieVect.c中定义的,共1个函数**************************//
void InitPieVectTable(void);//加载中断向量表,128*32bit。

//**************在DSP2833x_Sci.c中定义的,共5个函数**************************//
void InitSci(void);//初始化SCI模块,此函数在V1.10中未定义
void InitSciGpio(void);//初始化GPIO管脚为SCI功能管脚
void InitSciaGpio(void);//初始化GPIO管脚为SCI-A功能管脚
void InitScibGpio(void);//初始化GPIO管脚为SCI-B功能管脚
void InitScicGpio(void);//初始化GPIO管脚为SCI-C功能管脚

//**************在DSP2833x_Spi.c中定义的,共3个函数**************************//
void InitSpi(void);//初始化SPI模块,此函数在V1.10中未定义
void InitSpiGpio(void);//调用InitSpiaGpio();
void InitSpiaGpio(void);//初始化GPIO管脚为SPI功能管脚

//**************在DSP2833x_SWPrioritizedDefaultIsr.c中定义的,共80个函数**************************//
//定义了中断服务程序的结构,用户需将用户代码填入即可

//**************在DSP2833x_DSP2833x_SWPiroritizedPieVect.c中定义的,共1个函数**************************//
//void InitPieVectTable(void)//加载中断向量表,128*32bit。在DSP2833x_GlobalPrototypes.h中未声明

//**************在DSP2833x_DSP2833x_SysCtrl.c中定义的,共7个函数**************************//
void InitSysCtrl(void);
// 初始化系统控制寄存器到一个确定状态,关闭WDT,设置PLL的工作参数,设置外设时钟的预分频,使能外设时钟
void InitFlash(void);//初始化FLASH
void ServiceDog(void);//喂狗
void DisableDog(void);//关狗
void InitPll(Uint16 pllcr, Uint16 clkindiv);//设置PLL的工作参数,
void InitPeripheralClocks(void);//设置外设时钟的预分频,使能外设时钟
Uint16 CsmUnlock(void);//解密CSM保护,成功返回STATUS_SUCCESS,失败返回STATUS_FAIL

//**************在DSP2833x_Xintf.c中定义的,共3个函数**************************//
void InitXintf(void);//在DSP2833x_GlobalPrototypes.h中声明为void XintfInit(void);怀疑有BUG//
//初始化Xintf
void InitXintf16Gpio();//初始化GPIO管脚
void InitXintf32Gpio();//初始化GPIO管脚

//**************在DSP2833x_usDelay.asm中定义的,共1个函数**************************//
void DSP28x_usDelay(Uint32 Count);//延时函数,通过宏DELAY_US(A)来调用,A为时间(uS)

//**************在ADC_cal.asm中定义的,共1个函数**************************//
void ADC_cal (void);//加载ADC的出厂校正参数

//**************在DSP2833x_DBGIER.asm中定义的,共1个函数**************************//
void SetDBGIER(Uint16 dbgier);//在实时仿真下设置DBGIER寄存器

//**************在DSP2833x_MemCopy.c中定义的,共1个函数**************************//
void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr);
//参数为源起始地址、源结束地址和目标起始地址

//在DSP2833x_GlobalPrototypes.h中声明,未在V1.10版本中发现函数原型/////////
void InitXIntrupt(void);


使用特权

评论回复
地板
zhangmangui|  楼主 | 2014-4-10 22:59 | 只看该作者

//在DSP2833x_DisInt.asm中声明,共2个函数,未在DSP2833x_GlobalPrototypes.h中声明/
Uint16 DSP28x_DisableInt();//屏蔽可屏蔽中断,返回值为状态寄存器ST1的值
void DSP28x_RestoreInt(Uint16 Stat1);//恢复状态寄存器ST1的值,用于开可屏蔽中断

//**************在DSP2833x_DefaultIsr.c中定义的,共79个函数**************************//
//定义了中断服务程序的结构,用户需将用户代码填入即可

//在DSP2833x_CpuTimers.c中声明,共2个函数,在DSP2833x_CpuTimers.h中声明/
void InitCpuTimers(void);//初始化CPUTIMER
void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period);
//第一个参数是选用那个计数器。
//第二个参数是要知道SYSCLOCKout的频率,用来计算所需的周期值。
//第三个参数是中断周期(微妙)。

//**************在DSP2833x_Gpio.c中定义的,共1个函数**************************//
void InitGpio(void);//初始化GPIO管脚到确定状态


使用特权

评论回复
5
long009| | 2014-11-30 14:24 | 只看该作者
谢谢分享

使用特权

评论回复
6
haizhiyin| | 2014-12-16 16:39 | 只看该作者
请问版主,TI的官网在哪里下下载相应的头文件,方便给个链接吗?找了好久没找到

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎进入【TI DSP 论坛】 & 【DSP 技术】           TI忠诚粉丝!

935

主题

26376

帖子

588

粉丝