这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » C5402DEF.H(DSP菜鸟提高版)

共1条 1/1 1 跳转至

C5402DEF.H(DSP菜鸟提高版)

工程师
2015-01-09 14:41:05     打赏
#ifndef __C5402DEF_H
#define __C5402DEF_H

typedef volatile unsigned int TI_REG;

#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时钟停止\
                                ;//非屏蔽内部硬件中断\r
        ;//非屏蔽外部硬件中断
#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模式位
#define PCR_XIOEN     13//发送通用I/O模式位

/*---------------------------------------
        RCR1位定义
----------------------------------------*/
#define RCR1_RWDLEN1   5//5~7
#define RCR1_RFRLEN1   8//8~14

/*---------------------------------------
        RCR2位定义
----------------------------------------*/
#define RCR2_RDATDLY   0//0~1
#define RCR2_RFIG      2//
#define RCR2_RCOMPAND  3//3~4
#define RCR2_RWDLEN2   5//5~6
#define RCR2_RFRLEN2   8//8~14
#define RCR2_RPHASE   15//接收相位

/*---------------------------------------
        XCR1位定义
----------------------------------------*/
#define XCR1_RWDLEN1   5//5~7
#define XCR1_RFRLEN1   8//8~14

/*---------------------------------------
        XCR2位定义
----------------------------------------*/
#define XCR2_RDATDLY   0//0~1
#define XCR2_RFIG      2//
#define XCR2_RCOMPAND  3//3~4
#define XCR2_RWDLEN2   5//5~6
#define XCR2_RFRLEN2   8//8~14
#define XCR2_RPHASE   15//发送相位

/*---------------------------------------
        SRGR1位定义
----------------------------------------*/
#define SRGR1_CLKGDV   0//0~7
#define SRGR1_FWID     8//8~15

/*---------------------------------------
        SRGR2位定义
----------------------------------------*/
#define SRGR2_FRER     0//0~11
#define SRGR2_FSGM    12//
#define SRGR2_CLKSM   13//
#define SRGR2_CLKSP   14//
#define SRGR2_GSYNC   15//

/*---------------------------------------
        MCR1位定义
----------------------------------------*/
#define MCR1_RMCM      0//
#define MCR1_RCBLK     2//2~4
#define MCR1_RPABLK    5//5~6
#define MCR1_RPBBLK    7//7~8

/*---------------------------------------
        MCR2位定义
----------------------------------------*/
#define MCR2_XMCM      0//
#define MCR2_XCBLK     2//2~4
#define MCR2_XPABLK    5//5~6
#define MCR2_XPBBLK    7//7~8

/*---------------------------------------
        RCERA位定义
----------------------------------------*/
#define RCERA_0        0
#define RCERA_15      15


/*---------------------------------------
        RCERB位定义
----------------------------------------*/
#define RCERB_0        0
#define RCERB_15      15

/*---------------------------------------
        XCERA位定义
----------------------------------------*/
#define XCERA_0        0
#define XCERA_15      15


/*---------------------------------------
        XCERB位定义
----------------------------------------*/
#define XCERB_0        0
#define XCERB_15      15


/*---------------------------------------
        子McBSP地址定义
----------------------------------------*/
#define SPCR1           0x00;//串行接口控制寄存器1
#define SPCR2   0x01;//串行接口控制寄存器2
#define RCR1   0x02;//接收控制寄存器1
#define RCR2   0x03;//接收控制寄存器2
#define XCR1   0x04;//发送控制寄存器1
#define XCR2   0x05;//发送控制寄存器2
#define SRGR1   0x06;//采样率发生器寄存器1
#define SRGR2   0x07;//采样率发生器寄存器2
#define MCR1   0x08;//多通道寄存器1
#define MCR2   0x09;//多通道寄存器2
#define RCERA   0x0a;//接收通道使能寄存器段A
#define RCERB   0x0b;//接收通道使能寄存器段B
#define XCERA   0x0c;//发送通道使能寄存器段A
#define XCERB   0x0d;//发送通道使能寄存器段B
#define PCR    0x0e;//引脚控制寄存器

