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

📄 gpio.c

📁 嵌入式linux(arm9)的平台下
💻 C
字号:


#include "gpio.h"
#include "example.h"

#ifdef GPIO_2

static AU1X00_GPIO2 * const gpio2 = (AU1X00_GPIO2 *)KSEG1(GPIO2_PHYS_ADDR);

int gpioRead(int signal)
{
	signal -= 200;
	gpio2->dir &= ~(0x01 << signal);						//Set GPIO to input
	printf("State: %X\n", gpio2->pinstate);
	return ((gpio2->pinstate >> signal) & 0x01);
}

void gpioWrite(int signal, int value)
{
	signal -= 200;
	if(value)
		gpio2->dir &= ~(0x01 << signal);					//Let pull-up resistor drive pin high (tristate pin)
	else
		gpio2->output = (GPIO2_OUTPUT_ENABLE << signal);	//Output a Zero
}

#else	//GPIO_1

static AU1X00_GPIO1 * const gpio1 = (AU1X00_GPIO1 *)KSEG1(GPIO1_PHYS_ADDR);

int gpioRead(int signal)
{
//	gpio1->trioutclr |= (0x01 << signal);
//	printf("State (%X): %X\n", &gpio1->pinstaterd, gpio1->pinstaterd);
	return ((gpio1->pinstaterd >> signal) & 0x01);
}

void gpioWrite(int signal, int value)
{
	if(value)
		gpio1->trioutclr |= (0x01 << signal);		//Let pull-up resister assert pin
	else
		gpio1->outputclr |= (0x01 << signal);		//Output a Zero
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -