📄 gpio.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 + -