我正尝试读取Telosb中的外部按钮中断。我使用GIO2来读取中断,并且它使用轮询技术非常好,但我正在寻找更接近实际中断方法的东西。使用Contiki-OS处理TelosB的GIO引脚中断
提到TinyOS,有一个HplMsp430Interrupt接口可以实现这个目的。在Contiki-OS中我找不到类似的东西。
更改引脚状态似乎不会触发任何事件,因为PROCESS_WAIT_EVENT
不响应。
我正尝试读取Telosb中的外部按钮中断。我使用GIO2来读取中断,并且它使用轮询技术非常好,但我正在寻找更接近实际中断方法的东西。使用Contiki-OS处理TelosB的GIO引脚中断
提到TinyOS,有一个HplMsp430Interrupt接口可以实现这个目的。在Contiki-OS中我找不到类似的东西。
更改引脚状态似乎不会触发任何事件,因为PROCESS_WAIT_EVENT
不响应。
Contiki已经实现了TelosB上按钮的驱动程序。有没有必要在中断处理程序一级开展工作,使用它,只需调用API半自助旅游旅行社:如果你在谈论别的
#include "dev/button-sensor.h"
PROCESS_THREAD(app_Process, ev, data)
{
PROCESS_BEGIN();
SENSORS_ACTIVATE(button_sensor);
for(;;) {
PROCESS_WAIT_EVENT();
if (ev == sensors_event && data == &button_sensor) {
puts("button clicked");
}
}
}
,实际上需要实现你自己的中断处理程序,然后半自助旅游旅行社不会帮助你很多。对于某些Contiki平台,有控制GPIO引脚的宏或函数,但不适用于msp430
。因此,您只需使用编译器标头中的I/O端口接口,并使用ISR(PORT_NUMBER, function_name)
声明中断处理函数,其中PORT_NUMBER
是PORT1
或PORT2
(支持中断处理程序的端口)。
有关如何实现TelosB按钮中断处理程序的示例,请参见contiki/cpu/msp430/button.c
,它非常简单。
我已经检查了按钮传感器的实现,这是很容易学习和使用的,但它对我的情况没有帮助,因为我需要在GIO引脚上收到外部电压变化/中断的通知。感谢提到的端口接口,我会检查出来。 –