<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 簡(jiǎn)單手勢喚醒便攜設備的設計思路及其代碼

簡(jiǎn)單手勢喚醒便攜設備的設計思路及其代碼

作者: 時(shí)間:2012-07-12 來(lái)源:網(wǎng)絡(luò ) 收藏


檢測門(mén)限也影響最大允許速率。一般來(lái)說(shuō),門(mén)限越低,能夠捕捉到的手勢動(dòng)作就越快。如上所述,應謹慎選擇門(mén)限,以免產(chǎn)生誤報。

人為因素


這種應用還會(huì )受到人手以及揮手動(dòng)作等人為因素的影響。應通過(guò)一些案例確定一般大多數人的習慣,包括他們在屏幕前揮動(dòng)手掌的速度以及與屏幕之間的距離,另外,是否戴手套也會(huì )產(chǎn)生一定的影響。不同的應用場(chǎng)合(不同裝置)也會(huì )影響到設計需求,例如智能手機、或汽車(chē)儀表盤(pán),對存在具體的設計考慮。當然,設計過(guò)程中還應考慮用戶(hù)界面和經(jīng)驗參數。


最后,還要對真假手勢做出判斷,即裝置需要判斷接收到的信號是來(lái)自于一個(gè)手勢動(dòng)作,還是簡(jiǎn)單的裝置移動(dòng)(例如:放置在外套、口袋或背包中,或者是屏幕朝下放置)。單純依靠上述檢測原理,很難做出正確的“真偽”鑒別,除非在裝置內提供更多的背景信息。關(guān)于這一問(wèn)題的討論超出了本文范圍。


設計中可以選擇只有裝置進(jìn)入特定的應用程序時(shí)啟動(dòng)喚醒方案,也可以由用戶(hù)手動(dòng)操作使能。此外,許多此類(lèi)裝置都有一個(gè)加速度傳感器,能夠檢測到屏幕是否背面朝下放置。如果用戶(hù)手動(dòng)將裝置置于休眠模式,則可禁用該功能(例如關(guān)機狀態(tài))。


設計實(shí)例


為方便起見(jiàn),本文附帶了三段演示程序代碼。第一段代碼用于手動(dòng)操作MAX44000的接近檢測數據讀取,概念上簡(jiǎn)單實(shí)現喚醒功能;第二段代碼在第一段的基礎上進(jìn)行了擴展,增加了之前討論的濾波功能;最后一段代碼演示利用MAX44000中斷喚醒觸控裝置。

示例代碼1

__interrupt void TimedInterrupt( void )

{


uint8 proximity_counts;

....

....

if ( device_status == SLEEP_MODE )

{

// read one byte from register 0x16

proximity_counts = read_i2c_register(MAX44000_ADDR,0x16,1);

if (proximity_counts > WAKEUP_THRESHOLD)

{

device_status = WAKE_MODE;

...

}

else

{

// do whatever it is you need to in sleep mode

...

...

}

}


...

...


}


示例代碼2


// example interrupt function where this might be implemented

__interrupt void TimedInterrupt( void )

{


uint8 proximity_counts;

uint8 filtered_counts;

....

....

if ( device_status == SLEEP_MODE )

{

// read one byte from register 0x16

proximity_counts = read_i2c_register(MAX44000_ADDR,0x16,1);


// weights[QUEUE_SIZE] contains the filter weights for the FIR filter

// data_queue[QUEUE_SIZE] is a FIFO queue meant to be the input to the filter

filtered_counts = fir_filter(proximity_counts,weights,data_queue);


if (filtered_counts > WAKEUP_THRESHOLD)

{

device_status = WAKE_MODE;

...

}

else

{

// do whatever it is you need to in sleep mode

...

...

}

}


...

...


}


/**

* fir_filter()

*



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>