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

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

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

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

5.100ASK_V853-PRO開(kāi)發(fā)板支持按鍵輸入

嵌入式Linux那些事 ? 來(lái)源:嵌入式Linux那些事 ? 作者:嵌入式Linux那些事 ? 2023-05-11 10:02 ? 次閱讀

0.前言

? 100ASK_V853-PRO開(kāi)發(fā)板上共有5個(gè)功能按鍵,本章節(jié)跟大家討論如何使能這五個(gè)按鍵。

pYYBAGRcTHSAZezfABPXP4Ax_b4999.png

1.V853功能按鍵原理

? 100ASK_V853-PRO開(kāi)發(fā)板上提供的5個(gè)按鍵是通過(guò)GPADC高精度數(shù)模轉(zhuǎn)換模塊模擬出5個(gè)功能按鍵。GPADC 是 12bit

分辨率,8 位采集精度的模數(shù)轉(zhuǎn)換模塊,具體通道數(shù)可以查看對(duì)應(yīng)的 spec 說(shuō)明?檔,模擬輸?范 圍 0?1.8V,最?采樣率

1MHz,并且?持?jǐn)?shù)據(jù)?較,?校驗(yàn)功能,同時(shí)?作于可配置?下?作模式:

  1. Single mode:在指定的通道完成?次轉(zhuǎn)換并將數(shù)據(jù)放在對(duì)應(yīng)數(shù)據(jù)寄存器中;
  2. Single-cycle mode:在指定的通道完成?個(gè)周期轉(zhuǎn)換并將數(shù)據(jù)放在響應(yīng)數(shù)據(jù)寄存器中;
  3. Continuous mode:在指定的通道持續(xù)轉(zhuǎn)換并將數(shù)據(jù)放在響應(yīng)數(shù)據(jù)寄存器中;
  4. Burst mode:邊采樣邊轉(zhuǎn)換并將數(shù)據(jù)放? 32 字節(jié)的 FIFO,?持中斷控制。

? 部分 GPADC 接?也開(kāi)始慢慢?于 KEY 模塊按鍵的讀取,?般包括 VOL+、VOL-、HOME、MENU、ENTER 等等, GPADC0 ?于 KEY 的電路如上圖。 AVCC-AP 為 1.8V 的供電,不同的按鍵按下,GPADC0 ?的電壓不同,CPU 通過(guò)對(duì)這個(gè)電壓的采樣來(lái)確定具體是那 ?個(gè)按鍵按下。如上圖,VOL+、VOL-、MENU、ENTER、HOME/UBOOT 對(duì)應(yīng)的電壓分別為 0.21V、0.41V、 0.59V、0.75V、0.88V。具體可以查看《100ASK-V853_Pro系統(tǒng)開(kāi)發(fā)手冊(cè).pdf》中第五篇驅(qū)動(dòng)開(kāi)發(fā)的第?三章 Linux GPADC 開(kāi)發(fā)指南。

2.GPADC驅(qū)動(dòng)

GPADC驅(qū)動(dòng)存放的位置為

tina-v853-open/kernel/linux-4.9/drivers/input/sensor/sunxi_gpadc.c
tina-v853-open/kernel/linux-4.9/drivers/input/sensor/sunxi_gpadc.h

3.GPADC內(nèi)核配置

在Tina的根目錄下輸入make kernel_menuconfig

book@100ask:~/workspaces/tina-v853-open$ make kernel_menuconfig

進(jìn)入如下目錄中,輸入Y使能SUNXI GPADC驅(qū)動(dòng)。

→ Device Drivers 
	→ Input device support 
		→ Sensors
			 <*>   SUNXI GPADC

配置完成后如下圖所示。

pYYBAGRcTIOAYYXmAAC6ZODQE4M486.png

保存并退出內(nèi)核配置界面。

4.GPADC設(shè)備樹(shù)配置

內(nèi)核設(shè)備樹(shù)存放位置:

tina-v853-open/device/config/chips/v853/configs/100ask/board.dts

進(jìn)入該目錄后輸入vi board.dts

book@100ask:~/workspaces/tina-v853-open$ cd device/config/chips/v853/configs/100ask/
book@100ask:~/workspaces/tina-v853-open/device/config/chips/v853/configs/100ask$ ls
BoardConfig.mk  board.dts  buildroot  env.cfg  linux-4.9  sys_config.fex  uboot-board.dts
book@100ask:~/workspaces/tina-v853-open/device/config/chips/v853/configs/100ask$ vi board.dts

