hal.c

来自「USB U 盘 开发的源代码」· C语言 代码 · 共 99 行

C
99
字号
#include "common.h"
#include "HAL.H"

extern unsigned char xdata DBUF[BUFFER_LENGTH];

unsigned char SL811Read(unsigned char a)
{  
	unsigned char nVal;
	unsigned char xdata *exAddress;
	exAddress = SL811_ADDR_PORT;
	SL811_CS=1;
	*exAddress=a;
	exAddress=SL811_DATA_PORT;
	nVal = *exAddress;
	SL811_CS=0;
	return nVal;
}

void SL811Write(unsigned char a, unsigned char d)
{  
	unsigned char xdata *exAddress;
	exAddress = SL811_ADDR_PORT;
	SL811_CS=1;
	*exAddress=a;
	exAddress=SL811_DATA_PORT;
	*exAddress = d;
	SL811_CS=0;
}

void SL811BufRead(unsigned char addr, unsigned char *s, unsigned char c)
{	
	unsigned char i;
	unsigned char xdata *exAddress;
	exAddress=SL811_ADDR_PORT;
	SL811_CS=1;
	*exAddress = addr;
	exAddress=SL811_DATA_PORT;
	for(i=0;i<c;i++)
		{
		*s++ = *exAddress;
		}
	SL811_CS=0;
}

void SL811BufWrite(unsigned char addr, unsigned char *s, unsigned char c)
{	
	unsigned char xdata *exAddress;
	exAddress = SL811_ADDR_PORT;
	
	SL811_CS=1;
	*exAddress = addr;
	exAddress=SL811_DATA_PORT;
	while (c--) 
		{
		*exAddress = *s++;
		}
	SL811_CS=0;
	
}

void ComSendByte(unsigned char c)
{
	SBUF=c;
	while(!TI);
	TI=0;
}

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

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

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

unsigned int LSwapINT16(unsigned short dData1,unsigned short dData2)
{
    unsigned int xdata 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 xdata dData;
    dData = ((dData4<<24)&0xff000000)|((dData3<<16)&0xff0000)|((dData2<<8)&0xff00)|(dData1&0xff);
	return dData;
}

⌨️ 快捷键说明

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