耳机检测要中断和ADC都为低时才有效
时间:10-02
整理:3721RD
点击:
现在做23D耳机检测时,有大部分耳机老检测不到,发现是要检测到中断和ADC0都为低的时候才会检测到耳机,但软件正常MTK流程中只要中断检测就行了,软件都是按MTK默认的流程走的,现在要插入耳机后要按挂断键耳机才能检测得到,是哪里问题?
AUX_EINT_HISR是耳机检测的处理中断,检查耳机插入时是否触发了这个中断;
如果中断被触发,并且向上层报了正确的消息的话,问题就出在上层了;
若没有正确触发,价差一下aux_state的初始值,也许是中断的触发初始值和耳机插入时硬件给出的不一致。
ADC0是你的耳机偏置电压度量脚吧?
中断触发是正常的,就是换了ADC,用MTK默认的ADC2是OK,换成ADC0了就不行了!
如果是这样的话,可能可以测量一下耳机插入时耳机的偏置电压;分析一下
void: aux_read_result(AUX_ID *pre_id,kal_uint8 aux_adc_logic_id,local_para_struct *buf)函数里面的
else if(aux_detect_mode==KAL_TRUE) /*Single mode*/
条件判断的代码,看看你测量到的电压和手机读到的电压是否一致;是否在判断条件里面。
MTK为啥要用中断加ADC来判断耳机插拔呢
有些机型是用专用耳机接口的,会有误触发的现象,若用ADC和中断一起判断耳机插拔,才会准确。
是中断加ADC检测耳机吗?
我们的项目都通过中断来检测耳机的
到今天终于对耳机的插入检测有所了解了,
真是有些悲哀。
可惜还没能做到深入理解,现在只是知道一些皮毛,
我一直以为只用ADC判断