簡簡單單----一個TMS320F28035的LED驅動程序

/************************************
    標題:LEDs.h
    軟件平臺:CCS v5.2
    硬件平臺:畢設控制板
    主頻:60M
    歡迎
    http://greatech.taobao.com
    author:小船
    data:2013-02-23
*************************************/
#ifndef LEDS_H_
#define LEDS_H_

#include "PeripheralHeaderIncludes.h"

#define no_config_leds_by_funtion

#define LED0 0x00000200
#define LED1 0x00020000
#define LED2 0x00040000
#define LED3 0x02000000

#define LEDA_on(LED_num)           GpioDataRegs.GPACLEAR.all = LED_num
#define LEDA_off(LED_num)          GpioDataRegs.GPASET.all = LED_num
#define LEDA_toggle(LED_num)       GpioDataRegs.GPATOGGLE.all = LED_num

#define LEDB_on(LED_num)           GpioDataRegs.GPBCLEAR.all = LED_num
#define LEDB_off(LED_num)          GpioDataRegs.GPBSET.all = LED_num
#define LEDB_toggle(LED_num)       GpioDataRegs.GPBTOGGLE.all = LED_num

#ifdef config_leds_by_funtion
enum LED_action {on, off, toggle};
void LEDs(Uint32 LED_num, enum LED_action action);
#endif

void LEDs_init();

#endif /* LEDS_H_ */

/************************************
    標題:LEDs.c
    軟件平臺:CCS v5.2
    硬件平臺:畢設控制板
    主頻:60M
    歡迎光臨
  http://greatech.taobao.com
    author:小船
    data:2013-02-23
*************************************/
#include "LEDs.h"

void LEDs_init()
{
	EALLOW;
	//使能上拉電阻
	GpioCtrlRegs.GPBPUD.bit.GPIO41 = 1;
	GpioCtrlRegs.GPAPUD.bit.GPIO25 = 1;
	GpioCtrlRegs.GPAPUD.bit.GPIO18 = 1;
	GpioCtrlRegs.GPAPUD.bit.GPIO17 = 1;

	//選擇GPIO功能
	GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 0x0;
	GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 0x0;
	GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0x0;
	GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0x0;

	//方向
	GpioCtrlRegs.GPBDIR.bit.GPIO41 = 1;
	GpioCtrlRegs.GPADIR.bit.GPIO25 = 1;
	GpioCtrlRegs.GPADIR.bit.GPIO17 = 1;
	GpioCtrlRegs.GPADIR.bit.GPIO18 = 1;

	EDIS;
	LEDB_off(LED0);
	LEDA_off(LED1|LED2|LED3);
}

#ifdef config_leds_by_funtion
void LEDs(Uint32 LED_num, enum LED_action action)
{
	if(LED_num !=  )
	{
		switch (action)
		{
			case on:{
				GpioDataRegs.GPBCLEAR.all = LED_num;
				break;
			}

			case off:{
				GpioDataRegs.GPBSET.all = LED_num;
				break;
			}

			case toggle:{
				GpioDataRegs.GPBTOGGLE.all = LED_num;
				break;
			}
		}
	}
	else
	{
		switch (action)
		{
			case on:{
				GpioDataRegs.GPACLEAR.all = LED_num;
				break;
			}

			case off:{
				GpioDataRegs.GPASET.all = LED_num;
				break;
			}

			case toggle:{
				GpioDataRegs.GPATOGGLE.all = LED_num;
				break;
			}
		}
	}
}
#endif



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章