按钮GPIO中断

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
3个帖子/ 0新
最后一篇
DX3Gerst.
离线
最后一次露面:3年10个月前
加入:2017-03-29 13:35
按钮GPIO中断

嗨对话框,

我正在使用peripherals_demo与UART-Device进行通信。现在我想在开发板(基本)上使用按钮K1(P1_6)作为GPIO-中断,在电路板上切换橙色LED(P1_5)。我认为hw_wkup_interrupt将是正确的。这种中断在所有模式下都在(活动,睡眠,延长睡眠)中吗?
我找不到有关如何实现ISR的任何文档,所以请你帮我吗?
如果我正确地,请将引脚配置和中断初始化插入Periph_setup()函数中。

void periph_setup(void)
{
......
//引脚配置
hw_gpio_set_pin_function(hw_gpio_port_1,hw_gpio_pin_6,hw_gpio_mode_input_pullup,hw_gpio_func_gpio);//按钮k1
hw_gpio_set_pin_function(hw_gpio_port_1,hw_gpio_pin_5,hw_gpio_mode_output,hw_gpio_func_gpio);// LED D2

//中断init.
hw_wkup_init(null);
hw_wkup_register_interrupt(wkup_isr,1);
hw_wkup_configure_pin(hw_gpio_port_1,hw_gpio_pin_6,true,hw_wkup_pin_state_low);
......
}

ISR应该在哪里实施?在第一步中,我只想激活和取消激活LED,以便我可以确保中断正在工作。

静态void wkup_isr(无效)
{
hw_wkup_reset_interrupt();
hw_gpio_set_active(hw_gpio_port_1,hw_gpio_pin_5);//开启LED以筛选功能
......
hw_gpio_set_inactive(hw_gpio_port_1,hw_gpio_pin_5);//关闭LED
}

谢谢!

设备:
mt_dialog.
离线
最后一次露面:4个月6天前
职员
加入:2015-06-08 11:34
嗨dx3gerst,

嗨dx3gerst,

你是什​​么意思“应该实施ISR的地方”,其中文件?如果您愿意,您可以在main.c文件处具有代码实现。也不要将唤醒中断设置放在periph_init()(在每次唤醒中调用此函数才能在退出睡眠后设置引脚),您可以查看SDK中的HRP_Sensor示例,示例的位置periph_init()只有引脚的配置和唤醒中断的设置是在prvsetuphardware()函数中实现的,刚刚在调用periph_init()的pm_system_init()之后。

谢谢mt_dialog.

DX3Gerst.
离线
最后一次露面:3年10个月前
加入:2017-03-29 13:35
谢谢!

谢谢!