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.
AS7000.h@1:510ee396d140, 2017-05-06 (annotated)
- Committer:
- sog_yang
- Date:
- Sat May 06 00:56:47 2017 +0000
- Revision:
- 1:510ee396d140
- Parent:
- 0:aa97de8e628a
- Child:
- 2:447946334c29
Add API Documents.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| sog_yang | 0:aa97de8e628a | 1 | #ifndef AS7000_H |
| sog_yang | 0:aa97de8e628a | 2 | #define AS7000_H |
| sog_yang | 0:aa97de8e628a | 3 | |
| sog_yang | 0:aa97de8e628a | 4 | #include "mbed.h" |
| sog_yang | 0:aa97de8e628a | 5 | #define AS7000Address 0x60 |
| sog_yang | 0:aa97de8e628a | 6 | //Register definitions |
| sog_yang | 0:aa97de8e628a | 7 | #define AS7000_STARTUP 0x04 //4 |
| sog_yang | 0:aa97de8e628a | 8 | #define HR_ONLY 0x08 //8 |
| sog_yang | 0:aa97de8e628a | 9 | #define HR_ONLY_LEN 0x07 //7 |
| sog_yang | 0:aa97de8e628a | 10 | #define HR_REG 0x12 //18 |
| sog_yang | 0:aa97de8e628a | 11 | #define HR_LEN 21 |
| sog_yang | 0:aa97de8e628a | 12 | |
| sog_yang | 0:aa97de8e628a | 13 | typedef struct{ |
| sog_yang | 0:aa97de8e628a | 14 | uint8_t transaction_id; |
| sog_yang | 0:aa97de8e628a | 15 | uint8_t status; |
| sog_yang | 0:aa97de8e628a | 16 | uint8_t hreat_rate; |
| sog_yang | 0:aa97de8e628a | 17 | uint8_t signal_QA; |
| sog_yang | 0:aa97de8e628a | 18 | uint16_t LED_current; |
| sog_yang | 0:aa97de8e628a | 19 | uint8_t SYNC; |
| sog_yang | 0:aa97de8e628a | 20 | uint8_t startup_flag; |
| sog_yang | 0:aa97de8e628a | 21 | bool contact_detected; |
| sog_yang | 0:aa97de8e628a | 22 | }as7000_t; |
| sog_yang | 0:aa97de8e628a | 23 | |
| sog_yang | 0:aa97de8e628a | 24 | |
| sog_yang | 0:aa97de8e628a | 25 | |
| sog_yang | 0:aa97de8e628a | 26 | |
| sog_yang | 1:510ee396d140 | 27 | /** Class for operating AMS AS7000 sensor over I2C **/ |
| sog_yang | 0:aa97de8e628a | 28 | class AS7000 |
| sog_yang | 0:aa97de8e628a | 29 | { |
| sog_yang | 0:aa97de8e628a | 30 | public: |
| sog_yang | 0:aa97de8e628a | 31 | |
| sog_yang | 1:510ee396d140 | 32 | /** Create AS7000 instance **/ |
| sog_yang | 0:aa97de8e628a | 33 | AS7000(PinName SDA, PinName SCL); |
| sog_yang | 0:aa97de8e628a | 34 | |
| sog_yang | 0:aa97de8e628a | 35 | void gpio_init(void); |
| sog_yang | 0:aa97de8e628a | 36 | void enable (void); |
| sog_yang | 0:aa97de8e628a | 37 | void startup (void); |
| sog_yang | 0:aa97de8e628a | 38 | void hr_only (void); |
| sog_yang | 0:aa97de8e628a | 39 | void update (void); |
| sog_yang | 0:aa97de8e628a | 40 | as7000_t hrm; |
| sog_yang | 0:aa97de8e628a | 41 | |
| sog_yang | 0:aa97de8e628a | 42 | |
| sog_yang | 0:aa97de8e628a | 43 | private: |
| sog_yang | 0:aa97de8e628a | 44 | I2C _i2c; |
| sog_yang | 0:aa97de8e628a | 45 | char rx,tx[2],address; //I2C variables |
| sog_yang | 0:aa97de8e628a | 46 | char rawdata[22]; //Temporary array for input data values |
| sog_yang | 0:aa97de8e628a | 47 | char hreat_rate; |
| sog_yang | 0:aa97de8e628a | 48 | char startup_flag; |
| sog_yang | 0:aa97de8e628a | 49 | |
| sog_yang | 0:aa97de8e628a | 50 | void readchar(char location){ |
| sog_yang | 0:aa97de8e628a | 51 | tx[0] = location; |
| sog_yang | 0:aa97de8e628a | 52 | _i2c.write(address,tx,1,true); |
| sog_yang | 0:aa97de8e628a | 53 | _i2c.read(address,&rx,1,false); |
| sog_yang | 0:aa97de8e628a | 54 | } |
| sog_yang | 0:aa97de8e628a | 55 | |
| sog_yang | 0:aa97de8e628a | 56 | void writechar(char location, char value){ |
| sog_yang | 0:aa97de8e628a | 57 | tx[0] = location; |
| sog_yang | 0:aa97de8e628a | 58 | tx[1] = value; |
| sog_yang | 0:aa97de8e628a | 59 | _i2c.write(address,tx,2); |
| sog_yang | 0:aa97de8e628a | 60 | } |
| sog_yang | 0:aa97de8e628a | 61 | }; |
| sog_yang | 0:aa97de8e628a | 62 | #endif |