📄 ioport2程序.txt
字号:
#define IER0 *(int *)0x00
#define IFR0 *(int *)0x01
#define ST0_55 *(int *)0x02
#define ST1_55 *(int *)0x03
#define ST3_55 *(int *)0x04
#define ST0 *(int *)0x06
#define ST1 *(int *)0x07
#define AC0L *(int *)0x08
#define AC0H *(int *)0x09
#define AC0G *(int *)0x0A
#define AC1L *(int *)0xOB
#define AC1H *(int *)0x0C
#define AC1G *(int *)0x0D
#define T3_1 *(int *)0x0E
#define TRN0 *(int *)0x0F
#define AR0 *(int *)0x10
#define AR1 *(int *)0x11
#define AR2 *(int *)0x12
#define AR3 *(int *)0x13
#define AR4 *(int *)0x14
#define AR5 *(int *)0x15
#define AR6 *(int *)0x16
#define AR7 *(int *)0x17
#define SP *(int *)0x18
#define BK03 *(int *)0x19
#define BRC0 *(int *)0x1A
#define RSA0L *(int *)0x1B
#define REA0L *(int *)0x1C
#define PMST *(int *)0x1D
#define XPC *(int *)0x1E
#define T0 *(int *)0x20
#define T1 *(int *)0x21
#define T2 *(int *)0x22
#define T3 *(int *)0x23
#define AC2L *(int *)0x24
#define AC2H *(int *)0x25
#define AC2G *(int *)0x26
#define CDP *(int *)0x27
#define AC3L *(int *)0x28
#define AC3H *(int *)0x29
#define AC3G *(int *)0x2A
#define DPH *(int *)0x2B
#define MDP05 *(int *)0x2C
#define MDP67 *(int *)0x2D
#define DP *(int *)0x2E
#define PDP *(int *)0x2F
#define BK47 *(int *)0x30
#define BKC *(int *)0x31
#define BSA01 *(int *)0x32
#define BSA23 *(int *)0x33
#define BSA45 *(int *)0x34
#define BSA67 *(int *)0x35
#define BSAC *(int *)0x36
#define BIOS *(int *)0x37
#define TRN1 *(int *)0x38
#define BRC1 *(int *)0x39
#define BRS1 *(int *)0x3A
#define CSR *(int *)0x3B
#define RSA0H_1 *(int *)0x3C
#define RSA0L_1 *(int *)0x3D
#define REA0H *(int *)0x3E
#define REA0L_2 *(int *)0x3F
#define RSA1H *(int *)0x40
#define RSA1L *(int *)0x41
#define REA1H *(int *)0x42
#define REA1L *(int *)0x43
#define RPTC *(int *)0x44
#define IER1 *(int *)0x45
#define IFR1 *(int *)0x46
#define DBIER0 *(int *)0x47
#define DBIER1 *(int *)0x48
#define IVPD *(int *)0x49
#define IVPH *(int *)0x4A
#define ST2_55 *(int *)0x4B
#define SSP *(int *)0x4C
#define SP_1 *(int *)0x4D
#define SPH *(int *)0x4E
#define CDPH *(int *)0x4F
#define LED *(int *)0x400001
void interrupt tint( void );
void CLK_init( void );
void SDRAM_init( void );
void INTR_init( void );
void TIME_init(void);
void TMCR_Reset( void );
void SetDSPPLL(unsigned int uPLL);
#define SCANCODE_0 0x70
#define SCANCODE_1 0x69
#define SCANCODE_2 0x72
#define SCANCODE_3 0x7A
#define SCANCODE_4 0x6B
#define SCANCODE_5 0x73
#define SCANCODE_6 0x74
#define SCANCODE_7 0x6C
#define SCANCODE_8 0x75
#define SCANCODE_9 0x7D
#define SCANCODE_Del 0x49
#define SCANCODE_Enter 0x5A
#define SCANCODE_Plus 0x79
#define SCANCODE_Minus 0x7B
#define SCANCODE_Mult 0x7C
#define SCANCODE_Divid 0x4A
#define SCANCODE_Num 0x77
// emif --------------------------------------------------------
/*
#define EMIF_GCTL 0x01800000
#define EMIF_CE1 0x01800004
#define EMIF_CE0 0x01800008
#define EMIF_CE2 0x01800010
#define EMIF_CE3 0x01800014
#define EMIF_SDRAMCTL 0x01800018
#define EMIF_SDRAMTIM 0x0180001C
#define EMIF_SDRAMEXT 0x01800020
#define EMIF_CCFG 0x01840000;
*/
// interrupt --------------------------------------------------
/*
#define IMH (*(unsigned int *)0x19c0000)
#define IML (*(unsigned int *)0x19c0004)
*/
// timer -------------------------------------------------------
/*
#define TIMER1CTL (*(unsigned int *)0x01980000)
#define TIMER1PRD (*(unsigned int *)0x01980004)
*/
// McBSP0 ------------------------------------------------------
/*
#define SPCR0 (*(unsigned int *)0x018c0008)
#define PCR0 (*(unsigned int *)0x018c0024)
#define SPCR1 (*(unsigned int *)0x01900008)
#define PCR1 (*(unsigned int *)0x01900024)
*/
// ICETEK-VC5509-A -----------------------------------------------
#define LBDS (*((unsigned int *)0x400001))
#define DIPS (*(unsigned int *)0x400002)
// ICETEK-CTR --------------------------------------------------
#define CTRGR (*(unsigned int *)0x600800)
#define CTRKEY (*(unsigned int *)0x602800)
#define CTRCLKEY (*(unsigned int *)0x602801)
#define CTRLA (*(unsigned int *)0x602802)
#define CTRLR (*(unsigned int *)0x602803)
#define CTRLCDCMDR (*(unsigned int *)0x602800)
#define CTRLCDCR (*(unsigned int *)0x600801)
#define CTRLCDLCR (*(unsigned int *)0x602801)
#define CTRLCDRCR (*(unsigned int *)0x600802)
// Special values -----------------------------------------------
#define LCDCMDTURNON 0x3f
#define LCDCMDTURNOFF 0x3e
#define LCDCMDSTARTLINE 0xc0
#define LCDCMDPAGE 0xb8
#define LCDCMDVERADDRESS 0x40
// C6713DSP Registers ------------------------------------------
//cregister unsigned int IER,IFR,CSR,ICR,ISTP;
// Variables
unsigned char ledbuf[8],ledx[8];
unsigned char ledkey[10][8]=
{
{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0
{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1
{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2
{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},
{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},
{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},
{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},
{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}
};
#define nMusicNumber 52
unsigned int music[nMusicNumber][2]=
{
{101,1920},{121,1440},{114,480},{101,1920},{151,1920},
{151,480},{135,480},{121,480},{101,480},{114,960},{121,960},{135,3840},
{121,480},{114,480},{101,480},{91,480},{101,960},{101,960},
{76,1920},{101,1920},{114,960},{121,960},{135,1440},{151,480},{151,1920},{0,1920},
{101,1920},{121,1440},{114,480},{101,1920},{151,1920},
{151,480},{135,480},{121,480},{101,480},{114,960},{121,960},{135,3840},
{121,480},{114,480},{101,480},{91,480},{101,960},{101,960},
{76,1920},{101,1920},{114,960},{121,960},{135,1440},{151,480},{151,1920},{0,1920}
};
unsigned int pwm[8]={ 0x86,0x87,0x83,0x8b,0x89,0x8d,0x8c,0x8e };
unsigned char dbClearKey;
// Functions
void InitInterrupt(void); // 初始化中断
void InitCTR(); // 初始化ICETEK-CTR
void CloseCTR(); // 关闭ICETEK-CTR上各设备
void Delay(unsigned int nTime); // 延时子程序
void Delay1(unsigned int nTime); // 延时子程序(带LED显示刷新)
unsigned char GetKey(); // 读取键盘输入
void RefreshLEDArray(); // 刷新发光二极管阵列显示
void SetLEDArray(int nNumber); // 修改发光二极管阵列显示内容
char ConvertScanToChar(unsigned char cScanCode); // 将键盘扫描码转换成字符
void LCDCMD(unsigned char dbCommand); // 向液晶显示器发送命令
void LCDWriteLeft(unsigned char dbData); // 写液晶显示器左半屏
void LCDCLS(); // 清除液晶显示器显示
void TurnOnLCD(); // 打开液晶显示器
void CloseCTR()
{
CTRGR=0;
CTRLR=0; CTRLR=0x40;
CTRLR=0x0c0;
LCDCMD(LCDCMDTURNOFF);
dbClearKey=CTRCLKEY;
LBDS=0;
}
void LCDCMD(unsigned char dbCommand)
{
CTRLCDCMDR=dbCommand;
CTRLCDCR=0;
}
unsigned char GetKey()
{
unsigned char dbReturn;
dbReturn=CTRKEY;
dbClearKey=CTRCLKEY;
return dbReturn;
}
char ConvertScanToChar(unsigned char cScanCode)
{
char cReturn;
cReturn=0;
switch ( cScanCode )
{
case SCANCODE_0: cReturn='0'; break;
case SCANCODE_1: cReturn='1'; break;
case SCANCODE_2: cReturn='2'; break;
case SCANCODE_3: cReturn='3'; break;
case SCANCODE_4: cReturn='4'; break;
case SCANCODE_5: cReturn='5'; break;
case SCANCODE_6: cReturn='6'; break;
case SCANCODE_7: cReturn='7'; break;
case SCANCODE_8: cReturn='8'; break;
case SCANCODE_9: cReturn='9'; break;
case SCANCODE_Plus: cReturn='+'; break;
case SCANCODE_Minus: cReturn='-'; break;
}
return cReturn;
}
void InitCTR()
{
CTRGR=0; CTRGR=0x80; CTRGR=0;
CTRLR=0; CTRLR=0x40;
CTRLR=0x0c0;
LCDCMD(LCDCMDTURNOFF);
dbClearKey=CTRCLKEY;
LBDS=0;
}
void Delay(unsigned int nDelay)
{
int ii,jj,kk=0;
for ( ii=0;ii<nDelay;ii++ )
{
for ( jj=0;jj<1024;jj++ )
{
kk++;
}
}
}
void Delay1(unsigned int nDelay)
{
int ii,jj,kk=0;
for ( ii=0;ii<nDelay;ii++ )
{
for ( jj=0;jj<64;jj++ )
{
RefreshLEDArray();
kk++;
}
}
}
void RefreshLEDArray()
{
int i;
for ( i=0;i<8;i++ )
{
CTRGR=ledx[i];
CTRLA=ledbuf[i];
}
}
void SetLEDArray(int nNumber)
{
int i;
for ( i=0;i<8;i++ )
ledbuf[i]=~ledkey[nNumber][7-i];
}
void LCDWriteLeft(unsigned char dbData)
{
CTRLCDLCR=dbData;
CTRLCDCR=0;
}
void LCDWriteRight(unsigned char dbData)
{
CTRLCDRCR=dbData;
CTRLCDCR=0;
}
void TurnOnLCD()
{
LCDCMD(LCDCMDTURNON);
}
void LCDCLS()
{
int i,j;
LCDCMD(LCDCMDSTARTLINE);
for ( i=0;i<8;i++ )
{
LCDCMD(LCDCMDPAGE+i);
LCDCMD(LCDCMDVERADDRESS);
for ( j=0;j<64;j++ )
LCDWriteLeft(0);
LCDCMD(LCDCMDPAGE+i);
LCDCMD(LCDCMDVERADDRESS);
for ( j=0;j<64;j++ )
LCDWriteRight(0);
}
}
#define SCANCODE_0 0x70
#define SCANCODE_1 0x69
#define SCANCODE_2 0x72
#define SCANCODE_3 0x7A
#define SCANCODE_4 0x6B
#define SCANCODE_5 0x73
#define SCANCODE_6 0x74
#define SCANCODE_7 0x6C
#define SCANCODE_8 0x75
#define SCANCODE_9 0x7D
#define SCANCODE_Del 0x49
#define SCANCODE_Enter 0x5A
#define SCANCODE_Plus 0x79
#define SCANCODE_Minus 0x7B
#define SCANCODE_Mult 0x7C
#define SCANCODE_Divid 0x4A
#define SCANCODE_Num 0x77
main()
{
unsigned int uLED[4]={1,2,4,8}; //1=0001h,2=0010h,4=0100h,8=1000h
int i;
CLK_init();
SDRAM_init();
while ( 1 )
{
for ( i=0;i<4;i++ )
{
LBDS=uLED[i];
Delay(1024);
}
for ( i=3;i>=0;i-- )
{
LBDS=uLED[i];
Delay(1024);
}
}
}
void CLK_init()
{
ioport unsigned int *clkmd;
clkmd=(unsigned int *)0x1c00;
*clkmd =0x2033; // 0x2033就是工作频率不变;//0x2413;// 144MHz=0x2613
}
void SDRAM_init( void )
{
ioport unsigned int *ebsr =(unsigned int *)0x6c00;
ioport unsigned int *egcr =(unsigned int *)0x800;
ioport unsigned int *emirst=(unsigned int *)0x801;
//ioport unsigned int *emibe =(unsigned int *)0x802;
ioport unsigned int *ce01 =(unsigned int *)0x803;
//ioport unsigned int *ce02 =(unsigned int *)0x804;
//ioport unsigned int *ce03 =(unsigned int *)0x805;
ioport unsigned int *ce11 =(unsigned int *)0x806;
//ioport unsigned int *ce12 =(unsigned int *)0x807;
//ioport unsigned int *ce13 =(unsigned int *)0x808;
ioport unsigned int *ce21 =(unsigned int *)0x809;
//ioport unsigned int *ce22 =(unsigned int *)0x80A;
//ioport unsigned int *ce23 =(unsigned int *)0x80B;
ioport unsigned int *ce31 =(unsigned int *)0x80C;
//ioport unsigned int *ce32 =(unsigned int *)0x80D;
//ioport unsigned int *ce33 =(unsigned int *)0x80E;
ioport unsigned int *sdc1 =(unsigned int *)0x80F;
//ioport unsigned int *sdper =(unsigned int *)0x810;
//ioport unsigned int *sdcnt =(unsigned int *)0x811;
ioport unsigned int *init =(unsigned int *)0x812;
ioport unsigned int *sdc2 =(unsigned int *)0x813;
*ebsr = 0x221;
*egcr = 0x220;
*egcr = 0x220;
*ce01 = 0x3000;
*ce11 = 0x1fff;
*ce21 = 0x1fff;
*ce31 = 0x1fff;
*emirst = 0;
*sdc1 = 0x5958;
*sdc2 = 0x38F;
*init = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -