SOC_SINGLE(xname, reg, shift, max, invert) 参数测试
来源:互联网 发布:中国9月经济数据 编辑:程序博客网 时间:2024/06/05 20:04
以前在使用这个接口时遇到的这5个参数中前面4个靠字面含义可知,第5个invert就有点含糊了,它指的是谁的invert,当时没有深究,今天终于找到到了它的作用。
我在使用一颗codec时有个mix的开关需要使用SOC_SINGLE()这个宏来描述一下,看datasheet上bit15=0为power off,bit15=1为poweron。于是我还按照原来的用法把invert设置为了0,结果在使用amixer操作这个mix时,得到的回显是这样的:
[root@hello ~]#amixer cget numid=14numid=14,iface=MIXER,name='Analog DACR1 Power Control' ; type=BOOLEAN,access=rw------,values=1 : values=on[root@Vimicro ~]
从回显上看这个mix应该是处于power on状态的,但实际上这个通路是关闭的,于是手动设置了一下:
[root@Vimicro ~]#amixer cset numid=14 1numid=14,iface=MIXER,name='Analog DACR1 Power Control' ; type=BOOLEAN,access=rw------,values=1 : values=off[root@Vimicro ~]
即将对应寄存器的bit15设置为1,则回显显示是poweroff状态,但是实际的codec通路却是打开了,因为有输出波形了。所以看到这里应该也能联想到SOC_SINGLE()中的invert的作用了。于是果断把它设置为1,之后再次测试,则回显的提示和实际的硬件状态才吻合了。现在也能想通了,你想那么多的codec厂家,每个厂家都有自己的寄存器值含义,并不一定大家都认为1是poweron状态,0是poweroff状态,所以为了兼容所有厂家,boom,invert出现了。
本来这不值得记录的,但是呢,我今天来公司加班了,总得有点成果不是。
0 0
- SOC_SINGLE(xname, reg, shift, max, invert) 参数测试
- shell shift 移动参数
- Reg
- reg
- reg
- shift应用,求参数之和
- REG QUERY命令参数(注册表)
- REG QUERY命令参数(注册表)
- invert
- invert
- shift:造成参数变量号码偏移
- shell--shift左移参数、函数
- VB键盘事件shift参数,vb*mask
- shift
- shift
- shift
- 获取url参数window.location.search.substr(1).match(reg)
- 巧用shift实现打印所有的位置参数
- 与HotSpot虚拟机对象有关的问题
- Maven那点事儿(Eclipse版)
- 线段树单点更新 区间求和,求最值
- hdu5726 GCD 多校1
- 网易实习生笔试题:二叉树
- SOC_SINGLE(xname, reg, shift, max, invert) 参数测试
- (1) redis windows安装
- HDU5724 Chess
- 134. Gas Station
- 如何判断对象是否“存活”
- JVM中的垃圾收集算法
- UVA - 442 Matrix Chain Multiplication
- UVA - 11111 Generalized Matrioshkas
- (多校第二场1011)HDU5744 Keep On Movin