Kazuaki Hongu / ADS1100
Committer:
hongu
Date:
Mon Oct 01 14:00:37 2018 +0000
Revision:
6:160ba0125b18
Parent:
5:687975ef50d2
fix some bag.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hongu 0:b211ff96822b 1 //**********************
hongu 0:b211ff96822b 2 // ADS1100.cpp for mbed
hongu 0:b211ff96822b 3 //
hongu 0:b211ff96822b 4 // (C)Copyright 2018 All rights reserved by K.Hongu
hongu 0:b211ff96822b 5 //**********************
hongu 0:b211ff96822b 6
hongu 0:b211ff96822b 7 #include "mbed.h"
hongu 0:b211ff96822b 8 #include "ADS1100.h"
hongu 0:b211ff96822b 9
hongu 2:7ee26d7e2997 10 ADS1100::ADS1100 (PinName sda, PinName scl, char addr) : _i2c(sda, scl) {
hongu 0:b211ff96822b 11 init(addr);
hongu 0:b211ff96822b 12 }
hongu 2:7ee26d7e2997 13 ADS1100::ADS1100 (I2C& p_i2c, char addr) : _i2c(p_i2c) {
hongu 0:b211ff96822b 14 init(addr);
hongu 0:b211ff96822b 15 }
hongu 0:b211ff96822b 16
hongu 2:7ee26d7e2997 17 void ADS1100::init(char addr) {
hongu 3:7c8d1aa80a9d 18 address = ADS1100_ADDR + (addr << 1); // make address
hongu 0:b211ff96822b 19 config.bit.ST=0; // must be 0
hongu 0:b211ff96822b 20 config.bit.RE=0; // must be 0
hongu 0:b211ff96822b 21 config.bit.SC=0; // continuous mode
hongu 0:b211ff96822b 22 config.bit.DR=3; // 8SPS
hongu 5:687975ef50d2 23 config.bit.PGA=0; // 1倍 GAIN
hongu 0:b211ff96822b 24
hongu 0:b211ff96822b 25 buf[0] = config.UC;
hongu 0:b211ff96822b 26
hongu 0:b211ff96822b 27 _i2c.write(address, buf, 1);
hongu 0:b211ff96822b 28 }
hongu 0:b211ff96822b 29
hongu 3:7c8d1aa80a9d 30 void ADS1100::init() {
hongu 3:7c8d1aa80a9d 31 config.bit.ST=0; // must be 0
hongu 3:7c8d1aa80a9d 32 config.bit.RE=0; // must be 0
hongu 3:7c8d1aa80a9d 33 config.bit.SC=0; // continuous mode
hongu 3:7c8d1aa80a9d 34 config.bit.DR=3; // 8SPS
hongu 4:25de15d742ba 35 config.bit.PGA=0; // 1倍 GAIN
hongu 3:7c8d1aa80a9d 36
hongu 3:7c8d1aa80a9d 37 buf[0] = config.UC;
hongu 3:7c8d1aa80a9d 38
hongu 3:7c8d1aa80a9d 39 _i2c.write(address, buf, 1);
hongu 3:7c8d1aa80a9d 40 }
hongu 3:7c8d1aa80a9d 41
hongu 3:7c8d1aa80a9d 42 short ADS1100::get() {
hongu 0:b211ff96822b 43
hongu 0:b211ff96822b 44 _i2c.read(address , buf, 3);
hongu 0:b211ff96822b 45
hongu 3:7c8d1aa80a9d 46 result.byte.UB=buf[1];
hongu 3:7c8d1aa80a9d 47 result.byte.LB=buf[0];
hongu 0:b211ff96822b 48 config.UC=buf[2];
hongu 3:7c8d1aa80a9d 49 if (config.UC == 0b10001100) {
hongu 3:7c8d1aa80a9d 50 init();
hongu 3:7c8d1aa80a9d 51 }
hongu 0:b211ff96822b 52 return result.S; // 16bit
hongu 3:7c8d1aa80a9d 53 }