按钮GPIO中断

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
3个帖子/ 0个新
最后发表
dx3gerst
离线
最后看到:3年10个月前
加入:2017-03-29 35
按钮GPIO中断

嗨,对话框中,

我正在使用peripherals_demo与UART-device通信。现在我想使用开发板(Basic)上的按钮K1 (P1_6)作为GPIO-Interrupt,它开关板(P1_5)上的橙色LED。我认为hw_wkup_interrupt是合适的。这个中断是否在所有模式下工作(主动,睡眠,延长睡眠)?
我找不到任何关于如何实现ISR的文档,你能帮我一下吗?
如果我正确,引脚配置和中断初始化应该插入到外围设置()函数。

空白periph_setup(空白)

...
/ /引脚配置
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);/ / D2领导

/ /中断初始化
hw_wkup_init(空);
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,以便我可以确保中断是工作的。

静态孔隙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);/ /关闭了

谢谢你!

设备:
MT_dialog
离线
最后看到:4个月5天前
工作人员
加入:2015-06-08 34
嗨dx3gerst,

嗨dx3gerst,

你说的“ISR应该在哪里实施”是什么意思,在哪个文件中?如果愿意,可以在main.c文件中实现代码。同样不要将唤醒中断设置放在外围的init()(这个函数会在每次唤醒中被调用,以便在退出睡眠后设置你的引脚),你可以看一下SDK中的hrp_sensor示例,在这个例子中,peri_init()只包含引脚的配置,并且唤醒中断的设置是在prvSetupHardware()函数中实现的,就在调用peri_init()的pm_system_init()之后。

由于MT_dialog

dx3gerst
离线
最后看到:3年10个月前
加入:2017-03-29 35
谢谢你!

谢谢你!