#include "mlx90640_user.h" #include "sys_app.h" uint16_t frame[834]; float emissivity=0.15f; //0.95f uint8_t mlx90640_init(uint8_t refresh_rate,paramsMLX90640 *mlx90640) { int status; MLX90640_SetRefreshRate(MLX90640_ADDR, refresh_rate); MLX90640_SetChessMode(MLX90640_ADDR); status = MLX90640_DumpEE(MLX90640_ADDR, eeMLX90640); if (status != 0) APP_LOG(TS_OFF, VLEVEL_L, "\r\nload system parameters error with code:%d\r\n",status); status = MLX90640_ExtractParameters(eeMLX90640, mlx90640); if (status != 0) APP_LOG(TS_OFF, VLEVEL_L,"\r\nParameter extraction failed with error code:%d\r\n",status); return status; } uint8_t mlx90640_get_temp_mat(paramsMLX90640 *mlx90640,float*tempmat) { int status; status = MLX90640_GetFrameData(MLX90640_ADDR, frame); while(status<0) { status = MLX90640_GetFrameData(MLX90640_ADDR, frame); APP_LOG(TS_OFF, VLEVEL_L,"GetFrame Error: %d\r\n",status); } float vdd = MLX90640_GetVdd(frame, mlx90640); float Ta = MLX90640_GetTa(frame, mlx90640); float tr = Ta - TA_SHIFT; //Reflected temperature based on the sensor ambient temperature MLX90640_CalculateTo(frame, mlx90640, emissivity , tr, tempmat); return 0; }