找到&gpadc節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)保存有采樣相關(guān)的配置,鍵值,電壓數(shù)據(jù)等。

&gpadc {
    channel_num = <1>;                        // 使用1通道
    channel_select = <0x01>;                  // 選擇 0x01 通道
    channel_data_select = <0>;                // 啟用數(shù)據(jù)通道
    channel_compare_select = <0x01>;          // 啟用通道比較功能
    channel_cld_select = <0x01>;              // 啟用數(shù)據(jù)小于比較功能
    channel_chd_select = <0>;                 // 啟用數(shù)據(jù)大于比較功能
    channel0_compare_lowdata = <1700000>;     // 小于這個(gè)值觸發(fā)中斷
    channel0_compare_higdata = <1200000>;     // 大于這個(gè)值觸發(fā)中斷
    channel1_compare_lowdata = <460000>;      // 小于這個(gè)值觸發(fā)中斷
    channel1_compare_higdata = <1200000>;     // 大于這個(gè)值觸發(fā)中斷
    key_cnt = <5>;                            // 按鍵數(shù)量
    key0_vol = <210>;                         // 按鍵電壓,單位mv
    key0_val = <115>;                         // 按下按鍵的鍵值
    key1_vol = <410>;                         // 按鍵電壓,單位mv
    key1_val = <114>;                         // 按下按鍵的鍵值
    key2_vol = <590>;                         // 按鍵電壓,單位mv
    key2_val = <139>;                         // 按下按鍵的鍵值
    key3_vol = <750>;                         // 按鍵電壓,單位mv
    key3_val = <28>;                          // 按下按鍵的鍵值
    key4_vol = <880>;                         // 按鍵電壓,單位mv
    key4_val = <102>;                         // 按下按鍵的鍵值
    status = "okay";                          // 啟用GPADC
};

我們還能通過(guò)board.dts文件中知道還有一部分不經(jīng)常需要修改的配置保存在sun8iw21p1.dtsi文件中,進(jìn)入該目錄,并打開(kāi)該文件。

book@100ask:~/workspaces/tina-v853-open$ cd kernel/linux-4.9/arch/arm/boot/dts/
book@100ask:~/workspaces/tina-v853-open/kernel/linux-4.9/arch/arm/boot/dts$ vi sun8iw21p1.dtsi

查看gpadc節(jié)點(diǎn),可以發(fā)現(xiàn)這里的配置保存有中斷和時(shí)鐘信息,但默認(rèn)不使能。注意:這里可以不修改,因?yàn)檫@里的所設(shè)置的status配置會(huì)被board.dts中的status覆蓋,只要在board.dts設(shè)置為使能,最終生成打包進(jìn)鏡像的設(shè)備樹(shù)都為使能狀態(tài)。

gpadc:gpadc@2009000 {
    compatible = "allwinner,sunxi-gpadc";         // 用于驅(qū)動(dòng)和設(shè)備的綁定
    reg = <0x0 0x02009000 0x0 0x400>;             // 設(shè)備使用的寄存器地址
    interrupts = ;      // 設(shè)備使用的中斷
    clocks = <&clk_gpadc>;                        // 設(shè)備使用的時(shí)鐘
    status = "disabled";                          // 配置默認(rèn)不啟用GPADC
};

5.增加getevent測(cè)試包

在Tina根目錄下執(zhí)行make menuconfig

book@100ask:~/workspaces/tina-v853-open$ make menuconfig

進(jìn)入U(xiǎn)tilities目錄下,輸入Y選中g(shù)etevent

 > Utilities
 	 <*> getevent.................................... getevent for Android Toolbox 

選中完成后如下圖所示。

poYBAGRcTI6AHKMkAAGNQxg_X9w239.png

保存并退出Tina配置界面。

6.編譯、打包和燒寫(xiě)

在Tina的根目錄下,輸入make -j32

book@100ask:~/workspaces/tina-v853-open$ make -j32
...
book@100ask:~/workspaces/tina-v853-open$ pack
...

? 生成鏡像后,將tina-v853-open/out/v853/100ask/openwrt/目錄下的v853_linux_100ask_uart0.img鏡像拷貝到Windows電腦主機(jī)中,使用全志PhoenixSuit燒寫(xiě)工具燒寫(xiě)到開(kāi)發(fā)板上。

? 插上12V的電源線,和兩條Type-C,把開(kāi)關(guān)撥向電源接口方向上電,燒寫(xiě)新鏡像后等待啟動(dòng)系統(tǒng),在命令行中輸入getevent可以進(jìn)入測(cè)試程序,通過(guò)輸出的打印信息我們知道,我們的gpadc驅(qū)動(dòng)上報(bào)的信息使用的

