国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DshanMCU-R128s2 ADC按鍵配置方法

嵌入式Linux那些事 ? 來(lái)源:嵌入式Linux那些事 ? 作者:嵌入式Linux那些事 ? 2023-12-22 19:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FreeRTOS平臺(tái)上使用的按鍵為ADC-KEY,采用的ADC模塊為GPADC。

按鍵功能驅(qū)動(dòng)的實(shí)現(xiàn)是通過(guò)ADC分壓,使每個(gè)按鍵檢測(cè)的電壓值不同,從而實(shí)現(xiàn)區(qū)分不同的按鍵。按下或者彈起中斷之后,通過(guò)中斷觸發(fā),主動(dòng)檢測(cè)當(dāng)前電壓識(shí)別出對(duì)應(yīng)的按鍵。最后再通過(guò)input子系統(tǒng)將獲取按鍵的鍵值并上報(bào)給應(yīng)用層。

GPADC-Key配置方法

按鍵結(jié)構(gòu)體定義key_config的成員:

struct sunxikbd_config{
    unsigned int measure;    // 電壓閾值
    char *name;              // 功能名
    unsigned int key_num;    // 按鍵數(shù)量
    unsigned int scankeycodes[KEY_MAX_CNT];    // 按鍵的鍵值
    unsigned int key_vol[KEY_MAX_CNT];         // 按鍵的電壓值
};

不同平臺(tái)的配置可能不同,以r128為例,下面是r128的成員config:

static struct sunxikbd_config key_config = {
    .measure = 2500,
    .name = "gpadc-key",
    .key_num = 5,
    .key_vol = {164,415,646,900,1157},
    .scankeycodes = {115,114,139,164,116}
};

當(dāng)前按鍵驅(qū)動(dòng)的配置都是以hardcode的方式寫入驅(qū)動(dòng)代碼中,也就是說(shuō)按鍵的數(shù)量,不同按鍵對(duì)應(yīng)的電壓值,不同按鍵對(duì)應(yīng)的KeyCode等等配置如果要修改的話,需要對(duì)源碼進(jìn)行修改。

如上述按鍵結(jié)構(gòu)體的定義,以下兩配置按照默認(rèn)配置即可。

  • measure:GPADC最大能夠識(shí)別的電壓值,需要根據(jù)UserMaual來(lái)設(shè)置。默認(rèn)為2.5V。
  • name:注冊(cè)的按鍵驅(qū)動(dòng)名稱,會(huì)注冊(cè)到input子系統(tǒng)中。

可以自定義的配置為:key_num,key_vol,scankeycodes。

  • key_num: 按照實(shí)際硬件設(shè)計(jì)來(lái)設(shè)置。
  • key_vol: 按照硬件,實(shí)際每個(gè)按鍵分壓的情況來(lái)設(shè)置。
  • scankeycodes:每個(gè)按鍵對(duì)應(yīng)的KeyCode,方便應(yīng)用通過(guò)input獲得按下的按鍵時(shí),能夠識(shí)別是哪個(gè)按鍵按下了。

key_vol的配置方法,可以參考下圖的GPADC-KEY的硬件設(shè)置。

image1

在圖中,VCC輸入的電壓為3.3V,通過(guò)分壓關(guān)系,第一個(gè)按鍵的電壓為0.21V,因此key_vol可以設(shè)置為210,以此類推。

驅(qū)動(dòng)初始化方法

默認(rèn)系統(tǒng)啟動(dòng)時(shí),不會(huì)加載GPADC驅(qū)動(dòng)以及按鍵驅(qū)動(dòng)。

如果需要加載GPADC-Key驅(qū)動(dòng),需要調(diào)用以下函數(shù):

int sunxi_gpadc_key_init(void);

調(diào)用 sunxi_gpadc_key_init() 該函數(shù)即可完成GPADC驅(qū)動(dòng)以及按鍵驅(qū)動(dòng)的加載了,即可開始使用按鍵驅(qū)動(dòng)。

應(yīng)用調(diào)用方法

接下來(lái)繼續(xù)介紹一下,應(yīng)用中該如何獲取按鍵按下的事件。

在FreeRTOS系統(tǒng)中,也移植了 Linux 的 input 子系統(tǒng)。GPADC-Key 中也是調(diào)用了 input 的接口,進(jìn)行注冊(cè) input 設(shè)置,上報(bào)事件等動(dòng)作。

在調(diào)用 sunxi_gpadc_key_init() 時(shí),通過(guò) input_set_capability() 去設(shè)置了事件的屬性;通過(guò) sunxi_input_register_device() 注冊(cè)了 input 設(shè)備;在按鍵按下觸發(fā)中斷時(shí),也是通過(guò) input_report_key()input_sync() 上報(bào) input 事件。

因此,在應(yīng)用層想要獲取input事件,可以直接通過(guò)input接口去獲取,使用示例可如下例程:

