我正嘗試讀取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引腳上收到外部電壓變化/中斷的通知。感謝提到的端口接口,我會檢查出來。 –