色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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那些事 ? 來源:嵌入式Linux那些事 ? 作者:嵌入式Linux那些事 ? 2023-12-22 19:11 ? 次閱讀

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

按鍵功能驅(qū)動(dòng)的實(shí)現(xiàn)是通過ADC分壓,使每個(gè)按鍵檢測(cè)的電壓值不同,從而實(shí)現(xiàn)區(qū)分不同的按鍵。按下或者彈起中斷之后,通過中斷觸發(fā),主動(dòng)檢測(cè)當(dāng)前電壓識(shí)別出對(duì)應(yīng)的按鍵。最后再通過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)代碼中,也就是說按鍵的數(shù)量,不同按鍵對(duì)應(yīng)的電壓值,不同按鍵對(duì)應(yīng)的KeyCode等等配置如果要修改的話,需要對(duì)源碼進(jìn)行修改。

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

  • measure:GPADC最大能夠識(shí)別的電壓值,需要根據(jù)UserMaual來設(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ì)來設(shè)置。
  • key_vol: 按照硬件,實(shí)際每個(gè)按鍵分壓的情況來設(shè)置。
  • scankeycodes:每個(gè)按鍵對(duì)應(yīng)的KeyCode,方便應(yīng)用通過input獲得按下的按鍵時(shí),能夠識(shí)別是哪個(gè)按鍵按下了。

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

image1

在圖中,VCC輸入的電壓為3.3V,通過分壓關(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)用方法

接下來繼續(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í),通過 input_set_capability() 去設(shè)置了事件的屬性;通過 sunxi_input_register_device() 注冊(cè)了 input 設(shè)備;在按鍵按下觸發(fā)中斷時(shí),也是通過 input_report_key()input_sync() 上報(bào) input 事件。

因此,在應(yīng)用層想要獲取input事件,可以直接通過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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • adc
    adc
    +關(guān)注

    關(guān)注

    98

    文章

    6514

    瀏覽量

    545077
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

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

    關(guān)注

    0

    文章

    3

    瀏覽量

    1685
  • R128
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    110
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    adc128s102 VA=5v VD=3.3v可以嗎?

    adc128s102VA=5vVD=3.3v可以嗎看示例和性能指標(biāo)都是給的一樣的 要么都是5v要么都是3.3v
    發(fā)表于 01-10 08:29

    如何提高ADC128S052輸出能力?

    ADC128S052的數(shù)字輸出能力為V~0.5之間,最近在使用這個(gè)adc時(shí)發(fā)現(xiàn),其1時(shí)輸出大約為0.8V,而且與Vd引腳的電壓正好互補(bǔ),這個(gè)輸出的電壓,單片機(jī)無法識(shí)別為1,如何提高ADC輸出能力?
    發(fā)表于 01-10 08:11

    ADC128S022的驅(qū)動(dòng)架構(gòu)參考 ti-adc128s052.c,要如何做移位生成12bit結(jié)果呢?

    ADC128S022的驅(qū)動(dòng)架構(gòu)參考 ti-adc128s052.c, 具體如下圖所示。 上層讀取buf[1], buf[2]請(qǐng)問要如何做移位生成12bit結(jié)果呢?
    發(fā)表于 12-16 06:32

    求助,關(guān)于ADC128S102的采樣速率問題求解

    現(xiàn)采用ADC128S102采集溫度電壓,該芯片的采樣速率在500ksps-1Msps。問題(1)一般ADC采樣速率從0開始,使用時(shí)只要不超過最高采樣率都可以使用,不明白該芯片500ksps最低采樣
    發(fā)表于 12-12 07:47

    ADC128S102WGRQV想知道輸入阻抗具體有多大?

    ADC128S102WGRQV想知道輸入阻抗具體有多大?多少KOhms?要計(jì)算用,謝謝!我已經(jīng)看過7.3.3章節(jié)。
    發(fā)表于 12-06 08:33

    ADC128S102EVM評(píng)估模塊

    電子發(fā)燒友網(wǎng)站提供《ADC128S102EVM評(píng)估模塊.pdf》資料免費(fèi)下載
    發(fā)表于 12-05 14:22 ?1次下載
    <b class='flag-5'>ADC128S</b>102EVM評(píng)估模塊

    adc128s052設(shè)備樹配置,基準(zhǔn)電壓不能被內(nèi)核識(shí)別是怎么回事?

    ,adc128s052\"; reg = <0>; vref-supply = <&vdd_supply>; spi-max-frequency = <1000000>;
    發(fā)表于 11-29 16:00

    用28035如何讀取ADC128S022的數(shù)據(jù)?

    請(qǐng)問用28035如何讀取ADC128S022的數(shù)據(jù),或者說是該怎么配置
    發(fā)表于 11-18 08:34

    求助,關(guān)于adc3101 I2S采集問題求解

    您好: 我現(xiàn)在使用TLVADC3101采集音頻數(shù)據(jù),i2s接口立體聲模式,ADC3101作為i2s主設(shè)備,采樣率48Khz,數(shù)據(jù)長度16bit,DSP作為從設(shè)備,通過DMA方式采集,使用CSL庫
    發(fā)表于 11-06 07:43

    ADC128S052、ADC128S052-Q1模數(shù)轉(zhuǎn)換器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《ADC128S052、ADC128S052-Q1模數(shù)轉(zhuǎn)換器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-22 11:12 ?0次下載
    <b class='flag-5'>ADC128S</b>052、<b class='flag-5'>ADC128S</b>052-Q1模數(shù)轉(zhuǎn)換器數(shù)據(jù)表

    ADC128S102-SEP耐輻射8通道、50-kSPS至1-MSPS、12位ADC數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《ADC128S102-SEP耐輻射8通道、50-kSPS至1-MSPS、12位ADC數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-12 09:25 ?1次下載
    <b class='flag-5'>ADC128S</b>102-SEP耐輻射8通道、50-kSPS至1-MSPS、12位<b class='flag-5'>ADC</b>數(shù)據(jù)表

    ESP32-S3R2如何配置開啟PSRAM?

    如題 ,esp-idf V4.4.6 ESP32-S3R2配置開啟PSRAM后,編譯運(yùn)行代碼輸出異常: E (327) psram: PSRAM ID read error: 0x00ffffff
    發(fā)表于 06-28 07:46

    如何用STM32F107做adc128s022的5路采集?

    正在用STM32F107做adc128s022的5路采集,沒有思路誰做過能說說思路或者程序參考一下嗎,謝謝
    發(fā)表于 05-15 07:29

    按鍵式和藍(lán)牙時(shí)控開關(guān)的設(shè)置方法

    配置這些智能化設(shè)備。 第一部分:按鍵式開關(guān)的設(shè)置方法 1. 選擇合適的按鍵式開關(guān): 首先,選擇適合您家居需求的按鍵式開關(guān)。
    的頭像 發(fā)表于 02-05 11:32 ?1231次閱讀

    全志R128 Devkit開發(fā)板原理圖模塊介紹及使用說明

    針對(duì) R128 模組,百問科技推出了 R128 DevKit 開發(fā)板作為快速開發(fā)評(píng)估工具。 板載 R128-S2-N16R16 模組 板載 2.4G RF 陶瓷天線 板載 USB Type C
    發(fā)表于 01-17 09:45
    主站蜘蛛池模板: 久热在线这里只有精品7| 亚洲精品无码国产爽快A片| 成人区精品一区二区不卡AV免费| 亚洲 日本 天堂 国产 在线| 一本久道久久综合狠狠躁AV| 一个人免费观看完整视频日本| 87影院午夜福利| sao虎影院桃红视频在线观看| 国产精品九九久久精品视| 精品国产90后在线观看| 免费看a视频| 男女夜晚在爽视频免费观看| 色色色999| 脱女学小内内摸出水网站免费 | 国产精品久久久久久影院| 久久精品热99看| 人妻夜夜爽天天爽三区麻豆AV网站| 亚洲成人网导航| av影音先锋影院男人站| 国产又粗又猛又爽黄老大爷| 蜜臀久久99精品久久久久久做爰| 无码11久岁箩筣| 97亚洲狠狠色综合久久久久| 国产精品视频一区二区猎奇| 久久一本综合| 射死你天天日| 2021自产拍在线观看视频| 国产精品网红女主播久久久| 老头xxx| 小黄文纯肉短篇| 2018年免费三级av观看| 国产精品福利片| 美女张开腿让男生桶动态图| 天美传媒 免费观看| 2022精品福利在线小视频| 国产精品99re6热在线播放| 六六影院午夜伦理| 小伙无套内射老女人| 97色伦图片97色伦图影院久久| 国产精品-区区久久久狼| 免费国产福利|