//===========================================================================
//文件名称：light.c
//功能概要：小灯构件源文件
//版权所有：苏州大学飞思卡尔嵌入式中心(sumcu.suda.edu.cn)
//更新记录：2012-10-09   V1.0     初始版本
//===========================================================================

#include "light.h"  

//============================================================================
//函数名称：light_init
//功能概要：指示灯驱动初始化
//函数参数： port_pin：指示灯所在的端口和引脚，赋值方法参见light.h
//          state：灯的初始状态。取值为:LIGHT_ON/LIGHT_OFF（light.h宏定义）
//函数返回：无
//============================================================================
void light_init(LWGPIO_PIN_ID port_pin,uint_8 state)
{
	LWGPIO_STRUCT handle;    //GPIO寄存器操作句柄	
	//初始化指示灯引脚数据结构及初始状态
	lwgpio_init(&handle, port_pin, LWGPIO_DIR_OUTPUT, state);
	//设定引脚复用功能为GPIO
	lwgpio_set_functionality(&handle,(uint32_t) 0x01);
}

//============================================================================
//函数名称：light_control
//功能概要：控制指示灯亮暗
//函数参数： port_pin：指示灯所在的端口和引脚，赋值方法参见light.h
//          state：灯的初始状态。取值为:LIGHT_ON/LIGHT_OFF（light.h宏定义）
//函数返回：无
//============================================================================
void light_control(LWGPIO_PIN_ID port_pin,uint_8 state)
{
	LWGPIO_STRUCT handle;	 //GPIO寄存器操作句柄
	//初始化小灯引脚数据结构
	lwgpio_init(&handle, port_pin, LWGPIO_DIR_NOCHANGE, LWGPIO_VALUE_NOCHANGE);
	//设置GPIO引脚状态
	lwgpio_set_value(&handle, state);
}

//============================================================================
//函数名称：light_change
//功能概要：切换指示灯亮暗
//函数参数： port_pin：指示灯所在的端口和引脚，赋值方法参见light.h
//函数返回：无
//============================================================================
void light_change(LWGPIO_PIN_ID port_pin)
{
	LWGPIO_STRUCT handle;	 //GPIO寄存器操作句柄
    //初始化小灯引脚数据结构
	lwgpio_init(&handle, port_pin, LWGPIO_DIR_NOCHANGE, LWGPIO_VALUE_NOCHANGE);
	//翻转GPIO引脚状态
	lwgpio_toggle_value(&handle);
}