/dev/input/event1,此時(shí)按下按鍵,會(huì)讀取按鍵的鍵值。

root@TinaLinux:~# getevent
add device 1: /dev/input/event2
  name:     "ft6336"
add device 2: /dev/input/event1
  name:     "sunxi-gpadc0"
add device 3: /dev/input/event0
  name:     "axp2101-pek"
poll 4, returned 1
/dev/input/event1: 0001 0073 00000001
poll 4, returned 1
/dev/input/event1: 0000 0000 00000000
poll 4, returned 1
/dev/input/event1: 0001 0073 00000000
poll 4, returned 1
/dev/input/event1: 0000 0000 00000000

按下Crtl+C結(jié)束測(cè)試。

7.編寫(xiě)一個(gè)測(cè)試應(yīng)用程序

通過(guò)上一章節(jié)的測(cè)試,我們知道gpadc使用的/dev/input/event1上報(bào)按鍵數(shù)據(jù),則我們編寫(xiě)的應(yīng)用程序中獲取數(shù)據(jù)的節(jié)點(diǎn)應(yīng)該為/dev/input/event1,應(yīng)用程序如下所示。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define DEV_PATH "/dev/input/event1" //Modified to gpadc drive reporting node
static int gpadc_fd = 0;

unsigned int test_gpadc(const char * event_file)
{
        int code = 0, i;

        struct input_event data;

        gpadc_fd = open(DEV_PATH, O_RDONLY);

        if(gpadc_fd <= 0)
        {
                printf("open %s error!n", DEV_PATH);
                return -1;
        }

        for(i = 0; i < 10; i++) //read 10 times
        {
                read(gpadc_fd, &data, sizeof(data));
                if(data.value == 1)
                {
                        printf("key %d pressedn", data.code);
                }
                else if(data.value == 0)
                {
                        printf("key %d releaseedn", data.code);
                }
        }
        close(gpadc_fd);
        return 0;
}

