Rohm BH1745 red-green-blue-clear -color sensor driver
Dependents: rohm-bh1745-hello rohm-tileshield-6sensor-demo GR-PEACH_IoT_Platform_HTTP_sample
Fork of rohm-rpr0521 by
Diff: source/rpr0521_driver.cpp
- Revision:
- 1:64629eee9eab
- Parent:
- 0:0bcc203c5c75
- Child:
- 2:2b4a1b49998d
--- a/source/rpr0521_driver.cpp Mon Sep 12 09:53:15 2016 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/* Copyright 2016 Rohm Semiconductor
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-#include "../../rohm-sensor-hal/rohm-sensor-hal/rohm_hal.h" //types, DEBUG_print*
-#include "../../rohm-sensor-hal/rohm-sensor-hal/I2CCommon.h" //read_register, write_register, change_bits
-
-#include "../rohm-rpr0521/rpr0521.h" //RPR0521_* register definitions
-#include "../rohm-rpr0521/rpr0521_driver.h"
-#define SAD 0x38
-
-
-/* rpr0521 driver*/
-
-uint8_t rpr0521_readId(){
- uint8_t id;
- uint8_t read_bytes;
-
- read_bytes = read_register(SAD, RPR0521_MANUFACT, &id, 1);
- if ( read_bytes > 0 ){
- DEBUG_printf("Manufacturer: %u\n\r", id);
- return(id);
- }
- else{
- DEBUG_print("Manufacturer read failed.\n\r");
- return 255;
- }
-}
-
-void rpr0521_wait_until_found(){
- uint8_t id;
-
- id = rpr0521_readId();
- while (id == 255){
- wait(100);
- id = rpr0521_readId();
- }
- return;
- }
-
-void rpr0521_soft_reset(){
- write_register(SAD, RPR0521_SYSTEM_CONTROL, RPR0521_SYSTEM_CONTROL_SW_RESET_START);
-}
-
-void rpr0521_clear_interrupt(){
- write_register(SAD, RPR0521_SYSTEM_CONTROL, RPR0521_SYSTEM_CONTROL_INT_PIN_HI_Z);
-}
-
-void rpr0521_initial_setup(){
- write_register(SAD, RPR0521_ALS_PS_CONTROL,
- (RPR0521_ALS_PS_CONTROL_ALS_DATA0_GAIN_X1 |
- RPR0521_ALS_PS_CONTROL_ALS_DATA1_GAIN_X1 |
- RPR0521_ALS_PS_CONTROL_LED_CURRENT_25MA)
- );
- write_register(SAD, RPR0521_PS_CONTROL,
- (RPR0521_PS_CONTROL_PS_GAIN_X1 |
- RPR0521_PS_CONTROL_PERSISTENCE_DRDY )
- );
- write_register(SAD, RPR0521_MODE_CONTROL,
- (RPR0521_MODE_CONTROL_ALS_EN_TRUE | RPR0521_MODE_CONTROL_PS_EN_TRUE |
- RPR0521_MODE_CONTROL_PS_PULSE_200US | RPR0521_MODE_CONTROL_PS_OPERATING_MODE_NORMAL |
- RPR0521_MODE_CONTROL_MEASUREMENT_TIME_100MS_100MS)
- );
-}
-
-/* input param: data16, pointer to 3*16bit memory
- return: error, true/false */
-bool rpr0521_read_data(uint16_t* data16){
- uint8_t data[6];
- uint8_t read_bytes;
-
- read_bytes = read_register(SAD, RPR0521_PS_DATA_LSBS, &data[0], 6);
- if (read_bytes == 6){
- data16[0] = (data[0]) | (data[1] << 8); //ps_data
- data16[1] = (data[2]) | (data[3] << 8); //als_data0
- data16[2] = (data[4]) | (data[5] << 8); //als_data1
- return false;
- }
- else{
- DEBUG_printf("Read error. Read %d bytes\n\r", read_bytes);
- return true;
- }
-
- }

Rohm BH1745NUC | RGB Color Sensor