/*---------------------------------------
        子DMA地址定义
----------------------------------------*/
#define DMSRC0   0x00;//DMA通道0源地址寄存器
#define DMDST0   0x01;//DMA通道0目的地址寄存器
#define DMCTR0   0x02;//DMA通道0单元计数寄存器
#define DMSFC0   0x03;//DMA通道0同步事件和帧寄存器
#define DMMCR0   0x04;//DMA通道0传输模式控制寄存器

#define DMSRC1   0x05;//DMA通道1源地址寄存器
#define DMDST1   0x06;//DMA通道1目的地址寄存器
#define DMCTR1   0x07;//DMA通道1单元计数寄存器
#define DMSFC1   0x08;//DMA通道1同步事件和帧寄存器
#define DMMCR1   0x09;//DMA通道1传输模式控制寄存器

#define DMSRC2   0x0a;//DMA通道2源地址寄存器
#define DMDST2   0x0b;//DMA通道2目的地址寄存器
#define DMCTR2   0x0c;//DMA通道2单元计数寄存器
#define DMSFC2   0x0d;//DMA通道2同步事件和帧寄存器
#define DMMCR2   0x0e;//DMA通道2传输模式控制寄存器

#define DMSRC3   0x0f;//DMA通道3源地址寄存器
#define DMDST3   0x10;//DMA通道3目的地址寄存器
#define DMCTR3   0x11;//DMA通道3单元计数寄存器
#define DMSFC3   0x12;//DMA通道3同步事件和帧寄存器
#define DMMCR3   0x13;//DMA通道3传输模式控制寄存器

#define DMSRC4   0x14;//DMA通道4源地址寄存器
#define DMDST4   0x15;//DMA通道4目的地址寄存器
#define DMCTR4   0x16;//DMA通道4单元计数寄存器
#define DMSFC4   0x17;//DMA通道4同步事件和帧寄存器
#define DMMCR4   0x18;//DMA通道4传输模式控制寄存器

#define DMSRC5   0x19;//DMA通道5源地址寄存器
#define DMDST5   0x1a;//DMA通道5目的地址寄存器
#define DMCTR5   0x1b;//DMA通道5单元计数寄存器
#define DMSFC5   0x1c;//DMA通道5同步事件和帧寄存器
#define DMMCR5   0x1d;//DMA通道5传输模式控制寄存器

#define DMSRCP   0x1e;//DMA源程序页地址(公用的通道)
#define DMDSTP   0x1f;//DMA目的程序页地址(公用的通道)
  
#define DMIDX0   0x20;//DMA单元变址寄存器0
#define DMIDX1   0x21;//DMA单元变址寄存器1
#define DMFRI0   0x22;//DMA帧变址寄存器0
#define DMFRI1   0x23;//DMA帧变址寄存器1
#define DMGSA   0x24;//DMA全局源地址重载寄存器
#define DMGDA   0x25;//DMA全局目的地址重载寄存器
#define DMGCR   0x26;//DMA全局计数重载寄存器
#define DMGFR   0x27;//DMA全局帧计数重载寄存器