int main(int argc,const char *argv[])
{
    int rang_low = 0, rang_high = 0;
        return test_gpadc(DEV_PATH);

8.編譯應(yīng)用程序并進(jìn)行測(cè)試

新建一個(gè)gpadc目錄,存放應(yīng)用程序和可執(zhí)行程序。

book@100ask:~/workspaces$ mkdir gpadc_test
book@100ask:~/workspaces$ cd gpadc_test/
book@100ask:~/workspaces/gpadc_test$ vi gpadc_test.c

將上一小節(jié)編寫(xiě)的應(yīng)用程序復(fù)制到gpadc_test.c中保存。

編寫(xiě)完成后,我們需要提供編譯環(huán)境給gpadc_test應(yīng)用程序,輸入

book@100ask:~/workspaces/gpadc_test$ export STAGING_DIR=~/workspaces/tina-v853-open/prebuilt/rootfsbuilt/arm/toolchainsunxi-musl-gcc-830/toolchain/arm-openwrt-linux-muslgnueabi

使用交叉編譯工具鏈編譯二進(jìn)制文件,注意:需要Tina SDK包目錄需要更換為自己的目錄。

book@100ask:~/workspaces/gpadc_test$ ~/workspaces/tina-v853-open/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-gcc -o gpadc_test gpadc_test.c

編譯完成后會(huì)再當(dāng)前目錄下生成一個(gè)gpadc_test可執(zhí)行程序,將其拷貝到開(kāi)發(fā)板上運(yùn)行即可。下面使用TF卡的方式將文件拷貝到開(kāi)發(fā)板上,此時(shí)假設(shè)你已經(jīng)將文件拷貝到TF卡中,插入開(kāi)發(fā)板后,在命令行中輸入以下命令掛在SD卡到/mnt/目錄下,并將gpadc_test應(yīng)用程序拷貝到、root目錄下。

root@TinaLinux:/# mount /dev/mmcblk1p1 /mnt/
[   26.744697] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
root@TinaLinux:/# cd /mnt/
root@TinaLinux:/mnt# ls
System Volume Information  gpadc_test
root@TinaLinux:/mnt# cp gpadc_test /root/

進(jìn)入/root目錄下執(zhí)行測(cè)試程序,該程序讀取10次值會(huì)自動(dòng)結(jié)束才測(cè)試

root@TinaLinux:/mnt# cd /root/
root@TinaLinux:~# ./gpadc_test
key 115 pressed
key 0 releaseed
key 115 releaseed
key 0 releaseed
key 114 pressed
key 0 releaseed
key 114 releaseed
key 0 releaseed
key 139 pressed
key 0 releaseed
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19111

    瀏覽量

    304845
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11296

    瀏覽量

    209352
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5035

    瀏覽量

    97382
  • 按鍵輸入
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6156
  • type-c
    +關(guān)注

    關(guān)注

    549

    文章

    1812

    瀏覽量

    268757
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    1.100ASK_V853-PRO 環(huán)境配置及編譯燒寫(xiě)

    本章主要介紹關(guān)于100ASK_V853-PRO開(kāi)發(fā)板的Tina SDK包的下載和編譯打包生成鏡像,并將鏡像燒錄到100ASK_V853-PRO開(kāi)發(fā)板上。在進(jìn)行100
    的頭像 發(fā)表于 05-10 11:49 ?1454次閱讀
    1.100<b class='flag-5'>ASK_V853-PRO</b> 環(huán)境配置及編譯燒寫(xiě)

    2.100ASK-V853-PRO開(kāi)發(fā)板支持WIFI和有線網(wǎng)卡

    ? 通過(guò)上一章節(jié),我們已經(jīng)成功下載Tina SDK包,完成編譯并燒寫(xiě)Tina Linux系統(tǒng),接下來(lái)展示100ASK_V853-PRO開(kāi)發(fā)部如何通過(guò)WIFI和有線網(wǎng)卡進(jìn)行上網(wǎng)。
    的頭像 發(fā)表于 05-10 14:44 ?1351次閱讀
    2.100<b class='flag-5'>ASK-V853-PRO</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>支持</b>WIFI和有線網(wǎng)卡

    3.100ASK_V853-PRO開(kāi)發(fā)板支持七寸RGB屏

    ? 在前面我們已經(jīng)學(xué)習(xí)了關(guān)于100ASK_V853-PRO編譯和燒寫(xiě),接下來(lái)就是在Tina SDK下去適配七寸RGB屏。
    的頭像 發(fā)表于 05-10 15:26 ?1203次閱讀
    3.100<b class='flag-5'>ASK_V853-PRO</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>支持</b>七寸RGB屏

    6.100ASK_V853-PRO開(kāi)發(fā)板支持MIPI攝像頭

    ? 100ASK_V853-PRO開(kāi)發(fā)板支持4LINE的MIPI攝像頭和2LINE的MIPI攝像頭,使用百問(wèn)網(wǎng)提供的Tina SDK包生成的鏡像,系統(tǒng)已經(jīng)配置好了,可以直接使用。本章介紹如何去適配一個(gè)MIPI攝像頭,本文所用的2
    的頭像 發(fā)表于 05-11 10:08 ?1571次閱讀
    6.100<b class='flag-5'>ASK_V853-PRO</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>支持</b>MIPI攝像頭

    7.100ASK_V853-PRO開(kāi)發(fā)板支持人形檢測(cè)和人臉識(shí)別

    ? V853 芯片內(nèi)置一顆 NPU核,其處理性能為最大 1 TOPS 并有 128KB 內(nèi)部高速緩存用于高速數(shù)據(jù)交換,支持 OpenCL、OpenVX、android NN 與 ONNX 的 API
    的頭像 發(fā)表于 05-12 10:28 ?3209次閱讀
    7.100<b class='flag-5'>ASK_V853-PRO</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>支持</b>人形檢測(cè)和人臉識(shí)別

    9.100ASK_V853-PRO開(kāi)發(fā)板支持E907小核開(kāi)發(fā)

    ? 100ASK_V853-PRO開(kāi)發(fā)板V853芯片集成Arm Cortex-A7和RISC-V E907 雙CPU,玄鐵E907 是一款完全可綜合的高端 MCU 處理器。它兼容 R
    的頭像 發(fā)表于 05-12 10:35 ?1463次閱讀
    9.100<b class='flag-5'>ASK_V853-PRO</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>支持</b>E907小核<b class='flag-5'>開(kāi)發(fā)</b>

    11. 100ASK-V853-PRO開(kāi)發(fā)板 RGB屏測(cè)試指南

    固件位于資料光盤(pán)中的10_測(cè)試鏡像/1.測(cè)試七寸RGB屏/v853_linux_100ask_uart0.img
    的頭像 發(fā)表于 06-16 15:36 ?979次閱讀
    11. 100<b class='flag-5'>ASK-V853-PRO</b><b class='flag-5'>開(kāi)發(fā)板</b> RGB屏測(cè)試指南

    全志V853開(kāi)發(fā)板原理圖

    ,通過(guò)上拉或下拉執(zhí)行啟動(dòng)。 開(kāi)發(fā)板預(yù)留了SPI NOR、SPI NAND的焊盤(pán),可以焊接 V853 芯片支持的 SPI NOR、SPI NAND 儲(chǔ)存器 BOOT SEL 0BOOT SEL
    發(fā)表于 01-12 09:48

    【免費(fèi)試用04期】全志V853開(kāi)發(fā)板試用活動(dòng)

    本期試用名單:mameng lingxin-yuhe春天一滿屋 大菠蘿AlphaALSET試用報(bào)告:mameng【全志V853開(kāi)發(fā)板試用】國(guó)產(chǎn)之光——全志V853開(kāi)發(fā)硬件介紹【全志
    發(fā)表于 07-21 10:27

    【開(kāi)源硬件大賽】基于全志V853設(shè)計(jì)的全功能BTB學(xué)習(xí)開(kāi)發(fā)板

    100ask_V853-Pro開(kāi)發(fā)簡(jiǎn)述核心資源簡(jiǎn)述BTB核心,板載EMMC DDR V853 主芯片 AXP電源芯片背面
    發(fā)表于 12-07 15:03

    100ASK_全志V853-PRO開(kāi)發(fā)板 環(huán)境配置及編譯燒寫(xiě)

    開(kāi)發(fā)板的12V電源線,并將兩條Type-C分別連接到開(kāi)發(fā)板和電腦端以后,將開(kāi)關(guān)撥向靠近12V電源的方向即可將開(kāi)發(fā)板上電。然后先按住 100
    發(fā)表于 05-04 10:14

    V853 PER1開(kāi)發(fā)板PCB文件

    V853_PER1開(kāi)發(fā)板PCB文件,使用allegro進(jìn)行設(shè)計(jì)
    發(fā)表于 10-21 15:14 ?0次下載

    100ASK_V853-PRO開(kāi)發(fā)板支持人形檢測(cè)與人臉檢測(cè)

    本文詳細(xì)描述了100ASK_V853-PRO開(kāi)發(fā)板運(yùn)行測(cè)試程序檢測(cè)人形和人臉的過(guò)程,輸出文件包含畫(huà)框圖像結(jié)果、執(zhí)行性能、模型精確度。下面直接展示該應(yīng)用程序處理的結(jié)果。
    的頭像 發(fā)表于 04-27 11:00 ?677次閱讀
    100<b class='flag-5'>ASK_V853-PRO</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>支持</b>人形檢測(cè)與人臉檢測(cè)

    全志V853開(kāi)發(fā)板雙目攝像頭模組原理圖20220624

    全志V853開(kāi)發(fā)板雙目攝像頭模組原理圖20220624
    發(fā)表于 10-19 15:11 ?25次下載

    全志V853開(kāi)發(fā)板原理圖20220624

    全志V853開(kāi)發(fā)板原理圖20220624
    發(fā)表于 10-19 15:11 ?20次下載
    主站蜘蛛池模板: 91久久99久91天天拍拍| 国产成人拍精品免费视频爱情岛| 达达兔午夜一级毛片| 国产亚洲欧洲日韩在线观看| 蜜桃狠狠色伊人亚洲综合网站| 天天躁日日躁狠狠躁中文字幕老牛| 中文国产乱码在线人妻一区二区 | 果冻传媒2021精品影视| 欧美极品尿交| 亚洲午夜久久久精品电影院| 厨房玩朋友娇妻中文字幕| 日本激情在线| 伊人久久综合影院| 国产久久热99视频| 秋霞伦理电影在2017韩国在线伦| 中文字幕1| 免费夜色污私人影院网站| 在线欧美精品一区二区三区| 火影忍者高清无码黄漫| 日本动漫henta videos| 99久久国产露脸精品国产麻豆| 久久精品国产亚洲AV妓女不卡| 无敌在线视频观看免费| 苍井空小公主qvod| 美女扒开屁股让男人桶| 一线高清视频在线播放| 精品久久久久久综合网| 亚洲欧洲日产国码中学| 国产久久re6免费热在线| 亚洲欧洲日产国码中学| 美国一级大黄一片免费的网站| 99热这里只有精品| 蜜桃视频无码区在线观看| xxxxxx视频| 欧美巨大xxxx做受孕妇视频| 大学生高潮无套内谢视频| 亚洲AV久久无码精品蜜桃| 国产成人精品男人免费| 亚洲精品在看在线观看| 好紧好湿太硬了我太爽了小说 | 99久久精品费精品国产一区二|