A storage variable need to be declared. The data is then read by the sensor by the LightSensor_readLuxData() function and then stored in a passed reference of the storage variable.
// Function that read and print the sensor data of the MAX44009 to the console of the XDK-Workbench
static void readLightSensor(xTimerHandle xTimer)
{
(void) xTimer;
Retcode_T returnValue = RETCODE_FAILURE;
/* Read and print light sensor data */
uint32_t max44009 = UINT32_C(0);
returnValue = LightSensor_readLuxData(xdkLightSensor_MAX44009_Handle,&max44009);
if (RETCODE_OK == returnValue) {
printf("Light sensor data obtained in milli lux :%d \n\r",(unsigned int) max44009);
}
}
Then we declared the function to initialized the sensor and variable. We need to use the function of LightSensor_init(xdkLightSensor_MAX44009_Handle);
// Function that initializes the Lightsensor with the MAX44009 handler and with additional presettings
static void initLightSensor(void)
{
Retcode_T returnValue = RETCODE_FAILURE;
Retcode_T returnBrightnessValue = RETCODE_FAILURE;
Retcode_T returnIntegrationTimeValue = RETCODE_FAILURE;
/* initialize light sensor */
returnValue = LightSensor_init(xdkLightSensor_MAX44009_Handle);
if ( RETCODE_OK != returnValue){
printf("MAX44009 Light Sensor initialization failed\n\r");
}
returnBrightnessValue = LightSensor_setBrightness(xdkLightSensor_MAX44009_Handle,LIGHTSENSOR_NORMAL_BRIGHTNESS);
if (RETCODE_OK != returnBrightnessValue) {
printf("Configuring brightness failed \n\r");
}
returnIntegrationTimeValue = LightSensor_setIntegrationTime(xdkLightSensor_MAX44009_Handle,LIGHTSENSOR_200MS);
if (RETCODE_OK != returnIntegrationTimeValue) {
printf("Configuring integration time failed \n\r");
}
}
Finally we declared the main part of the program where we need to call all the function that we previously defined. Also define the timers.