<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 觸控設(shè)備手勢(shì)喚醒的設(shè)計(jì)思路及其實(shí)現(xiàn)

          觸控設(shè)備手勢(shì)喚醒的設(shè)計(jì)思路及其實(shí)現(xiàn)

          作者: 時(shí)間:2012-07-14 來源:網(wǎng)絡(luò) 收藏
          示例代碼2

          本文引用地址:http://www.ex-cimer.com/article/160306.htm

            // 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()

            *

            * Implements an FIR filter in the form

            * y = w[0]*x[0] + w[1]*x[1] + 。。.+ w[QUEUE_SIZE]*x[QUEUE_SIZE]

            *

            * Arguments:

            * uint8 input - newest datapoint taken (that is, x[0])

            * uint8 *weights - w[0]。。.w[QUEUE_SIZE]

            * uint8 *queue - the discrete sequence x[0]。。.x[QUEUE_SIZE]

            *

            * Returns:

            * The FIR-filtered output, y

            */

            uint8 fir_filter(uint8 input, uint8 *weights, uint8 *queue)

            {

            uint8 i;

            int sum = 0;

            // pop first entry in the queue, then

            // push new data into the last position

            push_into_queue(queue,input);

            // input is now x[0]

            for (i=0; i {

            sum += weights[i]*queue[i];

            }

            return (sum/QUEUE_SIZE);

            }



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();