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

📄 spi_test.c

📁 DSP2812资料,包括原理图,测试程序,使用说明,jjzhang166@163.com
💻 C
字号:
#include "DSP28_Device.h"
unsigned int *LedReg   = (unsigned int *)0x23FF;
unsigned int *Led8Lock = (unsigned int *)0x25FF;

const	Uint16	LedCode[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};
const	Uint16	SpiCode[]={0xC0C0,0XF9F9,0XA4A4,0XB0B0,0X9999,0X9292,0X8282,0XF8F8,0X8080,0X9090,0X8888,0X8383,0XC6C6,0XA1A1,0X8686,0X8E8E,0XFFFF};
Uint16	LedCount =0;
Uint16	Led8Count=0;

interrupt void ISRTimer0(void);
interrupt void ISRTimer2(void);


void main(void)
{
	/*初始化系统*/
	InitSysCtrl();
	/* 关中断 */
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	/* 初始化PIE控制寄存器 */
	InitPieCtrl();
	/* 初始化PIE参数表 */
	InitPieVectTable();	
	/* 初始化外设寄存器 */
	InitPeripherals();
   	InitSpi();
   	
	EALLOW;	
	PieVectTable.TINT0 = &ISRTimer0;
	PieVectTable.TINT2 = &ISRTimer2;
	EDIS;   
    
	/*设置CPU*/
	ConfigCpuTimer(&CpuTimer0, 10, 1000000);	
	ConfigCpuTimer(&CpuTimer2, 50, 1000000);	

 	StartCpuTimer0();
 	StartCpuTimer2();

    /*开中断*/
	IER |= M_INT14;    
	IER |= M_INT1;
	PieCtrl.PIEIER1.bit.INTx7=1;
	

	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM

	*LedReg = 0xFF;
	*Led8Lock = 0xB7;
	LedCount= 0;
	if(Spi_TxReady() == 1)
		{
			SpiaRegs.SPITXBUF = 0XFFFF;
			*Led8Lock = 0xB7;
			*Led8Lock = 0xBF;
		}
	
	for(;;);

} 	

interrupt void ISRTimer0(void)
{
	PieCtrl.PIEACK.bit.ACK7=1;
	*LedReg = LedCode[LedCount];
	LedCount++;
	if (LedCount>8)		LedCount=0;
	
} 	

interrupt void ISRTimer2(void)
{

	if(Spi_TxReady() == 1)
		{
			SpiaRegs.SPITXBUF = SpiCode[Led8Count];
			*Led8Lock = 0xB7;
			*Led8Lock = 0xBF;			
		}
	Led8Count++;	
	if (Led8Count>16)	Led8Count=0;
	
} 	

//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

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