sdk:examples: update gpio
Signed-off-by: liangkangnan <liangkangnan@163.com>verilator
parent
6942faa82d
commit
280a548e62
|
@ -7,36 +7,36 @@
|
|||
|
||||
int main()
|
||||
{
|
||||
// IO7用作GPIO7
|
||||
pinmux_set_io7_func(IO7_GPIO7);
|
||||
// IO9用作GPIO9
|
||||
pinmux_set_io9_func(IO9_GPIO9);
|
||||
// gpio7输出模式
|
||||
gpio_set_mode(GPIO7, GPIO_MODE_OUTPUT);
|
||||
// gpio9输入模式
|
||||
gpio_set_mode(GPIO9, GPIO_MODE_INPUT);
|
||||
// gpio9双沿中断模式
|
||||
gpio_set_interrupt_mode(GPIO9, GPIO_INTR_DOUBLE_EDGE);
|
||||
// IO12用作GPIO12
|
||||
pinmux_set_io12_func(IO12_GPIO12);
|
||||
// IO1用作GPIO1
|
||||
pinmux_set_io1_func(IO1_GPIO1);
|
||||
// gpio12输出模式
|
||||
gpio_set_mode(GPIO12, GPIO_MODE_OUTPUT);
|
||||
// gpio1输入模式
|
||||
gpio_set_mode(GPIO1, GPIO_MODE_INPUT);
|
||||
// gpio1双沿中断模式
|
||||
gpio_set_interrupt_mode(GPIO1, GPIO_INTR_DOUBLE_EDGE);
|
||||
// 使能RVIC中断
|
||||
rvic_irq_enable(RVIC_GPIO9_INT_ID);
|
||||
// gpio9中断优先级为1
|
||||
rvic_set_irq_prio_level(RVIC_GPIO9_INT_ID, 1);
|
||||
rvic_irq_enable(RVIC_GPIO1_INT_ID);
|
||||
// gpio1中断优先级为1
|
||||
rvic_set_irq_prio_level(RVIC_GPIO1_INT_ID, 1);
|
||||
// 使能全局中断
|
||||
global_irq_enable();
|
||||
|
||||
while (1);
|
||||
}
|
||||
|
||||
// GPIO9中断处理函数
|
||||
void gpio9_irq_handler()
|
||||
// GPIO1中断处理函数
|
||||
void gpio1_irq_handler()
|
||||
{
|
||||
gpio_clear_intr_pending(GPIO9);
|
||||
rvic_clear_irq_pending(RVIC_GPIO9_INT_ID);
|
||||
gpio_clear_intr_pending(GPIO1);
|
||||
rvic_clear_irq_pending(RVIC_GPIO1_INT_ID);
|
||||
|
||||
// 如果GPIO9输入高
|
||||
if (gpio_get_input_data(GPIO9))
|
||||
gpio_set_output_data(GPIO7, 1); // GPIO7输出高
|
||||
// 如果GPIO9输入低
|
||||
// 如果GPIO1输入高
|
||||
if (gpio_get_input_data(GPIO1))
|
||||
gpio_set_output_data(GPIO12, 1); // GPIO12输出高
|
||||
// 如果GPIO1输入低
|
||||
else
|
||||
gpio_set_output_data(GPIO7, 0); // GPIO7输出低
|
||||
gpio_set_output_data(GPIO12, 0); // GPIO12输出低
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue