<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x
    查看: 1751|回復: 0
    打印 上一主題 下一主題

    【瘋殼·嵌入式教程9】手把手教你做平板電腦-G-sensor 驅動實驗教程

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2022-8-24 18:24:08 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: 嵌入式開發 , 平板電腦 , G-sensor , 驅動實驗 , 教程
    G-sensor 驅動實驗教程
    ——瘋殼·嵌入式平板開發




    第一節 引言 --- G-sensor 電路原理圖詳解

      下圖來源于文檔 3128_sdk_a02_20170325.pdf 中第 2 頁和第 12 頁。
      如下兩張圖可以確定 G-sensor 是通過 I2c 與 cpu 相互通信的,cpu 作為主設備,G-sensor 作為從設備。因為 cpu 的 I2c 不僅僅與 G-sensor 相連,它連接了多個 I2c 從設備,并且通過從設備地址來確定當前和哪個從設備通信。


    圖1


    圖2

    第二節 G-sensor 驅動代碼結構

      $(dir)\rk3128-source\kernel\drivers\input\sensors\accel\mma8452.c
      從代碼路徑可以看出 G-sensor 驅動和 input,sensor 設備有莫大的關系。


    圖3
      $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-dev.c
      --- sensor 設備注冊,主要是注冊 sensor,input 設備,解析 dts 配置文件
      $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-i2c.c
      ---sensor 的 I2c 相關處理

    第三節 實驗代碼

    1.dts 修改:


    代碼1
    2.增加一個可以動態調節方向的測試函數如下(在 sensor-dev.c 中),用戶可以通過adb shell 或者串口去輸入數據完成屏幕方向調節的功能。



    代碼2
    3.輸入命令格式
    a.系統缺省的方向配置如下
    echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation b.測試命令如下
    echo gsensor_class={1, 0, 0, 0, 0, 1, 0, 1, 0} > /sys/class/gsensor_class/orientation

    echo gsensor_class={0, 1, 0, 1, 0, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation

    echo gsensor_class={0, 1, 0, 0, 0, 1, 1, 0, 0} > /sys/class/gsensor_class/orientation

    echo gsensor_class={0, 0, 1, 1, 0, 0, 0, 1, 0} > /sys/class/gsensor_class/orientation
    echo gsensor_class={0, 0, 1, 0, 1, 0, 1, 0, 0} > /sys/class/gsensor_class/orientation

    4.代碼調試中遇到問題
      如果 gsensor_set_orientation_online()直接返回 0 或 1 而不是 count,會出現什么情況?為什么?   
      如果 echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation 命令提示輸入不生效,可以嘗試輸入 su 命令提高一下權限。在我們開發板上面, adb 默認是 root 的,所以 adb shell 之后,直接是 root 用戶?梢杂 su 切換,也可以不用切換。

    第四節 實驗步驟 --- GSENSOR 怎么調節方向

      一般 GSENSOR 芯片貼片的位置變了,變換坐標就要跟著調整。
      我們 Gsensor 是貼片好了的,這個用戶無法更改,但是用戶可以模擬一下如果板子不平放而是豎著放,屏幕平放的情況看優酷,如果保證屏幕的正常顯示。

    第五節 實驗現象

      開發板放置成如下圖一方向,什么命令可以讓屏幕橫著播放視頻?
      echo gsensor_class={-1, 0, 0, 0, -1, 0, 0, 0, -1} > /sys/class/gsensor_class/orientation
      輸入如上命令后,屏幕變了,如圖二。


    圖4


    圖5




    文件下載請點擊: 9、G-sensor驅動實驗教程.pdf (631.95 KB)


    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