I try to use the noise sensor. I found the function BSP_Mic_AKU340_Sense(), but it returns by every call the same integer value: -2147483648
Do I do something wrong?
I found the implementation in a post on https://xdk.bosch-connectivity.com/community/-/message_boards/message/449418#_19_message_450159.
Solved! Go to Solution.
I found the answer in the BSP_Mic_AKU340.c
* Deprecated */
#endif /* BCDS_FEATURE_BSP_MIC_AKU340 */
I found this function NoiseSensor_ReadRmsValue. Is this the right function to use? It returns me always 0.
Please use the interface functions of Noise sensor module from xdk110\Common\source\Sensor\NoiseSensor.c. From application, noise sensor can be used by sequentially calling the functions,
You can refer VirtualXdkDemo application on usage of noise sensor.
I have used the three methods:
But it returns me the same value every time.
Changing the frequency to ADC_CENTRAL_NO_OF_SAMPLES, I notice that the NoiseSensor.c/ProcessCH4Data method is visited twice per second. The first, it reads the correct value, and after, reads a constant value.
I also have noticed that the method AdcCentral.c/receiveProcess has been visited twice. But I have no access to BCDS_GuardedTask.c/GuardedTask_Initialize method to continue investigating.
On the other hand, I have found the Mcu_Adc.c/McuAdcDmaScanChannelCb method, that choose between two buffers to write, and the em_dma.c/DMA_IRQHandler method, that toggle the adcPtr->_DriverCtx.PointerValue value, to use one of the two buffers each time. When I set Mcu_Adc.c/McuAdcDmaScanChannelCb/currentActiveBuff local variable to 1, the values seems to be right, despite the twice method call. But, doing that doesn't seem the correct way to fix the problem. I need to use ADC to read others sensors too, and doing that, maybe will not be good.