[Android][sensor][accel]SEE架构下加速度量程修改

以A+G 器件T1000为例:

修改

在Ap侧,修改json文件,参考路径如下

vendor/qcom/proprietary/sensors-see/registry/config/xxx/sdm429w_t1000_0.json

  "t1000_0":{
    "owner": "sns_t1000",
    ".accel":{
      "owner": "sns_t1000",
      ".config":{
        "owner": "sns_t1000",
        "is_dri":{ "type": "int", "ver": "0",
          "data": "1"
        },
        "hw_id":{ "type": "int", "ver": "0",
          "data": "0"
        },
        "res_idx":{ "type": "int", "ver": "0",
          "data": "3"   //由4改为3,量程从16g改为8g
        },
        "sync_stream":{ "type": "int", "ver": "0",
          "data": "0"
        }
      }
    },

修改原理

T1000的量程设置在bp侧的adsp_proc/ssc/sensors/t1000/src/sns_t1000_sensor.c 中

rangeMinMax[1].flt =
       ACC_RANGE_UNIT_G(ACC_RANGE_MAX - state->resolution_idx, hi_range) * ACC_CONVERSION;

其中,resolution_idx即为json文件中的res_idx,ACC_RANGE_MAX在以下结构体中:adsp_proc/ssc/sensors/t1000/src/sns_t1000_sensor_instance.h

typedef enum t1000_accel_fsr
{
  ACC_RANGE_16G = 0,
  ACC_RANGE_8G  = 1,
  ACC_RANGE_4G  = 2,
  ACC_RANGE_2G  = 3,
  ACC_RANGE_1G  = 4,
  ACC_RANGE_MAX = ACC_RANGE_1G
} t1000_accel_fsr;
逻辑:
ACC_RANGE_MAX = ACC_RANGE_1G = 4

量程   = ACC_RANGE_MAX - state->resolution_idx
      = 4 - res_idx

将res_idx 值由 4 改为 3 ,量程 = 4 – 3 = 1 ,即ACC_RANGE_8G 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霁之鸢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值