test
as1115.h@1:b686a4955357, 2018-04-16 (annotated)
- Committer:
- williamweatherholtz
- Date:
- Mon Apr 16 15:00:09 2018 +0000
- Revision:
- 1:b686a4955357
- Parent:
- 0:ef4b1297d850
- Child:
- 2:3261da935b2e
initial - fleshed out, not tested w/ hardware
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
williamweatherholtz | 0:ef4b1297d850 | 1 | #ifndef AS1115_H |
williamweatherholtz | 0:ef4b1297d850 | 2 | #define AS1115_H |
williamweatherholtz | 0:ef4b1297d850 | 3 | |
williamweatherholtz | 0:ef4b1297d850 | 4 | #include "mbed.h" |
williamweatherholtz | 0:ef4b1297d850 | 5 | |
williamweatherholtz | 0:ef4b1297d850 | 6 | typedef struct |
williamweatherholtz | 0:ef4b1297d850 | 7 | { |
williamweatherholtz | 0:ef4b1297d850 | 8 | uint8_t device_number; |
williamweatherholtz | 0:ef4b1297d850 | 9 | uint8_t decode_mode; |
williamweatherholtz | 0:ef4b1297d850 | 10 | uint8_t intensity; |
williamweatherholtz | 0:ef4b1297d850 | 11 | uint8_t scan_limit; |
williamweatherholtz | 0:ef4b1297d850 | 12 | }max7219_configuration_t; |
williamweatherholtz | 0:ef4b1297d850 | 13 | |
williamweatherholtz | 1:b686a4955357 | 14 | class AS1115 |
williamweatherholtz | 0:ef4b1297d850 | 15 | { |
williamweatherholtz | 0:ef4b1297d850 | 16 | public: |
williamweatherholtz | 1:b686a4955357 | 17 | |
williamweatherholtz | 1:b686a4955357 | 18 | typedef enum |
williamweatherholtz | 1:b686a4955357 | 19 | { |
williamweatherholtz | 1:b686a4955357 | 20 | // DIGIT REGISTERS |
williamweatherholtz | 1:b686a4955357 | 21 | AS1115_D0 = 0x01, |
williamweatherholtz | 1:b686a4955357 | 22 | AS1115_D1, |
williamweatherholtz | 1:b686a4955357 | 23 | AS1115_D2, |
williamweatherholtz | 1:b686a4955357 | 24 | AS1115_D3, |
williamweatherholtz | 1:b686a4955357 | 25 | AS1115_D4, |
williamweatherholtz | 1:b686a4955357 | 26 | AS1115_D5, |
williamweatherholtz | 1:b686a4955357 | 27 | AS1115_D6, |
williamweatherholtz | 1:b686a4955357 | 28 | AS1115_D7, |
williamweatherholtz | 1:b686a4955357 | 29 | |
williamweatherholtz | 1:b686a4955357 | 30 | // CONTROL REGISTERS |
williamweatherholtz | 1:b686a4955357 | 31 | AS1115_DECODE_MODE, |
williamweatherholtz | 1:b686a4955357 | 32 | AS1115_GLOBAL_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 33 | AS1115_SCAN_LIMIT, |
williamweatherholtz | 1:b686a4955357 | 34 | AS1115_SHUTDOWN, |
williamweatherholtz | 1:b686a4955357 | 35 | AS1115_SELF_ADDRESSING, |
williamweatherholtz | 1:b686a4955357 | 36 | AS1115_FEATURE, |
williamweatherholtz | 1:b686a4955357 | 37 | AS1115_DISPLAY_TEST_MODE, |
williamweatherholtz | 1:b686a4955357 | 38 | AS1115_DIG0_DIG1_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 39 | AS1115_DIG2_DIG3_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 40 | AS1115_DIG4_DIG5_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 41 | AS1115_DIG6_DIG7_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 42 | |
williamweatherholtz | 1:b686a4955357 | 43 | // DIAGNOSTIC REGISTERS |
williamweatherholtz | 1:b686a4955357 | 44 | AS1115_DIAGNOSTIC_DIGIT_0, |
williamweatherholtz | 1:b686a4955357 | 45 | AS1115_DIAGNOSTIC_DIGIT_1, |
williamweatherholtz | 1:b686a4955357 | 46 | AS1115_DIAGNOSTIC_DIGIT_2, |
williamweatherholtz | 1:b686a4955357 | 47 | AS1115_DIAGNOSTIC_DIGIT_3, |
williamweatherholtz | 1:b686a4955357 | 48 | AS1115_DIAGNOSTIC_DIGIT_4, |
williamweatherholtz | 1:b686a4955357 | 49 | AS1115_DIAGNOSTIC_DIGIT_5, |
williamweatherholtz | 1:b686a4955357 | 50 | AS1115_DIAGNOSTIC_DIGIT_6, |
williamweatherholtz | 1:b686a4955357 | 51 | AS1115_DIAGNOSTIC_DIGIT_7, |
williamweatherholtz | 1:b686a4955357 | 52 | AS1115_KEYA, |
williamweatherholtz | 1:b686a4955357 | 53 | AS1115_KEYB=0x1D |
williamweatherholtz | 1:b686a4955357 | 54 | }registers; |
williamweatherholtz | 1:b686a4955357 | 55 | |
williamweatherholtz | 0:ef4b1297d850 | 56 | |
williamweatherholtz | 1:b686a4955357 | 57 | AS1115(I2C &display, const uint8_t address); |
williamweatherholtz | 1:b686a4955357 | 58 | AS1115(PinName sda, PinName sck, const uint8_t address); |
williamweatherholtz | 1:b686a4955357 | 59 | |
williamweatherholtz | 1:b686a4955357 | 60 | void begin(); |
williamweatherholtz | 1:b686a4955357 | 61 | |
williamweatherholtz | 1:b686a4955357 | 62 | // shutdown mode options |
williamweatherholtz | 1:b686a4955357 | 63 | void enable(bool hard_reset=false); |
williamweatherholtz | 1:b686a4955357 | 64 | void disable(bool hard_reset=false); |
williamweatherholtz | 1:b686a4955357 | 65 | |
williamweatherholtz | 1:b686a4955357 | 66 | // decode mode options |
williamweatherholtz | 1:b686a4955357 | 67 | void enable_decode(); |
williamweatherholtz | 1:b686a4955357 | 68 | void disable_decode(); |
williamweatherholtz | 1:b686a4955357 | 69 | |
williamweatherholtz | 1:b686a4955357 | 70 | // intensity |
williamweatherholtz | 1:b686a4955357 | 71 | void set_global_intensity(uint8_t level); |
williamweatherholtz | 1:b686a4955357 | 72 | |
williamweatherholtz | 1:b686a4955357 | 73 | // scan limit |
williamweatherholtz | 1:b686a4955357 | 74 | void set_num_digits(uint8_t num_digits); |
williamweatherholtz | 1:b686a4955357 | 75 | |
williamweatherholtz | 1:b686a4955357 | 76 | |
williamweatherholtz | 1:b686a4955357 | 77 | // display test mode |
williamweatherholtz | 1:b686a4955357 | 78 | void start_display_test(); |
williamweatherholtz | 1:b686a4955357 | 79 | void stop_display_test(); |
williamweatherholtz | 1:b686a4955357 | 80 | |
williamweatherholtz | 1:b686a4955357 | 81 | void write(uint8_t reg, uint8_t data); |
williamweatherholtz | 1:b686a4955357 | 82 | //read(uint8_t reg, uint8_t data); |
williamweatherholtz | 1:b686a4955357 | 83 | |
williamweatherholtz | 1:b686a4955357 | 84 | void write_digit(uint8_t digit_num, uint8_t val); |
williamweatherholtz | 1:b686a4955357 | 85 | |
williamweatherholtz | 0:ef4b1297d850 | 86 | |
williamweatherholtz | 0:ef4b1297d850 | 87 | private: |
williamweatherholtz | 0:ef4b1297d850 | 88 | |
williamweatherholtz | 1:b686a4955357 | 89 | I2C &_display; |
williamweatherholtz | 1:b686a4955357 | 90 | uint8_t _address; |
williamweatherholtz | 0:ef4b1297d850 | 91 | }; |
williamweatherholtz | 0:ef4b1297d850 | 92 | #endif /* AS1115_H*/ |