sdk:examples: update gpio
Signed-off-by: liangkangnan <liangkangnan@163.com>verilator
parent
6942faa82d
commit
280a548e62
|
@ -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输出低
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue