在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DshanMCU-R128s2 ADC按鍵配置方法

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

掃碼添加小助手

加入工程師交流群

FreeRTOS平臺上使用的按鍵為ADC-KEY,采用的ADC模塊為GPADC。

按鍵功能驅動的實現是通過ADC分壓,使每個按鍵檢測的電壓值不同,從而實現區分不同的按鍵。按下或者彈起中斷之后,通過中斷觸發,主動檢測當前電壓識別出對應的按鍵。最后再通過input子系統將獲取按鍵的鍵值并上報給應用層。

GPADC-Key配置方法

按鍵結構體定義key_config的成員:

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

不同平臺的配置可能不同,以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}
};

當前按鍵驅動的配置都是以hardcode的方式寫入驅動代碼中,也就是說按鍵的數量,不同按鍵對應的電壓值,不同按鍵對應的KeyCode等等配置如果要修改的話,需要對源碼進行修改。

如上述按鍵結構體的定義,以下兩配置按照默認配置即可。

  • measure:GPADC最大能夠識別的電壓值,需要根據UserMaual來設置。默認為2.5V。
  • name:注冊的按鍵驅動名稱,會注冊到input子系統中。

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

  • key_num: 按照實際硬件設計來設置。
  • key_vol: 按照硬件,實際每個按鍵分壓的情況來設置。
  • scankeycodes:每個按鍵對應的KeyCode,方便應用通過input獲得按下的按鍵時,能夠識別是哪個按鍵按下了。

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

image1

在圖中,VCC輸入的電壓為3.3V,通過分壓關系,第一個按鍵的電壓為0.21V,因此key_vol可以設置為210,以此類推。

驅動初始化方法

默認系統啟動時,不會加載GPADC驅動以及按鍵驅動。

如果需要加載GPADC-Key驅動,需要調用以下函數:

int sunxi_gpadc_key_init(void);

調用 sunxi_gpadc_key_init() 該函數即可完成GPADC驅動以及按鍵驅動的加載了,即可開始使用按鍵驅動。

應用調用方法

接下來繼續介紹一下,應用中該如何獲取按鍵按下的事件。

在FreeRTOS系統中,也移植了 Linux 的 input 子系統。GPADC-Key 中也是調用了 input 的接口,進行注冊 input 設置,上報事件等動作。

在調用 sunxi_gpadc_key_init() 時,通過 input_set_capability() 去設置了事件的屬性;通過 sunxi_input_register_device() 注冊了 input 設備;在按鍵按下觸發中斷時,也是通過 input_report_key()input_sync() 上報 input 事件。

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

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

    sunxi_gpadc_key_init(); // 驅動初始化

    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;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • adc
    adc
    +關注

    關注

    99

    文章

    6681

    瀏覽量

    548960
  • FreeRTOS
    +關注

    關注

    12

    文章

    492

    瀏覽量

    64190
  • ADC按鍵設計
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1736
  • R128
    +關注

    關注

    0

    文章

    41

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    FD60-36S24B3R2 FD60-36S24B3R2

    電子發燒友網為你提供AIPULNION(AIPULNION)FD60-36S24B3R2相關產品參數、數據手冊,更有FD60-36S24B3R2的引腳圖、接線圖、封裝手冊、中文資料、英文資料,FD60-36S24B3R2真值表,
    發表于 03-21 18:33
    FD60-36<b class='flag-5'>S24B3R2</b> FD60-36<b class='flag-5'>S24B3R2</b>

    PFD50-36S24B3R2 PFD50-36S24B3R2

    電子發燒友網為你提供AIPULNION(AIPULNION)PFD50-36S24B3R2相關產品參數、數據手冊,更有PFD50-36S24B3R2的引腳圖、接線圖、封裝手冊、中文資料、英文資料,PFD50-36S24B3R2
    發表于 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

    電子發燒友網為你提供AIPULNION(AIPULNION)FD50-36S24B3(R)2相關產品參數、數據手冊,更有FD50-36S24B3(R
    發表于 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數據手冊#128 通道、20 位電流輸入 ADC

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

    ADC128S022配置為其他路數據的時候,數據不能正常讀出,為什么?

    整個系統的連接關系圖如下所示: (MG2455/51單片機-12MHz晶振)<--(模擬SPI)-->(ADC128S022) 問題: (1) 當使用第8路數據的時候
    發表于 01-13 06:22

    如何提高ADC128S052輸出能力?

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

    ADC128S022的驅動架構參考 ti-adc128s052.c,要如何做移位生成12bit結果呢?

    ADC128S022的驅動架構參考 ti-adc128s052.c, 具體如下圖所示。 上層讀取buf[1], buf[2]請問要如何做移位生成12bit結果呢?
    發表于 12-16 06:32

    求助,關于ADC128S102的采樣速率問題求解

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

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

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

    ADC128S102EVM評估模塊

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

    adc128s052設備樹配置,基準電壓不能被內核識別是怎么回事?

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

    用28035如何讀取ADC128S022的數據?

    請問用28035如何讀取ADC128S022的數據,或者說是該怎么配置
    發表于 11-18 08:34

    求助,關于adc3101 I2S采集問題求解

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

    ADC128S052、ADC128S052-Q1模數轉換器數據表

    電子發燒友網站提供《ADC128S052、ADC128S052-Q1模數轉換器數據表.pdf》資料免費下載
    發表于 07-22 11:12 ?0次下載
    <b class='flag-5'>ADC128S</b>052、<b class='flag-5'>ADC128S</b>052-Q1模數轉換器數據表

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

    電子發燒友網站提供《ADC128S102-SEP耐輻射8通道、50-kSPS至1-MSPS、12位ADC數據表.pdf》資料免費下載
    發表于 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>數據表
    主站蜘蛛池模板: 一级欧美日韩 | ts人妖在线观看 | 亚洲午夜久久久精品影院 | 国产小视频在线高清播放 | 狠狠色噜噜狠狠狠狠色综合久 | 国产h在线观看 | 久久精品乱子伦免费 | 欧美成人观看免费全部完小说 | 免费不卡毛片 | 午夜精品国产 | 日本三级网站在线线观看 | 成年男人永久免费看片 | 成人久久精品 | 色综合久久88色综合天天 | 日本口工福利漫画无遮挡 | 亚洲一级特黄特黄的大片 | 日本xxx69| 欧美婷婷| 欧美午夜网站 | 在线看免费视频 | 日本三级网站在线线观看 | 一级黄色录像视频 | 中文天堂最新版www官网在线 | 色婷婷色 | 欧美人与禽交 | 亚洲成人伊人网 | 亚洲欧美精品 | 一级特黄aaa大片29 | 浮荡视频在线观看免费 | 夜夜草天天干 | 黄色大片日本 | 欧美xxxxxbbbb | 国产自在自线午夜精品视频在 | 卡2卡三卡四卡精品公司 | 狠狠操欧美 | 欧美另类v | 特级一级黄色片 | 三级视频中文字幕 | 久久澡人人澡狠狠澡 | 12306影院午夜入口 | 午夜爱爱网站 |