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

📄 hal.c

📁 使用SL811芯片的USB_FAT文件系统源代码
💻 C
字号:
#define DELAY1MS 	862			//ram速度
#include "common.h"
#include "HAL.H"

#define  USBRAMMS 	2900			//ram的USB延时时间单位速度
#define  USBFLASHMS 	1500		//FLASH的USB延时时间单位

//extern unsigned char DBUF[BUFFER_LENGTH];

int delayalltime;

unsigned char SL811Read(unsigned char a)
{
	*(volatile unsigned char *)SL811_ADDR_PORT=a;
	return *(volatile unsigned char *)SL811_DATA_PORT;
}

void SL811Write(unsigned char a, unsigned char d)
{
	*(volatile unsigned char *)SL811_ADDR_PORT=a;
	*(volatile unsigned char *)SL811_DATA_PORT=d;
}

void SL811BufRead(unsigned char addr, unsigned char *s, unsigned char c)
{	
	unsigned char i;
	volatile unsigned char *exAddress;
	
//	Uart_Printf("( ");
	exAddress=(volatile unsigned char *)SL811_ADDR_PORT;
	*exAddress = addr;
	exAddress=(volatile unsigned char *)SL811_DATA_PORT;
	for(i=0;i<c;i++)
		{
//		Uart_Printf("%02x ",*s);
		*s++ = *exAddress;
		}
//	Uart_Printf(")\n");
}

void SL811BufWrite(unsigned char addr, unsigned char *s, unsigned char c)
{	
	volatile unsigned char *exAddress;
	
//	Uart_Printf("[ ");
	exAddress = (volatile unsigned char *)SL811_ADDR_PORT;
	
	*exAddress = addr;
	exAddress = (volatile unsigned char *)SL811_DATA_PORT;
	while (c--) 
		{
//		Uart_Printf("%02x ",*s);
		*exAddress = *s++;
		}
//	Uart_Printf("]\n");
	
}

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;

	for(i=0; i<nFactor; i++)
	{
		int us=USBRAMMS;
		while(--us);
	}
}

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

⌨️ 快捷键说明

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