typedef volatile struct _TI_SREG {
//0x0000
  TI_REG IMR;//中断屏蔽寄存器(0x00)
  TI_REG IFR;//中断标志寄存器(0x01)
  TI_REG Reserved0[4]; //保留4个空位
  TI_REG ST0;//状态寄存器0(0x06)
  TI_REG ST1;//状态寄存器1(0x07)
  TI_REG AL;//累加器A低16位(0x08)
  TI_REG AH;//累加器A高16位(0x09)
  TI_REG AG;//累加器A保护位(0x0a)
  TI_REG BL;//累加器B低16位(0x0b)
  TI_REG BH;//累加器B高16位(0x0c)
  TI_REG BG;//累加器B保护位(0x0d)
  TI_REG TREG;//临时寄存器(0x0e)
  TI_REG TRN;//发送寄存器(0x0f)
//0x0010
  TI_REG AR0;//辅助寄存器0(0x10)
  TI_REG AR1;//辅助寄存器1(0x11)
  TI_REG AR2;//辅助寄存器2(0x12)
  TI_REG AR3;//辅助寄存器3(0x13)
  TI_REG AR4;//辅助寄存器4(0x14)
  TI_REG AR5;//辅助寄存器5(0x15)
  TI_REG AR6;//辅助寄存器6(0x16)
  TI_REG AR7;//辅助寄存器7(0x17)
  TI_REG SP;//堆栈指针(0x18)
  TI_REG BK;//缓冲大小寄存器(0x19)
  TI_REG BRC;//块重复计数器(0x1a)
  TI_REG RSA;//块重复起始地址寄存器(0x1b)
  TI_REG REA;//块重复结束地址寄存器(0x1c)
  TI_REG PMST;//处理器工作模式状态寄存器(0x1d)
  TI_REG XPC;//程序计数器扩展寄存器(0x1e)
  TI_REG Reserved1[1]; //保留1个空位(0x1f)
//0x0020
  TI_REG DRR20;//数据接收寄存器2(0x20)
  TI_REG DRR10;//数据接收寄存器1(0x21)
  TI_REG DXR20;//数据发送寄存器2(0x22)
  TI_REG DXR10;//数据发送寄存器1(0x23)
  TI_REG TIM;//定时器寄存器     (0x24)
  TI_REG PRD;//定时器周期寄存器 (0x25)
  TI_REG TCR;//定时器控制寄存器 (0x26)
  TI_REG Reserved2[1]; //保留1个空位(0x27)
  TI_REG SWWSR;//软件等待状态寄存器(0x28)
  TI_REG BSCR;//分区状态寄存器(0x29)
  TI_REG Reserved3[1]; //保留1个空位(0x2a)
  TI_REG SWCR;//软件等待状态控制寄存器(0x2b)
  TI_REG HPIC;//HPI控制寄存器(0x2c)
  TI_REG Reserved4[3]; //保留3个空位(0x2d~0x2f)
//0x0030
  TI_REG TIM1;//定时器寄存器1(0x30)
  TI_REG PRD1;//定时器周期寄存器1(0x31)
  TI_REG TCR1;//定时器控制寄存器1(0x32)
  TI_REG Reserved5[5]; //保留5个空位(0x33~37)
  TI_REG SPSA0;//子区寻址寄存器0(0x38)
  TI_REG SPSD0;//子区数据寄存器0(0x39)
  TI_REG Reserved6[2]; //保留2个空位(0x3a~0x3b)
  TI_REG GPIOCR;//GPIO控制寄存器(0x3c)
  TI_REG GPIOSR;//GPIO状态寄存器(0x3d)
  TI_REG Reserved7[2]; //保留2个空位(0x3e,0x3f)
//0x0040
  TI_REG DRR21;//数据接收寄存器2(0x40)
  TI_REG DRR11;//数据接收寄存器1(0x41)
  TI_REG DXR21;//数据发送寄存器2(0x42)
  TI_REG DXR11;//数据发送寄存器1(0x43)
  TI_REG Reserved8[4]; //保留4个空位(0x44~0x47)
  TI_REG SPSA1;//子区寻址寄存器1(0x48)
  TI_REG SPSD1;//子区数据寄存器1(0x49)
  TI_REG Reserved9[10]; //保留10个空位(0x4a)
  TI_REG DMPREC;
  //DMA通道优先级和使能控制寄存器(0x54)
  TI_REG DMSA;//DMA子区寻址寄存器(0x55)
  TI_REG DMSDI;//带子区寻址自动增加的DMA子区数据寄存器(0x56)
  TI_REG DMSDN;//子区数据寄存器(0x57)
  TI_REG CLKMD;//时钟模式寄存器(0x58)
  TI_REG Reserved10[7]; //保留7个空位(0x59~0x5f)
}TI_SREG, *TI_PSREG;

#define TI_BASE_SREG  ((TI_SREG *)  0x0000)//定义硬件结构指针(硬件地址)
const TI_PSREG SREG = TI_BASE_SREG;//定义全局结构指针变量REGS

/*--------------------------------------------------------------------------
应用举例:
  SREG->IMR = 0x0000;
  SREG->IFR = 0xffff;
  SREG->PMST = (0x1ff << PMST_IPTR) |  \
               (1 << PMST_MP_MC) | (1 << PMST_OVLY) | (1 << PMST_CLKOFF);
  SREG->IMR = (1 << IMR_TINT0);//允许TINT0中断
  Enable();//开中断
  for(;;) {
    SREG->ST1 ^= (1 << ST1_XF);
  }
---------------------------------------------------------------------------*/

