📄 gpio_led.c
字号:
/*
*********************************************************
* Copyright (c)
* All rights reserved.
*
* 文件名称:Gpio_led.c
* 文件标识:
* 摘 要:S3C2410 io Test Program
* 当前版本:1.0
* 作 者:刘征
* 完成日期:2005.4.3
*
* 取代版本:
* 作 者:
* 完成日期:
*********************************************************
*/
/*
*********************************************************
* 头文件
*********************************************************
*/
#include <string.h>
#include "def.h"
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
/*
*********************************************************
* 函数原型
*********************************************************
*/
void Led_Display(int data);
void Led_Close(void);
//Active is low.(LED On)
// GPF8 GPF7 GPF6 GPF5
//nLED_4 nLED3 nLED_2 nLED_1
/*
*********************************************************
* 函数介绍:本函数是Gpio_led驱动点亮程序。
* 输入参数:data--被点亮的LED的编号
* 输出参数:无
* 返回值 :无
*********************************************************
*/
void Led_Display(int data)
{
//将要点亮的LED所用的IO口拉低,即该LED被点亮
switch(data)
{
case '1':
rGPBDAT = ((rGPBDAT | 0x7ff) & (~0x020));
break;
case '2':
rGPBDAT = ((rGPBDAT | 0x7ff) & (~0x040));
break;
case '3':
rGPBDAT = ((rGPBDAT | 0x7ff) & (~0x080));
break;
case '4':
rGPBDAT = ((rGPBDAT | 0x7ff) & (~0x100));
break;
case '5':
rGPBDAT = ((rGPBDAT | 0x7ff) & (~0x1e0));
break;
default:
rGPBDAT = (rGPBDAT | 0x7ff); //其他值就熄灭所有LED
break;
}
}
/*
*********************************************************
* 函数介绍:本函数是熄灭led程序。
* 输入参数:无
* 输出参数:无
* 返回值 :无
*********************************************************
*/
void Led_Close(void)
{
//熄灭所有LED
rGPBDAT = (rGPBDAT | 0x7ff);
}
/*
*********************************************************
* 函数介绍:本函数是Gpio_led测试程序。
* 输入参数:无
* 输出参数:无
* 返回值 :无
*********************************************************
*/
void Test_Gpio(void)
{
volatile unsigned int save_gpb;
int extNum;
save_gpb = rGPBCON;//保存GPB口原设置
Uart_Printf("[GpIO Test through PB 5/6/7/8]\n");
Uart_Printf("1.D1 2.D2 3.D3 4.D4 5.ALL\n");
Uart_Printf("Select the LED NUM.\n");
extNum=Uart_Getch();
Uart_Printf("The LED NUM is : =%c\n",extNum);
rGPBCON = (rGPBCON & 0x3ff00)|(1<<16)|(1<<14)|(1<<12)|(1<<10); //PB5/6/7/8= outport
Led_Display(extNum);
if(extNum == '5')
{
Uart_Printf("See board all led is lighted!\n");
}
else
{
Uart_Printf("See board the %c led is lighted!\n",extNum);
}
Uart_Printf("Press any key to exit.\n");
Uart_Getch();
Led_Close();
rGPBCON = save_gpb;//还原GPB口设置
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -