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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

全志R128外設模塊配置—ADC按鍵配置方法

冬至子 ? 來源:丨budboool ? 作者:丨budboool ? 2023-10-20 16:41 ? 次閱讀

ADC 按鍵配置方法

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的硬件設置。

key_hardware-16976822125112.png

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

    關注

    54

    文章

    8471

    瀏覽量

    148462
  • adc
    adc
    +關注

    關注

    99

    文章

    6607

    瀏覽量

    547628
  • 輸入電壓
    +關注

    關注

    1

    文章

    722

    瀏覽量

    16856
  • FreeRTOS
    +關注

    關注

    12

    文章

    485

    瀏覽量

    63390
  • ADC采樣
    +關注

    關注

    0

    文章

    134

    瀏覽量

    13081
  • 按鍵中斷
    +關注

    關注

    0

    文章

    15

    瀏覽量

    6496
  • R128
    +關注

    關注

    0

    文章

    41

    瀏覽量

    216
收藏 0人收藏

    評論

    相關推薦

    DshanMCU-R128s2 ADC按鍵配置方法

    FreeRTOS平臺上使用的按鍵ADC-KEY,采用的ADC模塊為GPADC。 按鍵功能驅動的實現是通過
    的頭像 發表于 12-22 19:11 ?2541次閱讀
    DshanMCU-<b class='flag-5'>R128</b>s2 <b class='flag-5'>ADC</b><b class='flag-5'>按鍵</b><b class='flag-5'>配置</b><b class='flag-5'>方法</b>

    R128 BLE最高吞吐量測試正確配置測試方法

    R128使用前我們需要了解BLE的最高吞吐量,以方便評估相關功能的開發。
    的頭像 發表于 10-27 17:17 ?1670次閱讀
    <b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>R128</b> BLE最高吞吐量測試正確<b class='flag-5'>配置</b>測試<b class='flag-5'>方法</b>

    R128內存泄漏調試案例分享

    硬件:R128 軟件:FreeRTOS + rtplayer\_test(Cedarx)+ AudioSystem
    的頭像 發表于 11-20 17:27 ?1221次閱讀
    <b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>R128</b>內存泄漏調試案例分享

    詳解R128 RTOS安全方案功能

    用于設置存儲器區域的安全屬性。 R128 上有些外設可以識別安全屬性,比如 CE、DMA 等。大部分外設需要借助 SPC 來配置其安全屬性。其中的 PPC 對應
    發表于 12-28 15:59

    R128硬件設計指南①

    。添加按鍵時保證按鍵按下后,ADC網絡電壓范圍為 0~1.08V,最小間隔大于 200mV。 LCD電路接口R128 支持一路 RGB屏接口和一路 SPI屏接口。其中 RGB屏接口可
    發表于 01-04 09:23

    R128 SDK架構與目錄結構

    R128 S2 是提供的一款 M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) 三核異構 SoC,同時芯片內部 SIP 有 1M SRAM、8M LSPSRAM、8M
    發表于 01-05 10:05

    R128 Devkit開發板原理圖模塊介紹及使用說明

    :CH341SER.EXE 購買鏈接 百問科技淘寶店 - R128 DevKit 原理圖模塊介紹R128 模組
    發表于 01-17 09:45

    R128芯片應用開發案例——按鍵輸入

    按鍵3腳 載入方案 我們使用的開發板是 R128-Devkit,需要開發 C906 核心的應用程序,所以載入方案選擇r128s2_module_c906 $ source envsetup.sh
    發表于 10-10 14:34

    R128芯片應用開發案例——ADC驅動煙霧傳感器

    、酒精、氫氣等氣體。 首先我們搭建電路,如下: 引腳 按鍵 PB0 MQ2 AO腳 GND MQ2 GND 3V3 MQ2 VCC 載入方案 我們使用的開發板是 R128-Devkit,需要開發
    發表于 10-16 11:34

    R128外設模塊配置——ADC按鍵配置方法

    ADC 按鍵配置方法 FreeRTOS平臺上使用的按鍵ADC-KEY,采用的
    發表于 10-20 11:04

    R128軟件配置——RTOS 軟件包配置

    說明 了解了menuconfig的基本操作,我們再來了解一下 RTOS 的 menuconfig 具體都有是么內容。 Build target sunxi arch 分別選擇芯片的系列,對于R128
    發表于 10-20 15:31

    R128開發經驗分享】啟用USB ADB以及無線ADB配置方法

    首先在FreeRTOS的環境下,選擇r128_c906_pro: source envsetup.sh lunch_rtos r128s2_pro_c906 USB ADB的配置比較常規,注意以下
    發表于 10-24 17:29

    R128外設模塊配置】USB外設功能配置

    USB 外設功能配置 USB 功能簡介 USB 功能模塊包括了USB Host,USB Device 和OTG 功能。 USB Host 目前已經支持上的功能有:Mass Storage,UVC
    發表于 10-30 11:37

    R128按鍵控制蜂鳴器GPIO配置詳解

    按鍵控制蜂鳴器 首先我們搭建電路,如下: 引腳 按鍵 PA25 按鍵1腳 GND 按鍵3腳 PA29 蜂鳴器觸發腳 載入方案 我們使用的開發板是
    發表于 11-27 10:16

    R128啟用USB ADB以及無線ADB配置方法

    首先在FreeRTOS的環境下,選擇r128\_c906\_pro
    的頭像 發表于 11-01 11:43 ?1479次閱讀
    <b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>R128</b>啟用USB ADB以及無線ADB<b class='flag-5'>配置</b><b class='flag-5'>方法</b>
    主站蜘蛛池模板: 国内一区二区三区精品视频 | 四虎在线视频 | 天天摸天天看天天做天天爽 | 欧美精品首页 | 日本免费观看完整视频 | 天堂看动漫 | 天天摸日日摸 | 狠狠干夜夜操 | 六月婷婷啪啪 | 天天天天添天天拍天天谢 | 黄网站视频在线观看 | 人人干狠狠干 | 俺去久久 | 欧美黑人性xxx猛交 欧美黑人性受xxxx精品 | 亚洲午夜网未来影院 | 色456| 亚洲www.| av在线天堂网 | 欧美在线高清视频 | 四虎新地址4hu 你懂的 | 午夜免费福利片观看 | 免费黄色大片视频 | 日本黄色小视频在线观看 | 天天操天天摸天天射 | 在线观看中文字幕第一页 | 美女被视频网站在线看九色 | 天天干天天拍天天射天天添天天爱 | www在线观看 | 丁香六月综合激情 | 喷潮白浆 | 精品午夜久久影视 | 三级免费观看 | 亚洲29p| 天天做天天爰夜夜爽 | 香蕉久久久久久狠狠色 | 天天操人人干 | 国产四虎| 免费视频网站在线看视频 | 老色批视频 | 亚洲第一成网站 | 亚洲精品九色在线网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品