Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ADS1100.cpp@6:160ba0125b18, 2018-10-01 (annotated)
- 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?
User | Revision | Line number | New 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 | } |