查看: 1721|回復: 0
打印 上一主題 下一主題

【瘋殼·嵌入式教程9】手把手教你做平板電腦-G-sensor 驅動(dòng)實(shí)驗教程

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-8-24 18:24:08 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
G-sensor 驅動(dòng)實(shí)驗教程
——瘋殼·嵌入式平板開(kāi)發(fā)




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

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


圖1


圖2

第二節 G-sensor 驅動(dòng)代碼結構

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


圖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 相關(guān)處理

第三節 實(shí)驗代碼

1.dts 修改:


代碼1
2.增加一個(gè)可以動(dòng)態(tài)調節方向的測試函數如下(在 sensor-dev.c 中),用戶(hù)可以通過(guò)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.代碼調試中遇到問(wèn)題
  如果 gsensor_set_orientation_online()直接返回 0 或 1 而不是 count,會(huì )出現什么情況?為什么?   
  如果 echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation 命令提示輸入不生效,可以嘗試輸入 su 命令提高一下權限。在我們開(kāi)發(fā)板上面, adb 默認是 root 的,所以 adb shell 之后,直接是 root 用戶(hù)?梢杂 su 切換,也可以不用切換。

第四節 實(shí)驗步驟 --- GSENSOR 怎么調節方向

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

第五節 實(shí)驗現象

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


圖4


圖5




文件下載請點(diǎn)擊: 9、G-sensor驅動(dòng)實(shí)驗教程.pdf (631.95 KB)


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

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页