test

as1115.h

Committer:
williamweatherholtz
Date:
2018-04-16
Revision:
1:b686a4955357
Parent:
0:ef4b1297d850
Child:
2:3261da935b2e

File content as of revision 1:b686a4955357:

#ifndef AS1115_H
#define AS1115_H

#include "mbed.h"

typedef struct
{
    uint8_t device_number;
    uint8_t decode_mode;
    uint8_t intensity;
    uint8_t scan_limit;
}max7219_configuration_t;

class AS1115
{
    public:
            
        typedef enum
        {
            // DIGIT REGISTERS
            AS1115_D0 = 0x01,
            AS1115_D1,
            AS1115_D2,
            AS1115_D3,
            AS1115_D4,
            AS1115_D5,
            AS1115_D6,
            AS1115_D7,
            
            // CONTROL REGISTERS
            AS1115_DECODE_MODE,
            AS1115_GLOBAL_INTENSITY,
            AS1115_SCAN_LIMIT,
            AS1115_SHUTDOWN,
            AS1115_SELF_ADDRESSING,
            AS1115_FEATURE,
            AS1115_DISPLAY_TEST_MODE,
            AS1115_DIG0_DIG1_INTENSITY,
            AS1115_DIG2_DIG3_INTENSITY,
            AS1115_DIG4_DIG5_INTENSITY,
            AS1115_DIG6_DIG7_INTENSITY,
            
            // DIAGNOSTIC REGISTERS
            AS1115_DIAGNOSTIC_DIGIT_0,
            AS1115_DIAGNOSTIC_DIGIT_1,
            AS1115_DIAGNOSTIC_DIGIT_2,
            AS1115_DIAGNOSTIC_DIGIT_3,
            AS1115_DIAGNOSTIC_DIGIT_4,
            AS1115_DIAGNOSTIC_DIGIT_5,
            AS1115_DIAGNOSTIC_DIGIT_6,
            AS1115_DIAGNOSTIC_DIGIT_7,
            AS1115_KEYA,
            AS1115_KEYB=0x1D
        }registers;
            
        
        AS1115(I2C &display, const uint8_t address);
        AS1115(PinName sda, PinName sck, const uint8_t address);
        
        void begin();
        
        // shutdown mode options
        void enable(bool hard_reset=false);
        void disable(bool hard_reset=false);
        
        // decode mode options
        void enable_decode();
        void disable_decode();
        
        // intensity
        void set_global_intensity(uint8_t level);
        
        // scan limit
        void set_num_digits(uint8_t num_digits);
        
        
        // display test mode
        void start_display_test();
        void stop_display_test();
        
        void write(uint8_t reg, uint8_t data);        
        //read(uint8_t reg, uint8_t data);
        
        void write_digit(uint8_t digit_num, uint8_t val);
        
      
    private:
    
        I2C &_display;
        uint8_t _address;
};
#endif /* AS1115_H*/