test
as1115.h@2:3261da935b2e, 2018-04-16 (annotated)
- Committer:
- williamweatherholtz
- Date:
- Mon Apr 16 18:06:21 2018 +0000
- Revision:
- 2:3261da935b2e
- Parent:
- 1:b686a4955357
v1 - added font enums, still 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 | 2:3261da935b2e | 17 | const static uint8_t DP = 0x40; |
williamweatherholtz | 2:3261da935b2e | 18 | |
williamweatherholtz | 2:3261da935b2e | 19 | typedef enum |
williamweatherholtz | 2:3261da935b2e | 20 | { |
williamweatherholtz | 2:3261da935b2e | 21 | AS1115_BCD_0=0x00, |
williamweatherholtz | 2:3261da935b2e | 22 | AS1115_BCD_1, |
williamweatherholtz | 2:3261da935b2e | 23 | AS1115_BCD_2, |
williamweatherholtz | 2:3261da935b2e | 24 | AS1115_BCD_3, |
williamweatherholtz | 2:3261da935b2e | 25 | AS1115_BCD_4, |
williamweatherholtz | 2:3261da935b2e | 26 | AS1115_BCD_5, |
williamweatherholtz | 2:3261da935b2e | 27 | AS1115_BCD_6, |
williamweatherholtz | 2:3261da935b2e | 28 | AS1115_BCD_7, |
williamweatherholtz | 2:3261da935b2e | 29 | AS1115_BCD_8, |
williamweatherholtz | 2:3261da935b2e | 30 | AS1115_BCD_9, |
williamweatherholtz | 2:3261da935b2e | 31 | AS1115_BCD_DASH, |
williamweatherholtz | 2:3261da935b2e | 32 | AS1115_BCD_E, |
williamweatherholtz | 2:3261da935b2e | 33 | AS1115_BCD_H, |
williamweatherholtz | 2:3261da935b2e | 34 | AS1115_BCD_L, |
williamweatherholtz | 2:3261da935b2e | 35 | AS1115_BCD_P, |
williamweatherholtz | 2:3261da935b2e | 36 | AS1115_BCD_BLANK=0xF |
williamweatherholtz | 2:3261da935b2e | 37 | }bcd_font; |
williamweatherholtz | 2:3261da935b2e | 38 | |
williamweatherholtz | 2:3261da935b2e | 39 | typedef enum |
williamweatherholtz | 2:3261da935b2e | 40 | { |
williamweatherholtz | 2:3261da935b2e | 41 | AS1115_HEX_0=0x00, |
williamweatherholtz | 2:3261da935b2e | 42 | AS1115_HEX_1, |
williamweatherholtz | 2:3261da935b2e | 43 | AS1115_HEX_2, |
williamweatherholtz | 2:3261da935b2e | 44 | AS1115_HEX_3, |
williamweatherholtz | 2:3261da935b2e | 45 | AS1115_HEX_4, |
williamweatherholtz | 2:3261da935b2e | 46 | AS1115_HEX_5, |
williamweatherholtz | 2:3261da935b2e | 47 | AS1115_HEX_6, |
williamweatherholtz | 2:3261da935b2e | 48 | AS1115_HEX_7, |
williamweatherholtz | 2:3261da935b2e | 49 | AS1115_HEX_8, |
williamweatherholtz | 2:3261da935b2e | 50 | AS1115_HEX_9, |
williamweatherholtz | 2:3261da935b2e | 51 | AS1115_HEX_A, |
williamweatherholtz | 2:3261da935b2e | 52 | AS1115_HEX_B, |
williamweatherholtz | 2:3261da935b2e | 53 | AS1115_HEX_C, |
williamweatherholtz | 2:3261da935b2e | 54 | AS1115_HEX_D, |
williamweatherholtz | 2:3261da935b2e | 55 | AS1115_HEX_E, |
williamweatherholtz | 2:3261da935b2e | 56 | AS1115_HEX_F |
williamweatherholtz | 2:3261da935b2e | 57 | }hex_font; |
williamweatherholtz | 1:b686a4955357 | 58 | |
williamweatherholtz | 1:b686a4955357 | 59 | typedef enum |
williamweatherholtz | 1:b686a4955357 | 60 | { |
williamweatherholtz | 1:b686a4955357 | 61 | // DIGIT REGISTERS |
williamweatherholtz | 1:b686a4955357 | 62 | AS1115_D0 = 0x01, |
williamweatherholtz | 1:b686a4955357 | 63 | AS1115_D1, |
williamweatherholtz | 1:b686a4955357 | 64 | AS1115_D2, |
williamweatherholtz | 1:b686a4955357 | 65 | AS1115_D3, |
williamweatherholtz | 1:b686a4955357 | 66 | AS1115_D4, |
williamweatherholtz | 1:b686a4955357 | 67 | AS1115_D5, |
williamweatherholtz | 1:b686a4955357 | 68 | AS1115_D6, |
williamweatherholtz | 1:b686a4955357 | 69 | AS1115_D7, |
williamweatherholtz | 1:b686a4955357 | 70 | |
williamweatherholtz | 1:b686a4955357 | 71 | // CONTROL REGISTERS |
williamweatherholtz | 1:b686a4955357 | 72 | AS1115_DECODE_MODE, |
williamweatherholtz | 1:b686a4955357 | 73 | AS1115_GLOBAL_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 74 | AS1115_SCAN_LIMIT, |
williamweatherholtz | 2:3261da935b2e | 75 | AS1115_SHUTDOWN = 0x0C, |
williamweatherholtz | 2:3261da935b2e | 76 | AS1115_SELF_ADDRESSING = 0x2D, // ok fine lets be awkward |
williamweatherholtz | 2:3261da935b2e | 77 | AS1115_FEATURE =0x0E, |
williamweatherholtz | 1:b686a4955357 | 78 | AS1115_DISPLAY_TEST_MODE, |
williamweatherholtz | 1:b686a4955357 | 79 | AS1115_DIG0_DIG1_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 80 | AS1115_DIG2_DIG3_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 81 | AS1115_DIG4_DIG5_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 82 | AS1115_DIG6_DIG7_INTENSITY, |
williamweatherholtz | 1:b686a4955357 | 83 | |
williamweatherholtz | 1:b686a4955357 | 84 | // DIAGNOSTIC REGISTERS |
williamweatherholtz | 1:b686a4955357 | 85 | AS1115_DIAGNOSTIC_DIGIT_0, |
williamweatherholtz | 1:b686a4955357 | 86 | AS1115_DIAGNOSTIC_DIGIT_1, |
williamweatherholtz | 1:b686a4955357 | 87 | AS1115_DIAGNOSTIC_DIGIT_2, |
williamweatherholtz | 1:b686a4955357 | 88 | AS1115_DIAGNOSTIC_DIGIT_3, |
williamweatherholtz | 1:b686a4955357 | 89 | AS1115_DIAGNOSTIC_DIGIT_4, |
williamweatherholtz | 1:b686a4955357 | 90 | AS1115_DIAGNOSTIC_DIGIT_5, |
williamweatherholtz | 1:b686a4955357 | 91 | AS1115_DIAGNOSTIC_DIGIT_6, |
williamweatherholtz | 1:b686a4955357 | 92 | AS1115_DIAGNOSTIC_DIGIT_7, |
williamweatherholtz | 1:b686a4955357 | 93 | AS1115_KEYA, |
williamweatherholtz | 1:b686a4955357 | 94 | AS1115_KEYB=0x1D |
williamweatherholtz | 1:b686a4955357 | 95 | }registers; |
williamweatherholtz | 1:b686a4955357 | 96 | |
williamweatherholtz | 0:ef4b1297d850 | 97 | |
williamweatherholtz | 1:b686a4955357 | 98 | AS1115(I2C &display, const uint8_t address); |
williamweatherholtz | 1:b686a4955357 | 99 | AS1115(PinName sda, PinName sck, const uint8_t address); |
williamweatherholtz | 1:b686a4955357 | 100 | |
williamweatherholtz | 2:3261da935b2e | 101 | void init(); |
williamweatherholtz | 1:b686a4955357 | 102 | |
williamweatherholtz | 1:b686a4955357 | 103 | // shutdown mode options |
williamweatherholtz | 1:b686a4955357 | 104 | void enable(bool hard_reset=false); |
williamweatherholtz | 1:b686a4955357 | 105 | void disable(bool hard_reset=false); |
williamweatherholtz | 1:b686a4955357 | 106 | |
williamweatherholtz | 1:b686a4955357 | 107 | // decode mode options |
williamweatherholtz | 1:b686a4955357 | 108 | void enable_decode(); |
williamweatherholtz | 1:b686a4955357 | 109 | void disable_decode(); |
williamweatherholtz | 1:b686a4955357 | 110 | |
williamweatherholtz | 1:b686a4955357 | 111 | // intensity |
williamweatherholtz | 1:b686a4955357 | 112 | void set_global_intensity(uint8_t level); |
williamweatherholtz | 1:b686a4955357 | 113 | |
williamweatherholtz | 1:b686a4955357 | 114 | // scan limit |
williamweatherholtz | 1:b686a4955357 | 115 | void set_num_digits(uint8_t num_digits); |
williamweatherholtz | 1:b686a4955357 | 116 | |
williamweatherholtz | 1:b686a4955357 | 117 | |
williamweatherholtz | 1:b686a4955357 | 118 | // display test mode |
williamweatherholtz | 1:b686a4955357 | 119 | void start_display_test(); |
williamweatherholtz | 1:b686a4955357 | 120 | void stop_display_test(); |
williamweatherholtz | 1:b686a4955357 | 121 | |
williamweatherholtz | 2:3261da935b2e | 122 | void write(uint8_t reg, uint8_t data); |
williamweatherholtz | 1:b686a4955357 | 123 | |
williamweatherholtz | 1:b686a4955357 | 124 | void write_digit(uint8_t digit_num, uint8_t val); |
williamweatherholtz | 1:b686a4955357 | 125 | |
williamweatherholtz | 2:3261da935b2e | 126 | void set_self_addresses(); |
williamweatherholtz | 2:3261da935b2e | 127 | void set_font(bool hex_font); |
williamweatherholtz | 0:ef4b1297d850 | 128 | |
williamweatherholtz | 0:ef4b1297d850 | 129 | private: |
williamweatherholtz | 0:ef4b1297d850 | 130 | |
williamweatherholtz | 1:b686a4955357 | 131 | I2C &_display; |
williamweatherholtz | 1:b686a4955357 | 132 | uint8_t _address; |
williamweatherholtz | 0:ef4b1297d850 | 133 | }; |
williamweatherholtz | 0:ef4b1297d850 | 134 | #endif /* AS1115_H*/ |