• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 門限滯回設置的C程序代碼

    門限滯回設置的C程序代碼

    作者: 時間:2012-06-24 來源:網絡 收藏

    將接近檢測傳感器集成到系統后,一個經常遇到的問題是如何正確選擇接近檢測的門限,以便在用戶通話期間打開或關閉屏幕。門限須確保出現錯誤判斷的幾率非常低,而且能夠支持絕大多數使用者的情況。
    門限滯回例程

    本文引用地址:http://www.czjhyjcfj.com/article/171238.htm

    #define MAX44000_ADDR	0x94#define INT_STATUS_REG	0x00#define OFF_THRESHOLD	4600#define OFF_DELAY		1#define ON_THRESHOLD	4000#define ON_DELAY		3uint8 screenStatus;	// 0 means off, 1 means on/*i2cWriteBytes()Arguments:uint8 address - device addressuint8 start_reg - register where the first byte is writtenuint8 *data - data to writeuint8 nbytes - number of bytes to writeConsecutively writes several bytes to some i2c device starting at some specified address -- implemented elsewhere*/void i2cWriteBytes(uint8 address,uint8 start_reg,uint8 *data,uint8 nbytes);/*MAX44000InterruptHandler()

    以下用于實現MAX44000 INT引腳的中斷處理,假設MAX44000的接近檢測傳感器為14位模式,并已使能中斷。此外,假設屏幕狀態初始化為1或0,詳細信息請參閱數據資料的寄存器說明部分。

    */void MAX44000InterruptHandler() {uint8 i2cData[3];i2cRead1Byte(MAX44000_ADDR,INT_STATUS_REG,i2cData);if (i2cData0x01 != 0)return;	// check to make sure interrupt really fired// this simultaneously clears the interrupt flagif (screenStatus) {i2cData[0] = ON_DELAY;	i2cData[1] = ON_THRESHOLD >> 8  0xBF; // set ABOVE = 0i2cData[2] = ON_THRESHOLD  0xFF;} else {i2cData[0] = OFF_DELAY;	 i2cData[1] = OFF_THRESHOLD >> 8 | 0x40; // set ABOVE = 1i2cData[2] = OFF_THRESHOLD  0xFF;} // set the new threshold depending on what the screen status was// set the delay and threshold after each interrupti2cWriteBytes(MAX44000_ADDR,0x0A,i2cData,3);return;} // MAX44000InterruptHandler


    關鍵詞: 代碼 程序 設置

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 卢龙县| 临朐县| 本溪| 阿坝县| 涿州市| 巴林右旗| 临泉县| 东港市| 印江| 潍坊市| 徐州市| 德令哈市| 普宁市| 哈密市| 沧源| 陈巴尔虎旗| 雅江县| 兴安盟| 建宁县| 丹棱县| 乐都县| 巴中市| 乾安县| 景谷| 勃利县| 石屏县| 广饶县| 巴中市| 德州市| 洱源县| 太白县| 若羌县| 中阳县| 余江县| 西林县| 古丈县| 大竹县| 金湖县| 镇雄县| 凌海市| 新密市|