test

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?

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