int input_func(void)
{
    int fd = -1;
    struct sunxi_input_event event;

    sunxi_gpadc_key_init(); // 驅(qū)動(dòng)初始化

    fd = sunxi_input_open(DEVICE_NAME);
    if (fd < 0)
        return -1;

    while (1) {
        sunxi_input_readb(fd, &event, sizeof(struct sunxi_input_event));
        if (event.type != EV_KEY)
            continue;

        if (event.value == 0) {
            printf("key upn");
            continue;
        }
        printf("key press: KeyCode:%dn", event.code);
    }

    return 0;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • adc
    adc
    +關(guān)注

    關(guān)注

    100

    文章

    7511

    瀏覽量

    555927
  • FreeRTOS
    +關(guān)注

    關(guān)注

    14

    文章

    499

    瀏覽量

    66933
  • ADC按鍵設(shè)計(jì)

    關(guān)注

    0

    文章

    3

    瀏覽量

    1771
  • R128
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    413
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【RA-Eco-RA2E1-V1.0開發(fā)板試用】ADC內(nèi)部電壓采集。

    點(diǎn)擊左側(cè)Stacks → New Stack → 選擇Analog → ADC (SAR) → r_adc配置ADC參數(shù),主要設(shè)置內(nèi)部采集通道。 Reference Voltage
    的頭像 發(fā)表于 02-26 10:56 ?79次閱讀
    【RA-Eco-RA<b class='flag-5'>2</b>E1-V1.0開發(fā)板試用】<b class='flag-5'>ADC</b>內(nèi)部電壓采集。

    ADC128S102QML - SP:輻射加固8通道12位A/D轉(zhuǎn)換器的技術(shù)剖析

    ADC128S102QML - SP:輻射加固8通道12位A/D轉(zhuǎn)換器的技術(shù)剖析 在電子工程師的設(shè)計(jì)生涯中,選擇合適的A/D轉(zhuǎn)換器是許多項(xiàng)目成功的關(guān)鍵一步。今天我們要深入探討的是Texas
    的頭像 發(fā)表于 02-05 15:05 ?295次閱讀

    【RA-Eco-RA2E1-V1.0開發(fā)板試用】+ OLED顯示ADC采樣數(shù)據(jù)

    _RA6M5/object_oriented_module_programming_method_in_ARM_embedded_system/ 選擇P400、P401為OLED顯示屏I2C接口的SCL與SDA引腳,選擇P000作為ADC輸入引腳,新建工程選擇
    發(fā)表于 02-02 09:21

    ADC128S102:8通道、500 - 1Msps、12位A/D轉(zhuǎn)換器的深度解析

    ? 在電子設(shè)計(jì)領(lǐng)域,A/D轉(zhuǎn)換器是連接模擬世界和數(shù)字世界的橋梁,其性能的優(yōu)劣直接影響到整個(gè)系統(tǒng)的精度和穩(wěn)定性。今天,我們就來(lái)深入探討一款性能出色的A/D轉(zhuǎn)換器——ADC128S102。 文件下載
    的頭像 發(fā)表于 11-30 15:17 ?1043次閱讀
    <b class='flag-5'>ADC128S</b>102:8通道、500 - 1Msps、12位A/D轉(zhuǎn)換器的深度解析

    ADC128S052:高性能12位A/D轉(zhuǎn)換器的深度解析

    概述 ADC128S052與ADC128S052 - Q1采用逐次逼近寄存器(SAR)架構(gòu),并內(nèi)置跟蹤保持電路,可配置為接受多達(dá)8個(gè)輸入信號(hào)。其輸
    的頭像 發(fā)表于 11-30 14:53 ?819次閱讀
    <b class='flag-5'>ADC128S</b>052:高性能12位A/D轉(zhuǎn)換器的深度解析

    深入解析ADC128S022:8通道12位A/D轉(zhuǎn)換器的卓越之選

    ? 在電子設(shè)計(jì)領(lǐng)域,模擬 - 數(shù)字轉(zhuǎn)換器(ADC)是連接現(xiàn)實(shí)世界模擬信號(hào)與數(shù)字系統(tǒng)的關(guān)鍵橋梁。今天,我們來(lái)詳細(xì)探討德州儀器(TI)的一款高性能ADC——ADC128S022,深入了解它的特性、應(yīng)用場(chǎng)
    的頭像 發(fā)表于 11-30 14:47 ?948次閱讀
    深入解析<b class='flag-5'>ADC128S</b>022:8通道12位A/D轉(zhuǎn)換器的卓越之選

    ?ADC128S102QML-SP 數(shù)據(jù)手冊(cè)全文總結(jié)

    ADC128S102設(shè)備是一款低功耗、八通道CMOS 12位模數(shù)轉(zhuǎn)換器,規(guī)格為50 kSPS轉(zhuǎn)1 MSPS。該轉(zhuǎn)換器基于逐次近似寄存器架構(gòu),內(nèi)部設(shè)有軌跡保持電路。該設(shè)備可配置為在IN0至IN7輸入處
    的頭像 發(fā)表于 11-25 10:37 ?595次閱讀
    ?<b class='flag-5'>ADC128S</b>102QML-SP 數(shù)據(jù)手冊(cè)全文總結(jié)

    ADC128D818 12 位 8 通道系統(tǒng)監(jiān)控 ADC 產(chǎn)品手冊(cè)總結(jié)

    The ADC128D818 I^2^C 系統(tǒng)監(jiān)控器設(shè)計(jì)為最大靈活性。系統(tǒng)監(jiān)控器可以配置為 單端和/或偽差分輸入。車載溫度傳感器,結(jié)合了 WATCHDOG 窗口比較器和中斷輸出引腳?INT?使得
    的頭像 發(fā)表于 11-21 09:29 ?565次閱讀
    <b class='flag-5'>ADC128</b>D818 12 位 8 通道系統(tǒng)監(jiān)控 <b class='flag-5'>ADC</b> 產(chǎn)品手冊(cè)總結(jié)

    ADC128S052/ADC128S052-Q1 8 通道高速低功耗 ADC 產(chǎn)品總結(jié)

    ADC128S052x 是一款低功耗、八通道 CMOS 12位模擬轉(zhuǎn)數(shù)字設(shè)備 轉(zhuǎn)換為吞吐量的轉(zhuǎn)換器規(guī)定為 從200千每秒到500千千每秒。該轉(zhuǎn)換器基于逐次近似寄存器 采用內(nèi)部軌道保持電路的架構(gòu)。它可以配置為最多可接受八人 輸入信號(hào)位于IN0至IN7。
    的頭像 發(fā)表于 11-19 14:07 ?701次閱讀
    <b class='flag-5'>ADC128S</b>052/<b class='flag-5'>ADC128S</b>052-Q1 8 通道高速低功耗 <b class='flag-5'>ADC</b> 產(chǎn)品總結(jié)

    ADC122S051/ADC122S051Q 12 位雙通道低功耗 ADC 總結(jié)

    051/ADC122S051Q完全指定在 采樣率范圍為 200 ksps 至 500 ksps。該轉(zhuǎn)換器基于逐次近似 具有內(nèi)部跟蹤保持電路的寄存器架構(gòu)。它可以配置為接受一個(gè) 或輸入 IN1 和 IN2 處的兩個(gè)輸入信號(hào)。
    的頭像 發(fā)表于 11-17 18:17 ?1476次閱讀
    <b class='flag-5'>ADC122S</b>051/<b class='flag-5'>ADC122S</b>051Q 12 位雙通道低功耗 <b class='flag-5'>ADC</b> 總結(jié)

    ADC128S102-SEP 技術(shù)文檔總結(jié)

    ADC128S102-SEP是一款低功耗、8通道、CMOS、12位模數(shù)轉(zhuǎn)換器(ADC),額定轉(zhuǎn)換吞吐率為50 kSPS至1 MSPS。該轉(zhuǎn)換器基于逐次逼近寄存器 (SAR) 架構(gòu),具有內(nèi)部跟蹤保持電路。該器件可配置為在輸入 IN
    的頭像 發(fā)表于 10-30 14:06 ?612次閱讀
    <b class='flag-5'>ADC128S</b>102-SEP 技術(shù)文檔總結(jié)

    FD60-36S24B3R2 FD60-36S24B3R2

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)FD60-36S24B3R2相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有FD60-36S24B3R2的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,F(xiàn)D60-36S24B3R2真值表,
    發(fā)表于 03-21 18:33
    FD60-36<b class='flag-5'>S24B3R2</b> FD60-36<b class='flag-5'>S24B3R2</b>

    PFD50-36S24B3R2 PFD50-36S24B3R2

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)PFD50-36S24B3R2相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有PFD50-36S24B3R2的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,PFD50-36S24B3R2
    發(fā)表于 03-21 18:31
    PFD50-36<b class='flag-5'>S24B3R2</b> PFD50-36<b class='flag-5'>S24B3R2</b>

    FD50-36S24B3(R)2 FD50-36S24B3(R)2

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)FD50-36S24B3(R)2相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有FD50-36S24B3(R
    發(fā)表于 03-21 18:31
    FD50-36<b class='flag-5'>S</b>24B3(<b class='flag-5'>R</b>)<b class='flag-5'>2</b> FD50-36<b class='flag-5'>S</b>24B3(<b class='flag-5'>R</b>)<b class='flag-5'>2</b>

    MDC91128S數(shù)據(jù)手冊(cè)#128 通道、20 位電流輸入 ADC

    MDC91128 是一款 128 通道、20 位或 16 位電流輸入模數(shù)轉(zhuǎn)換器 (ADC)。它在單個(gè)封裝中同時(shí)集成了電流到電壓轉(zhuǎn)換和模數(shù)(A/D) 轉(zhuǎn)換。多達(dá)128 個(gè)低電平電流輸出器件(例如
    的頭像 發(fā)表于 03-11 16:37 ?1662次閱讀
    MDC91128<b class='flag-5'>S</b>數(shù)據(jù)手冊(cè)#<b class='flag-5'>128</b> 通道、20 位電流輸入 <b class='flag-5'>ADC</b>