typedef volatile struct _TI_McBSP0 {
  TI_REG DRR2;//数据接收寄存器2(0x20)
  TI_REG DRR1;//数据接收寄存器1(0x21)
  TI_REG DXR2;//数据发送寄存器2(0x22)
  TI_REG DXR1;//数据发送寄存器1(0x23)
  TI_REG Reserved[20]; //保留20个空位
  TI_REG SPSA;//子区寻址寄存器(0x38)
  TI_REG SPSD;//子区数据寄存器(0x39)
}TI_McBSP0, *TI_PMcBSP0;

#define TI_BASE_McBSP0  ((TI_McBSP0 *)  0x0020)//定义硬件结构指针(硬件地址)
const TI_PMcBSP0 McBSP0 = TI_BASE_McBSP0;//定义全局结构指针变量McBSP0


typedef volatile struct _TI_McBSP1 {
  TI_REG DRR2;//数据接收寄存器2(0x40)
  TI_REG DRR1;//数据接收寄存器1(0x41)
  TI_REG DXR2;//数据发送寄存器2(0x42)
  TI_REG DXR1;//数据发送寄存器1(0x43)
  TI_REG Reserved[4]; //保留20个空位
  TI_REG SPSA;//子区寻址寄存器(0x48)
  TI_REG SPSD;//子区数据寄存器(0x49)
}TI_McBSP1, *TI_PMcBSP1;

#define TI_BASE_McBSP1  ((TI_McBSP1 *)  0x0040)//定义硬件结构指针(硬件地址)
const TI_PMcBSP1 McBSP1 = TI_BASE_McBSP1;//定义全局结构指针变量McBSP1


/*--------------------------------------------------------------------------
应用举例:
  McBSP0->DXR10 = 0xaa;//向串口0数据发送寄存器1发送数据0xaa
  McBSP0->SPSA0 = SPCR1;//设置子地址(串行接口控制寄存器1)
  McBSP0->SPSD0 = 0x00;//SPCR1 = 0x00//向串口1串行接口控制寄存器1发送命令0x00
---------------------------------------------------------------------------*/


typedef volatile struct _TI_DMA {
  TI_REG DMPREC;//DMA通道优先级和使能控制寄存器(0x54)
  TI_REG DMSA;//DMA子区寻址寄存器(0x55)
  TI_REG DMSDI;//带子区寻址自动增加的DMA子区数据寄存器(0x56)
  TI_REG DMSDN;//子区数据寄存器(0x57)
}TI_DMA, *TI_PDMA;

#define TI_BASE_DMA  ((TI_DMA *)  0x0054)//定义硬件结构指针(硬件地址)
const TI_PDMA DMA = TI_BASE_DMA;//定义全局结构指针变量DMA


typedef volatile struct _TI_TIMER {
  TI_REG TIM;//定时器寄存器
  TI_REG PRD;//定时器周期寄存器
  TI_REG TCR;//定时器控制寄存器
}TI_TIMER, *TI_PTIMER;

#define TI_BASE_TIMER0  ((TI_TIMER *)  0x0024)//定义硬件结构指针(硬件地址)
#define TI_BASE_TIMER1  ((TI_TIMER *)  0x0030)//定义硬件结构指针(硬件地址)
const TI_PTIMER TIMER0 = TI_BASE_TIMER0;//定义全局结构指针变量TIMER0
const TI_PTIMER TIMER1 = TI_BASE_TIMER1;//定义全局结构指针变量TIMER1

/*--------------------------------------------------------------------------
应用举例:
  SREG->IMR = 0x0000;
  SREG->IFR = 0xffff;
  TIMER0->PRD = 250;//设置定时周期
  TIMER0->TCR &= ~(1 << TCR_TSS);//启动定时器0
  SREG->IMR = (1 << IMR_TINT0);//允许TINT0中断
  Enable();//开中断
---------------------------------------------------------------------------*/

#endif  // __C5402DEF_H

 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]