gpio.c
来自「au1200下的boot代码」· C语言 代码 · 共 47 行
C
47 行
#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 + =
减小字号Ctrl + -
显示快捷键?