⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c5402def.h

📁 学习DSP TMS320VC5402最好的入门例程
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __C5402DEF_H
#define __C5402DEF_H

typedef volatile unsigned int TI_REG;

/*-------------------------------------------
  以下是增订部分,去除(1<<15)编译警告
-------------------------------------------*/
#define __0                  (TI_REG)0 
#define __1                  (TI_REG)1 
#define __2                  (TI_REG)2 
#define __3                  (TI_REG)3 
#define __4                  (TI_REG)4 
#define __5                  (TI_REG)5 
#define __6                  (TI_REG)6 
#define __7                  (TI_REG)7 
#define __8                  (TI_REG)8 
#define __9                  (TI_REG)9 
#define __10                 (TI_REG)10
#define __11                 (TI_REG)11
#define __12                 (TI_REG)12
#define __13                 (TI_REG)13
#define __14                 (TI_REG)14
#define __15                 (TI_REG)15
#define Reset() asm(" TRAP 0");//DSP复位
/*-----------------------------------------*/


#define Disable() asm(" ssbx intm");//关中断
#define Enable()  asm(" rsbx intm");//开中断

#define   nop()   asm(" nop");//空操作
#define __nop()   asm(" nop");//空操作
#define _nop_()   asm(" nop");//空操作

#define idle()    asm(" IDLE 1");

#define idle1()   asm(" IDLE 1");//CPU暂停,CPU时钟停止\
                                ;//非屏蔽内部硬件中断\
                                ;//非屏蔽外部硬件中断
#define idle2()   asm(" IDLE 2");//CPU时钟停止
#define idle3()   asm(" IDLE 3");//外设时钟停止

void _delay_loop_(unsigned int);
void _delay_loop_(unsigned int val)
{
	unsigned int i;
    for(i = 0; i < (val * 10); i ++);
}

/*----------------------------------------
        基本位定义
----------------------------------------*/
#define BIT0                0//
#define BIT1                1//
#define BIT2                2//
#define BIT3                3//
#define BIT4                4//
#define BIT5                5//
#define BIT6                6//
#define BIT7                7//
#define BIT8                8//
#define BIT9                9//
#define BIT10              10//
#define BIT11              11//
#define BIT12              12//
#define BIT13              13//
#define BIT14              14//
#define BIT15              15//

/*---------------------------------------
        GPIOCR位定义
----------------------------------------*/
#define GPIOCR_DIR0         0//I/O引脚方向位0
#define GPIOCR_DIR1         1//I/O引脚方向位1
#define GPIOCR_DIR2         2//I/O引脚方向位2
#define GPIOCR_DIR3         3//I/O引脚方向位3
#define GPIOCR_DIR4         4//I/O引脚方向位4
#define GPIOCR_DIR5         5//I/O引脚方向位5
#define GPIOCR_DIR6         6//I/O引脚方向位6
#define GPIOCR_DIR7         7//I/O引脚方向位7

#define GPIOCR_TOUT1       15//定时器1输出使能位

/*---------------------------------------
        GPIOSR位定义
----------------------------------------*/
#define GPIOSR_IO0          0//I/O引脚状态位0
#define GPIOSR_IO1          1//I/O引脚状态位1
#define GPIOSR_IO2          2//I/O引脚状态位2
#define GPIOSR_IO3          3//I/O引脚状态位3
#define GPIOSR_IO4          4//I/O引脚状态位4
#define GPIOSR_IO5          5//I/O引脚状态位5
#define GPIOSR_IO6          6//I/O引脚状态位6
#define GPIOSR_IO7          7//I/O引脚状态位7

/*---------------------------------------
        HPIC位定义
----------------------------------------*/
#define HPIC_DSPINT         1//主机处理器到C5402的中断(R-0)
#define HPIC_HINT           2//C5402到主机处理器的中断引脚状态(R/W-1)
#define HPIC_HRDY           3//HRDY引脚状态(R)
#define HPIC_FETCH          4//主机取数据请求(R-0)
#define HPIC_XHPIA          5//扩展地址使能(R)

/*---------------------------------------
        CLKMD位定义
----------------------------------------*/
#define CLKMD_PLLSTATUS     0//PLL状态位
#define CLKMD_PLLNDIV       1//PLL时钟发生器选择
#define CLKMD_PLLONOFF      2//PLL开关位
#define CLKMD_PLLCOUNT      3//PLL计数值3~10
#define CLKMD_PLLDIV       11//PLL乘法系数(除法器)
#define CLKMD_PLLMUL       12//PLL乘法系数(乘法器)12~15

/*---------------------------------------
        PMST位定义
----------------------------------------*/
#define PMST_SST            0//存储饱和位
#define PMST_SMUL           1//乘法饱和位
#define PMST_CLKOFF         2//CLKOUT禁止位
#define PMST_DROM           3//数据ROM位
#define PMST_AVIS           4//地址可见性模式位
#define PMST_OVLY           5//RAM重叠位
#define PMST_MP_MC          6//微处理器/微计算机模式位
#define PMST_IPTR           7//中断向量指针7~15

/*---------------------------------------
        TCR位定义
----------------------------------------*/
#define TCR_TDDR            0//定时器分频系数0~3
#define TCR_TSS             4//定时器停止状态
#define TCR_TRB             5//定时器重载
#define TCR_PSC             6//计数器预定标计数器6~9
#define TCR_FREE           10//
#define TCR_SOFT           11//

/*---------------------------------------
        IFR位定义
----------------------------------------*/
#define IFR_INT0            0//外部中断0
#define IFR_INT1            1//外部中断1
#define IFR_INT2            2//外部中断2
#define IFR_TINT0           3//定时中断0

#define IFR_BRINT0          4//McBSP接收中断0
#define IFR_BXINT0          5//McBSP发送中断0

#define IFR_TINT1           7//定时中断1

#define IFR_INT3            8//外部中断3
#define IFR_HPINT           9//主机接口中断
#define IFR_BRINT1         10//McBSP接收中断1
#define IFR_BXINT1         11//McBSP发送中断1

#define IFR_DMAC0           6//DMA通道中断0
#define IFR_DMAC1           7//DMA通道中断1

#define IFR_DMAC2          10//DMA通道中断2
#define IFR_DMAC3          11//DMA通道中断3
#define IFR_DMAC4          12//DMA通道中断4
#define IFR_DMAC5          13//DMA通道中断5

/*---------------------------------------
        IMR位定义
----------------------------------------*/
#define IMR_INT0            0//外部中断0
#define IMR_INT1            1//外部中断1
#define IMR_INT2            2//外部中断2
#define IMR_TINT0           3//定时中断0

#define IMR_BRINT0          4//McBSP接收中断0
#define IMR_BXINT0          5//McBSP发送中断0

#define IMR_TINT1           7//定时中断1

#define IMR_INT3            8//外部中断3
#define IMR_HPINT           9//主机接口中断
#define IMR_BRINT1         10//McBSP接收中断1
#define IMR_BXINT1         11//McBSP发送中断1

#define IMR_DMAC0           6//DMA通道中断0
#define IMR_DMAC1           7//DMA通道中断1

#define IMR_DMAC2          10//DMA通道中断2
#define IMR_DMAC3          11//DMA通道中断3
#define IMR_DMAC4          12//DMA通道中断4
#define IMR_DMAC5          13//DMA通道中断5


/*---------------------------------------
        ST0位定义
----------------------------------------*/
#define ST0_DP              0//数据存储器页面指针0~8,共9位
#define ST0_OVB             9//累加器B溢出标志位
#define ST0_OVA            10//累加器A溢出标志位
#define ST0_C              11//进位或不借位标志
#define ST0_TC             12//测试/控制标志位
#define ST0_ARP            13//辅助寄存器(AR)指针13~15,共3位

/*---------------------------------------
        ST1位定义
----------------------------------------*/
#define ST1_ASM             0//累加器模式位0~4
#define ST1_CMPT            5//修改模式位
#define ST1_FRCT            6//小数方式位
#define ST1_C16      		7//双16位/双精度算术模式位
#define ST1_SXM     	    8//符号扩展模式位
#define ST1_OVM      		9//溢出模式位
#define ST1_INTM    	   11//中断模式位
#define ST1_HM             12//保持模式位
#define ST1_XF             13//XF引脚状态位
#define ST1_CPL            14//相对直接寻址译码器模式位
#define ST1_BRAF           15//块重复操作标志位

/*---------------------------------------
        BSCR位定义
----------------------------------------*/
#define BSCR_EXIO           0//外部总线接口关断位
#define BSCR_BH             1//总线保持位BH
#define BSCR_HBH            2//主机接口总线保持位

#define BSCR_IPIRQ          8//CPU处理器之间的中断请求位
#define BSCR_PSDS          11//程序空间读/数据空间读访问
#define BSCR_BNKCMP        12//分区比较位12~15

/*---------------------------------------
        DMPREC位定义
----------------------------------------*/
#define DMPREC_DE           0//DMA通道使能0~5
#define DMPREC_DE0          0//DMA0通道使能
#define DMPREC_DE1          1//DMA1通道使能
#define DMPREC_DE2          2//DMA2通道使能
#define DMPREC_DE3          3//DMA3通道使能
#define DMPREC_DE4          4//DMA4通道使能
#define DMPREC_DE5          5//DMA5通道使能

