hal.c

来自「TMS2812实现U盘FAT文件系统C代码」· C语言 代码 · 共 87 行

C
87
字号
#include	"DSP28_Device.h"

extern unsigned char DBUF[BUFFER_LENGTH];

unsigned char SL811Read(unsigned char a)
{  
	unsigned char nVal;
	SL811_ADDR_PORT=a;
	nVal=SL811_DATA_PORT;
	nVal= nVal & 0xFF;	
	return nVal;
}

void SL811Write(unsigned char a, unsigned char d)
{  
	SL811_ADDR_PORT= a&0xff;
	SL811_DATA_PORT= d&0xff;	
}

void SL811BufRead(unsigned char addr, unsigned char *s, unsigned char c)
{	
	unsigned char i,temp;
	SL811_ADDR_PORT=addr;
	for(i=0;i<c;i++)
		{
		temp = SL811_DATA_PORT;
		temp = temp & 0xFF;
		*s++ = temp;		
		}	
}

void SL811BufWrite(unsigned char addr, unsigned char *s, unsigned char c)
{	
	unsigned char temp;
	
	SL811_ADDR_PORT=addr;
	while (c--) 
		{
		temp=*s++;
		SL811_DATA_PORT = temp & 0xFF;		
		}	
}

unsigned short WordSwap(unsigned short input)
{
	return(((input&0x00FF)<<8)|((input&0xFF00)>>8));
}

void DelayMs(unsigned int nFactor)
{
	unsigned char i;
	unsigned int j;

	for(i=0; i<nFactor; i++)
		{
		for(j=0;j<1000;j++)	j=j;		          
		}
}

unsigned long SwapINT32(unsigned long dData)
{
    dData = (dData&0xff)<<24|(dData&0xff00)<<8|(dData&0xff000000)>>24|(dData&0xff0000)>>8;
	return dData;
}

unsigned int SwapINT16(unsigned short dData)
{
    dData = (dData&0xff00)>>8|(dData&0x00ff)<<8;
	return dData;
}

unsigned int LSwapINT16(unsigned short dData1,unsigned short dData2)
{
    unsigned int dData;
    dData = ((dData2<<8)&0xff00)|(dData1&0x00ff);
	return dData;
}

unsigned long LSwapINT32(unsigned long dData1,unsigned long dData2,unsigned long dData3,unsigned long dData4)
{
    unsigned long dData;
    dData = ((dData4<<24)&0xff000000)|((dData3<<16)&0xff0000)|((dData2<<8)&0xff00)|(dData1&0xff);
	return dData;
}


⌨️ 快捷键说明

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