Delta / Mbed OS BLE_HTS_Demo
Committer:
silviaChen
Date:
Tue Jul 18 09:34:06 2017 +0000
Revision:
9:2ff66a3d164a
Parent:
0:ef0f188a6fdd
Child:
10:5220f45c8ec1
update mbed-os so both NNN50 and NQ620 (as well as NQ624 module) platform are supported; Add config in mbed_app.json to fix NQ620 use internal RC issue ; remove the unused shield folder;update BLE_API;Modify SCL/SDA pin

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Marcomissyou 0:ef0f188a6fdd 1 /* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
Marcomissyou 0:ef0f188a6fdd 2 *
Marcomissyou 0:ef0f188a6fdd 3 * The information contained herein is property of Nordic Semiconductor ASA.
Marcomissyou 0:ef0f188a6fdd 4 * Terms and conditions of usage are described in detail in NORDIC
Marcomissyou 0:ef0f188a6fdd 5 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
Marcomissyou 0:ef0f188a6fdd 6 *
Marcomissyou 0:ef0f188a6fdd 7 * Licensees are granted free, non-transferable use of the information. NO
Marcomissyou 0:ef0f188a6fdd 8 * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
Marcomissyou 0:ef0f188a6fdd 9 * the file.
Marcomissyou 0:ef0f188a6fdd 10 *df
Marcomissyou 0:ef0f188a6fdd 11 */
Marcomissyou 0:ef0f188a6fdd 12
Marcomissyou 0:ef0f188a6fdd 13 #include <stdbool.h>
Marcomissyou 0:ef0f188a6fdd 14 #include <stdint.h>
Marcomissyou 0:ef0f188a6fdd 15
Marcomissyou 0:ef0f188a6fdd 16 #include <mbed.h>
Marcomissyou 0:ef0f188a6fdd 17 #include "uvis25.h"
Marcomissyou 0:ef0f188a6fdd 18
silviaChen 9:2ff66a3d164a 19 I2C i2c_uvi(p26, p27); //SDA, SCL
Marcomissyou 0:ef0f188a6fdd 20
Marcomissyou 0:ef0f188a6fdd 21 static const char uvis25_expected_who_am_i = 0xCAU; //!< Expected value to get from WHO_AM_I register.
Marcomissyou 0:ef0f188a6fdd 22
Marcomissyou 0:ef0f188a6fdd 23 bool uvis25_init(void)
Marcomissyou 0:ef0f188a6fdd 24 {
Marcomissyou 0:ef0f188a6fdd 25 bool transfer_succeeded = true;
Marcomissyou 0:ef0f188a6fdd 26
Marcomissyou 0:ef0f188a6fdd 27 i2c_uvi.frequency(400000);
Marcomissyou 0:ef0f188a6fdd 28 uvis25_register_write(0x20 , 0x01);
Marcomissyou 0:ef0f188a6fdd 29
Marcomissyou 0:ef0f188a6fdd 30 // Read and verify product ID
Marcomissyou 0:ef0f188a6fdd 31 transfer_succeeded &= uvis25_verify_product_id();
Marcomissyou 0:ef0f188a6fdd 32
Marcomissyou 0:ef0f188a6fdd 33 return transfer_succeeded;
Marcomissyou 0:ef0f188a6fdd 34 }
Marcomissyou 0:ef0f188a6fdd 35
Marcomissyou 0:ef0f188a6fdd 36 bool uvis25_verify_product_id(void)
Marcomissyou 0:ef0f188a6fdd 37 {
Marcomissyou 0:ef0f188a6fdd 38 char who_am_i[1];
Marcomissyou 0:ef0f188a6fdd 39 uvis25_register_read(UVIS25_ADDRESS_WHO_AM_I, &who_am_i[0], 1);
Marcomissyou 0:ef0f188a6fdd 40 if (who_am_i[0] != uvis25_expected_who_am_i) return false;
Marcomissyou 0:ef0f188a6fdd 41 else return true;
Marcomissyou 0:ef0f188a6fdd 42 }
Marcomissyou 0:ef0f188a6fdd 43
Marcomissyou 0:ef0f188a6fdd 44 void uvis25_register_write(uint8_t register_address, uint8_t value)
Marcomissyou 0:ef0f188a6fdd 45 {
Marcomissyou 0:ef0f188a6fdd 46 char w2_data[2];
Marcomissyou 0:ef0f188a6fdd 47
Marcomissyou 0:ef0f188a6fdd 48 w2_data[0] = register_address;
Marcomissyou 0:ef0f188a6fdd 49 w2_data[1] = value;
Marcomissyou 0:ef0f188a6fdd 50 i2c_uvi.write(UVIS25_WriteADDE, w2_data, 2);
Marcomissyou 0:ef0f188a6fdd 51
Marcomissyou 0:ef0f188a6fdd 52 }
Marcomissyou 0:ef0f188a6fdd 53
Marcomissyou 0:ef0f188a6fdd 54 void uvis25_register_read(char register_address, char *destination, uint8_t number_of_bytes)
Marcomissyou 0:ef0f188a6fdd 55 {
Marcomissyou 0:ef0f188a6fdd 56 i2c_uvi.write(UVIS25_WriteADDE, &register_address, 1, 1);
Marcomissyou 0:ef0f188a6fdd 57 i2c_uvi.read(UVIS25_WriteADDE, destination, number_of_bytes);
Marcomissyou 0:ef0f188a6fdd 58 }
Marcomissyou 0:ef0f188a6fdd 59
Marcomissyou 0:ef0f188a6fdd 60
Marcomissyou 0:ef0f188a6fdd 61 uint8_t UVIS25_ReadUVI(void)
Marcomissyou 0:ef0f188a6fdd 62 {
Marcomissyou 0:ef0f188a6fdd 63 char UVI_reading;
Marcomissyou 0:ef0f188a6fdd 64 uvis25_register_read(0x28, &UVI_reading, 1);
Marcomissyou 0:ef0f188a6fdd 65 return (uint8_t) UVI_reading;
Marcomissyou 0:ef0f188a6fdd 66 }