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

📄 gpio_led.c

📁 ARM编程 控制目标板LED灯程序 s3c2410
💻 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 + -