test

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?

UserRevisionLine numberNew 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*/