led.c
来自「可以在ARM 架构下运行的的 DOS (和MS-DOS兼容),非常难得的一个源码」· C语言 代码 · 共 73 行
C
73 行
/*************************************Seekfor Embedded DOS v1.0***************************************************
****** *** ***** ****** **** ****** v1.0
** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** **
** ***** ***** ** **** ******* ***** ******** ***** ** ** ** ** **
*** ** ** ** ** ** ** ** ** ** *** ** ** ** ** ** ** ** ***
** ******* ******* **** ** ** ** ** ******* ** ** ** ** **
** ** ** ***** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
****** ***** ***** ******** ****** ***** ****** ***** ****** **** ******
<1)基本描述
Seekfor Embedded DOS v1.0是嵌入式的一个类DOS操作系统,支持FAT16/FAT32.
<2)文件描述
文件名:led.c
功能:LED驱动
<3>如需更新版本软件,请联系:
QQ:82054357
Mail:Seek_for@163.com
MSN:sfrad32@hotmail.com
**************************************************************************************************************/
#ifndef __LED_C__
#define __LED_C__
#include "dos.h"
#if(SUPPORT_LED==1)
static char get_led_status()
{
return rGPBDAT&0x03;
}
static void set_led_status(char ch)
{
rGPBDAT&=~0x03;
rGPBDAT|=ch&0x03;
}
void*LED_Open(char*name,char*mode)
{
FILE*p=(FILE*)Device_CommonOpen(name,mode);
if(!p) return (void*)0;
rGPBCON&=~0x0f;
rGPBCON|=0x05;
return(void*)p;
}
int LED_Read(void*buff,int size)
{
BYTE*ptr=(BYTE*)buff;
while(size--)
{
*ptr++=get_led_status();
}
return 0;
}
int LED_Write(void*buff,int size)
{
BYTE*ptr=(BYTE*)buff;
while(size--)
{
set_led_status(*ptr++);
}
return 0;
}
#endif
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?