Files
zTC1/mico-os/libraries/drivers/sensor/infrared_adc/infrared_reflective.c
2025-03-11 15:54:45 +08:00

60 lines
1.6 KiB
C

/**
******************************************************************************
* @file infrared_reflective.h
* @author Eshen Wang
* @version V1.0.0
* @date 1-May-2015
* @brief infrared reflective sensor operation.
******************************************************************************
* UNPUBLISHED PROPRIETARY SOURCE CODE
* Copyright (c) 2016 MXCHIP Inc.
*
* The contents of this file may not be disclosed to third parties, copied or
* duplicated in any form, in whole or in part, without the prior written
* permission of MXCHIP Corporation.
******************************************************************************
*/
#include "mico_platform.h"
#include "infrared_reflective.h"
#define infrared_reflective_log(M, ...) custom_log("INFRARED_REFLECTIVE", M, ##__VA_ARGS__)
#define infrared_reflective_log_trace() custom_log_trace("INFRARED_REFLECTIVE")
/*------------------------------ USER INTERFACES -----------------------------*/
int infrared_reflective_init(void)
{
OSStatus err = kUnknownErr;
err = MicoAdcInitialize(INFARAED_REFLECTIVE_ADC, INFARAED_REFLECTIVE_ADC_SAMPLE_CYCLE);
if(kNoErr != err){
return -1;
}
return 0;
}
int infrared_reflective_read(uint16_t *data)
{
int ret = 0;
OSStatus err = kUnknownErr;
// init ADC
err = MicoAdcInitialize(INFARAED_REFLECTIVE_ADC, INFARAED_REFLECTIVE_ADC_SAMPLE_CYCLE);
if(kNoErr != err){
return -1;
}
// get ADC data
err = MicoAdcTakeSample(INFARAED_REFLECTIVE_ADC, data);
if(kNoErr == err){
ret = 0; // get data succeed
}
else{
ret = -1; // get data error
}
return ret;
}