DA14580建筑中断配置

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

亲爱的对话框,
我正在使用自己的自定义板,我的PIN及其中断配置如下:
//引脚0.3
gpio_configurepin(pet_int_port,pet_int_pin,input_pulldown,pid_gpio,false);
nvic_setpriority(gpio0_irqn,0);
gpio_registercallback(gpio0_irqn,user_gpio0_handler);
nvic_enableirq(gpio0_irqn);
//引脚2.9
gpio_configurepin(pet_mod_port,pet_mod_pin,input_pullup,pid_gpio,true);
nvic_setpriority(gpio2_irqn,0);
gpio_registercallback(gpio2_irqn,user_gpio2_handler);
nvic_enableirq(gpio2_irqn);

setword16(gpio_irq0_in_sel_reg,0x000a);//中断源是p0.3
setword16(gpio_irq2_in_sel_reg,0x0018);//中断源是p2.9
setword16(gpio_debounce_reg,0x050a);//使能GPIO_IRQ0,GPIO_IRQ1延迟,延迟时间10 ms
setword16(gpio_int_level_ctrl_reg,0x0504); //中断级别

2.9的PIN通过硬件在我们自己的销售板板中拉起。这是一个问题,每次系统从睡眠中唤醒时,它会产生一个PIN2.9中断,为什么这么呢?
谢谢你读书。
杰瑞

设备:
mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
嗨杰瑞,

嗨杰瑞,

对不起,我不太明白,你正在为PIN 0_3设置两个GPIO_IRQS一个,另一个用于PIN 2_9,一旦580唤醒你看到user_gpio2_handler()总是有一个执行?580怎么醒来?你在唤醒控制器吗?您能提供更多详细信息,以便我能够理解用例是什么?

谢谢mt_dialog.

2455321262
离线
最后一次露面:2年8个月前
加入:2017-01-22 06:43
嗨,mt_dialog,

嗨,mt_dialog,
是的,我还支持两个外部中断引脚,塔门是p0.3和p2.9,但我认为他们不应该发生冲突。
我设置了一个软件计时器,每次唤醒一次,每次唤醒后,我的芯片将执行函数user_gpio2_handler()。
关于控制器的唤醒,我不是很清楚,我的意思是我可能没有设置它,你能给我一些提示吗?

mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
嗨杰瑞,

嗨杰瑞,

所以,你设置了内核定时器,以唤醒两个GPIO中断,每次设备从定时器唤醒来自引脚2.9的IRQ都会被触发?设备可以通过定时器唤醒,该定时器被视为BLE事件,并且通过唤醒控制器(或唤醒定时器),该设备无法通过标准GPIO IRQ唤醒。如果计时器经过并且设备唤醒时,则从那一刻醒来,您可以从端口2.9获取IRQ,我可以假设这意味着您是一个中断。如果您在无睡眠模式下配置设备,您是否看到中断持续触发?另外要使用外围设备,GPIO中断和唤醒控制器请使用驱动程序,查看UM-B-051 DA1458X软件平台参考文献.PDF在第10段中,第10.3节解释了GPIO驱动程序和10.7唤醒定时器。同时在PRIO 0中设置GPIO而不是一个好主意,BLE中断应该是顶级优先级,并设置为1。

谢谢mt_dialog.

2455321262
离线
最后一次露面:2年8个月前
加入:2017-01-22 06:43
嗨,mt_dialog,

嗨,mt_dialog,
我按顺序调整了中断初始化代码,以解决异常中断的问题。上面你提到了设备无法通过标准GPIO IRQ唤醒,如何设置设备以使一般GPIO_IRQ唤醒?

谢谢杰里

mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
嗨2455321262,

嗨2455321262,

有一个文件和示例表明,请检查上面提到的文档以检查唤醒定时器API,并且SDK中的BLE_APP_SLEEP模式有一个示例,关于如何从外部中断唤醒,请检查在BLE_APP_SLEEPMODE项目中,user_app_add_undirect_complete()函数,这是设备配置的位置,以便进入睡眠并等待外部唤醒。

谢谢mt_dialog.