Load cell amplifier interface
hx711.cpp@0:d47fb3d4b918, 2015-03-31 (annotated)
- Committer:
- jimconner
- Date:
- Tue Mar 31 17:42:18 2015 +0000
- Revision:
- 0:d47fb3d4b918
Mostly workingish code... the numbers change appropriately when I put weight on the load cell.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jimconner | 0:d47fb3d4b918 | 1 | /* mbed library for HX711 Load Cell Amplifier/24-bit A/D converter |
jimconner | 0:d47fb3d4b918 | 2 | * Copyright (c) 2015 Jim Conner |
jimconner | 0:d47fb3d4b918 | 3 | * |
jimconner | 0:d47fb3d4b918 | 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
jimconner | 0:d47fb3d4b918 | 5 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
jimconner | 0:d47fb3d4b918 | 6 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
jimconner | 0:d47fb3d4b918 | 7 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
jimconner | 0:d47fb3d4b918 | 8 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
jimconner | 0:d47fb3d4b918 | 9 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
jimconner | 0:d47fb3d4b918 | 10 | * THE SOFTWARE. |
jimconner | 0:d47fb3d4b918 | 11 | */ |
jimconner | 0:d47fb3d4b918 | 12 | |
jimconner | 0:d47fb3d4b918 | 13 | #include "hx711.h" |
jimconner | 0:d47fb3d4b918 | 14 | #include "mbed.h" |
jimconner | 0:d47fb3d4b918 | 15 | |
jimconner | 0:d47fb3d4b918 | 16 | //#define BPP 16 // Bits per pixel |
jimconner | 0:d47fb3d4b918 | 17 | |
jimconner | 0:d47fb3d4b918 | 18 | // Constructor |
jimconner | 0:d47fb3d4b918 | 19 | HX711::HX711(PinName clk, PinName addo) : clk(clk), addo(addo) |
jimconner | 0:d47fb3d4b918 | 20 | { |
jimconner | 0:d47fb3d4b918 | 21 | |
jimconner | 0:d47fb3d4b918 | 22 | |
jimconner | 0:d47fb3d4b918 | 23 | } |
jimconner | 0:d47fb3d4b918 | 24 | |
jimconner | 0:d47fb3d4b918 | 25 | // Destructor |
jimconner | 0:d47fb3d4b918 | 26 | HX711::~HX711(void) {} |
jimconner | 0:d47fb3d4b918 | 27 | |
jimconner | 0:d47fb3d4b918 | 28 | |
jimconner | 0:d47fb3d4b918 | 29 | // Reading data from the converter |
jimconner | 0:d47fb3d4b918 | 30 | long HX711::readData(void) |
jimconner | 0:d47fb3d4b918 | 31 | { |
jimconner | 0:d47fb3d4b918 | 32 | unsigned char i; |
jimconner | 0:d47fb3d4b918 | 33 | unsigned long Count; |
jimconner | 0:d47fb3d4b918 | 34 | clk=0; |
jimconner | 0:d47fb3d4b918 | 35 | Count=0; |
jimconner | 0:d47fb3d4b918 | 36 | while(addo); |
jimconner | 0:d47fb3d4b918 | 37 | for (i=0;i<24;i++) { |
jimconner | 0:d47fb3d4b918 | 38 | clk=1; |
jimconner | 0:d47fb3d4b918 | 39 | Count=Count<<1; |
jimconner | 0:d47fb3d4b918 | 40 | clk=0; |
jimconner | 0:d47fb3d4b918 | 41 | if(addo) Count++; |
jimconner | 0:d47fb3d4b918 | 42 | } |
jimconner | 0:d47fb3d4b918 | 43 | clk=1; |
jimconner | 0:d47fb3d4b918 | 44 | Count=Count ^0x800000; |
jimconner | 0:d47fb3d4b918 | 45 | clk=0; |
jimconner | 0:d47fb3d4b918 | 46 | return(Count); |
jimconner | 0:d47fb3d4b918 | 47 | } |
jimconner | 0:d47fb3d4b918 | 48 |