#define DMPREC_INTOSEL      6//中断多路控制位6~7

#define DMPREC_DPRC         8//DMA通道优先级控制位0~5
#define DMPREC_DPRC0        8//DMA0通道优先级控制
#define DMPREC_DPRC1        9//DMA1通道优先级控制
#define DMPREC_DPRC2       10//DMA2通道优先级控制
#define DMPREC_DPRC3       11//DMA3通道优先级控制
#define DMPREC_DPRC4       12//DMA4通道优先级控制
#define DMPREC_DPRC5       13//DMA5通道优先级控制
#define DMPREC_FREE        15//

/*---------------------------------------
        SPC位定义
----------------------------------------*/
#define SPC_DLB             1//数据回送模式位
#define SPC_FO              2//数据格式位
#define SPC_FSM             3//帧同步模式位
#define SPC_MCM             4//时钟模式位
#define SPC_TXM             5//发送模式位
#define SPC_XRST            6//发送器复位
#define SPC_RRST            7//接收器复位
#define SPC_IN0             8//输入0
#define SPC_IN1             9//输入1
#define SPC_RRDY           10//接收准备位
#define SPC_XRDY           11//发送准备位
#define SPC_XSREMPTY       12//发送移位寄存器空
#define SPC_RSRFULL        13//接收移位寄存器满
#define SPC_FREE           14//
#define SPC_SOFT           15//


/*---------------------------------------
        BSPCE位定义
----------------------------------------*/
#define BSPCE_CLKDV         0//内部发送时钟分频系数0~4
#define BSPCE_FSP           5//帧同步信号极性设置
#define BSPCE_CLKP          6//时钟极性设置
#define BSPCE_FE            7//格式扩展
#define BSPCE_FIG           8//帧同步信号忽略
#define BSPCE_PCM           9//脉冲编码模式
#define BSPCE_ABU          10//自动缓冲单元控制10~15

#define BSPCE_BXE          10//自动缓冲发送使能
#define BSPCE_XH           11//发送缓冲半满
#define BSPCE_HALTX        12//自动缓冲发送停止位
#define BSPCE_BRE          13//自动缓冲接收使能
#define BSPCE_RH           14//接收缓冲半满
#define BSPCE_HALTR        15//自动缓冲接收停止位



/*---------------------------------------
        SPCR1位定义
----------------------------------------*/
#define SPCR1_RRST     		0//接收器复位
#define SPCR1_RRDY     		1//接收准备好
#define SPCR1_RFULL    		2//接收移位寄存器满
#define SPCR1_RSYNCERR 		3//接收同步错
#define SPCR1_RINTM    		4//接收中断模式4~5
#define SPCR1_ABIS     		6//ABIS模式
#define SPCR1_DXENA    		7//DX使能
#define SPCR1_CLKSTP  	   11//时钟停止模式11~12
#define SPCR1_RJUST        13//接收符号扩展及判别模式13~14
#define SPCR1_DLB          15//数字循环返回

/*---------------------------------------
        SPCR2位定义
----------------------------------------*/
#define SPCR2_XRST          0//发送器复位
#define SPCR2_XRDY     		1//发送准备好
#define SPCR2_XEMPTY   		2//发送移位寄存器空
#define SPCR2_XSYNCERR 		3//发生同步错误
#define SPCR2_XINTM    		4//发送中断模式4~5
#define SPCR2_GRST     		6//采样率发生器复位
#define SPCR2_FRST     		7//帧同步发生器复位
#define SPCR2_SOFT     		8//软件模式
#define SPCR2_FREE     		9//自由运行模式

/*---------------------------------------
        PCR位定义
----------------------------------------*/
#define PCR_CLKRP      		0//接收时钟极性
#define PCR_CLKXP      		1//发送时钟极性
#define PCR_FSRP       		2//接收帧同步脉冲极性
#define PCR_FSXP       		3//发送帧同步脉冲极性
#define PCR_DR_STAT    		4//DR引脚状态位
#define PCR_DX_STAT    		5//DX引脚状态位
#define PCR_CLKS_STAT  		6//CLKS引脚状态位

#define PCR_CLKRM      		8//接收器时钟模式位
#define PCR_CLKXM      		9//发送器时钟模式位
#define PCR_FSRM      	   10//接收帧同步模式位
#define PCR_FSXM      	   11//发送帧同步模式位
#define PCR_RIOEN     	   12//接收通用I/O模式位

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -