sdk:examples: update gpio

Signed-off-by: liangkangnan <liangkangnan@163.com>
verilator
liangkangnan 2023-04-18 15:13:25 +08:00
parent 6942faa82d
commit 280a548e62
1 changed files with 22 additions and 22 deletions

View File

@ -7,36 +7,36 @@
int main() int main()
{ {
// IO7用作GPIO7 // IO12用作GPIO12
pinmux_set_io7_func(IO7_GPIO7); pinmux_set_io12_func(IO12_GPIO12);
// IO9用作GPIO9 // IO1用作GPIO1
pinmux_set_io9_func(IO9_GPIO9); pinmux_set_io1_func(IO1_GPIO1);
// gpio7输出模式 // gpio12输出模式
gpio_set_mode(GPIO7, GPIO_MODE_OUTPUT); gpio_set_mode(GPIO12, GPIO_MODE_OUTPUT);
// gpio9输入模式 // gpio1输入模式
gpio_set_mode(GPIO9, GPIO_MODE_INPUT); gpio_set_mode(GPIO1, GPIO_MODE_INPUT);
// gpio9双沿中断模式 // gpio1双沿中断模式
gpio_set_interrupt_mode(GPIO9, GPIO_INTR_DOUBLE_EDGE); gpio_set_interrupt_mode(GPIO1, GPIO_INTR_DOUBLE_EDGE);
// 使能RVIC中断 // 使能RVIC中断
rvic_irq_enable(RVIC_GPIO9_INT_ID); rvic_irq_enable(RVIC_GPIO1_INT_ID);
// gpio9中断优先级为1 // gpio1中断优先级为1
rvic_set_irq_prio_level(RVIC_GPIO9_INT_ID, 1); rvic_set_irq_prio_level(RVIC_GPIO1_INT_ID, 1);
// 使能全局中断 // 使能全局中断
global_irq_enable(); global_irq_enable();
while (1); while (1);
} }
// GPIO9中断处理函数 // GPIO1中断处理函数
void gpio9_irq_handler() void gpio1_irq_handler()
{ {
gpio_clear_intr_pending(GPIO9); gpio_clear_intr_pending(GPIO1);
rvic_clear_irq_pending(RVIC_GPIO9_INT_ID); rvic_clear_irq_pending(RVIC_GPIO1_INT_ID);
// 如果GPIO9输入高 // 如果GPIO1输入高
if (gpio_get_input_data(GPIO9)) if (gpio_get_input_data(GPIO1))
gpio_set_output_data(GPIO7, 1); // GPIO7输出高 gpio_set_output_data(GPIO12, 1); // GPIO12输出高
// 如果GPIO9输入低 // 如果GPIO1输入低
else else
gpio_set_output_data(GPIO7, 0); // GPIO7输出低 gpio_set_output_data(GPIO12, 0); // GPIO12输出低
} }