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

📄 ps2c.c

📁 基于TMS320LF2407A的SPI模块编程
💻 C
字号:
#include "LF2407REGS.h"
#include "Decode.c"
#define uchar unsigned char 
#define uint unsigned int 
	
//#include "scancodes.h"
//unsigned int spibuf = 0;
//unsigned int spibuf_fan=0;
//unsigned int  SPI_rxbuf[100];
unsigned int SPI_rxbufindex;
unsigned char SPI_rxbufindex1;
void SPIInit(void)
{
	asm("  SETC INTM");
	SPICCR = 0x4A;  //SPI SW RESET = 0;CLOCK POLARITY = 1;LENTH = 11;
	SPICTL = 0x0B;  //OVERRUN INT ENA = 1;CLOCK PHASE = 1;TALK = 1;SPI INT ENA = 1;
	SPISTS = 0xFF;  //CLEAR SPISTS;
	SPIPRI = 0x30;  //SPI PRIORITY = 1;CLOCK POLARITY = 0;LENTH = 11;
	SPICCR = 0xCA;  //SPI SW RESET = 1;
	asm("  CLRC INTM");
}

void DSPInit(void)
{
	asm("  SETC INTM");
	MCRB = 0x3C;  //I/O port = SPI function;
	IMR  = 0x11;   //open INT5 and INT1;
	SCSR1=0x81FE;
	asm("  CLRC INTM");
}	
void interrupt nothing()
{return;}

uint vert_byte(uint word)
{
	uint i,j;
	uint Ttemp,wordL,wordH;
	wordL=0;
	wordH=0;
	for(i=0,j=1;i<4;i++,j++)
	{
		Ttemp=word&(0x01<<i);
		wordL=wordL|(Ttemp<<(9-2*j));
	}
	for(i=4,j=1;i<8;i++,j++)
	{
		Ttemp=word&(0x01<<i);
		wordH=wordH|(Ttemp>>(2*j-1));
	}
	word=wordL|wordH;
	return(word);
}
void interrupt spiint()
{
	
	if(PIVR==5)  //SPI interrupt 
	{
		if(SPISTS&0x40)  //SPI int flag
		//SPI_rxbufindex =SPIRXBUF & 0xffff;
		SPI_rxbufindex = vert_byte(((SPIRXBUF & 0x03fc)>>2));
		//while(SPI_rxbufindex!=0x00f0)
		SPI_rxbufindex1=Decode(SPI_rxbufindex);
	}
	
	
}
void main(void)
{


	DSPInit();
	SPIInit();
//	serial_init (SPI_rxbufindex1);
//	putbyte()  
	while(1)
		
		SPITXBUF = 0XFFFF;
}

⌨️ 快捷键说明

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