//***************************************************************************** // // hw_isl29023.h - Macros used when accessing the Intersil ISL29023 ambient // light sensor // // Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and // exclusively on TI's microcontroller products. The software is owned by // TI and/or its suppliers, and is protected under applicable copyright // laws. You may not combine this software with "viral" open-source // software in order to form a larger program. // // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // // This is part of revision 2.1.0.12573 of the Tiva Firmware Development Package. // //***************************************************************************** #ifndef __SENSORLIB_HW_ISL29023_H__ #define __SENSORLIB_HW_ISL29023_H__ //***************************************************************************** // // The following are defines for the ISL29023 Register Addresses // //***************************************************************************** #define ISL29023_O_CMD_I 0x00 // ISL29023 command register one #define ISL29023_O_CMD_II 0x01 #define ISL29023_O_DATA_OUT_LSB 0x02 // Least significant byte of data #define ISL29023_O_DATA_OUT_MSB 0x03 // Most significant byte of data #define ISL29023_O_INT_LT_LSB 0x04 // Interrupt lower threshold least // significant byte. #define ISL29023_O_INT_LT_MSB 0x05 // Interrupt lower threshold most // significant byte. #define ISL29023_O_INT_HT_LSB 0x06 // Interrupt high threshold least // significant byte. #define ISL29023_O_INT_HT_MSB 0x07 // Interrupt high threshold most // signficant byte //***************************************************************************** // // The following are defines for the bit fields in the ISL29023_O_CMD_I // register. // //***************************************************************************** #define ISL29023_CMD_I_OP_MODE_M \ 0xE0 // Operation Mode #define ISL29023_CMD_I_OP_MODE_POWER_DOWN \ 0x00 // Power Down the device (Default) #define ISL29023_CMD_I_OP_MODE_RESERVED_3 \ 0x0E // RESERVED #define ISL29023_CMD_I_OP_MODE_ALS_LOW \ 0x20 // Measure ALS once per integration // cyle #define ISL29023_CMD_I_OP_MODE_IR_ONCE \ 0x40 // Measure IR once #define ISL29023_CMD_I_OP_MODE_RESERVED_1 \ 0x60 // RESERVED #define ISL29023_CMD_I_OP_MODE_RESERVED_2 \ 0x80 // RESERVED #define ISL29023_CMD_I_OP_MODE_ALS_CONT \ 0xA0 // Measure ambient light sensor // continuously. #define ISL29023_CMD_I_OP_MODE_IR_CONT \ 0xC // Measure infrared sensor // continuously #define ISL29023_CMD_I_INT_FLAG_M \ 0x04 // Interrupt flag #define ISL29023_CMD_I_INT_FLAG 0x04 // Interrupt flag #define ISL29023_CMD_I_INT_PERSIST_M \ 0x03 // Consecutive measurements outside // threshold before interrupt #define ISL29023_CMD_I_INT_PERSIST_1 \ 0x00 // Interrupt on first cycle outside // threshold #define ISL29023_CMD_I_INT_PERSIST_4 \ 0x01 // Interrupt on fourth cycle // oustside threshold #define ISL29023_CMD_I_INT_PERSIST_8 \ 0x02 // Interrupt on eigth cycle outside // threshold #define ISL29023_CMD_I_INT_PERSIST_16 \ 0x03 // Interrupt on sixteenth cycle // outside threshold #define ISL29023_CMD_I_OP_MODE_S \ 5 #define ISL29023_CMD_I_INT_FLAG_S \ 2 #define ISL_29023_CMD_I_INT_PERSIST_S \ 0 //***************************************************************************** // // The following are defines for the bit fields in the ISL29023_O_CMD_II // register. // //***************************************************************************** #define ISL29023_CMD_II_ADC_RES_M \ 0x0C // ADC resolution setting #define ISL29023_CMD_II_ADC_RES_16 \ 0x00 // 16 bit resolution #define ISL29023_CMD_II_ADC_RES_12 \ 0x04 // 12 bit resolution #define ISL29023_CMD_II_ADC_RES_8 \ 0x08 // 8 bit resolution #define ISL29023_CMD_II_ADC_RES_4 \ 0x0C // 4 bit resolution #define ISL29023_CMD_II_RANGE_M 0x03 // Sensor Range Setting in Lux #define ISL29023_CMD_II_RANGE_1K \ 0x00 // 1000 lux range #define ISL29023_CMD_II_RANGE_4K \ 0x01 // 4000 lux range #define ISL29023_CMD_II_RANGE_16K \ 0x02 // 16000 lux range #define ISL29023_CMD_II_RANGE_64K \ 0x03 // 64000 lux range #define ISL29023_CMD_II_ADC_RES_S \ 2 #define ISL29023_CMD_II_RANGE_S 0 #endif // __SENSORLIB_HW_ISL29023_H__