📄 ramtest.c
字号:
#include "DSP28_Device.h"
#include "ext_inf.h"
const Uint16 LedCode[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};
unsigned int *ExRamStart = (unsigned int *)0x100000;
Uint16 LedCount;
Uint16 Led_Flag;
void SendData(Uint16 data);
interrupt void ISRTimer0(void);
void main(void)
{
Uint16 i;
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE*/
InitPieCtrl();
/*初始化PIE中断矢量表*/
InitPieVectTable();
/*初始化外设*/
InitPeripherals();
EALLOW;
PieVectTable.TINT0 = &ISRTimer0;
EDIS;
/*设置CPU*/
ConfigCpuTimer(&CpuTimer0, 100, 100000);
*LedReg = 0xFF;
*Led8Lock = 0x01;
SendData(0xFF);
for(i = 0; i < 0xFFFF; i++)
{
*(ExRamStart + i) = 0x5555;
if(*(ExRamStart + i) != 0x5555)
{
while(1);
}
}
for(i = 0; i < 0xFFFF; i++)
{
*(ExRamStart + i) = 0xAAAA;
if(*(ExRamStart + i) != 0xAAAA)
{
while(1);
}
}
StartCpuTimer0();
/*开中断*/
IER |= M_INT1;
PieCtrl.PIEIER1.bit.INTx7=1;
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
for(;;);
}
void SendData(Uint16 data)
{
Uint16 i,Temp;
Temp = 0x80;
for (i=0;i<8;i++)
{
if ((data & Temp)==0) ClrData;
else SetData;
Temp >>= 1;
ClrClk;
SetClk;
}
*Led8Lock = 0x00;
*Led8Lock = 0x01;
SetData;
}
interrupt void ISRTimer0(void)
{
PieCtrl.PIEACK.bit.ACK1=1;
*LedReg = LedCode[LedCount];
LedCount++;
if (LedCount>=8) LedCount=0;
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -