test

as1115.cpp

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

File content as of revision 2:3261da935b2e:

#include "as1115.h"


//*********************************************************************
AS1115::AS1115(I2C &display, const uint8_t address):
_display(display),
_address(address)
{
    display.frequency(1000000);
}

void AS1115::write(uint8_t reg, uint8_t data)
{
    char sendme[2] ={reg, data};
    _display.write(_address << 1, sendme, 2);
}

void AS1115::enable(bool hard_reset)
{
    write(AS1115_SHUTDOWN, ((!hard_reset)<<7) | 1);
}

void AS1115::disable(bool hard_reset)
{
    write(AS1115_SHUTDOWN, ((!hard_reset)<<7) | 0);
}
void AS1115::init()
{
    enable(true);
    set_self_addresses();
    enable_decode();
    set_global_intensity(8); // out of 16
    start_display_test();
    wait(0.5);
    stop_display_test();
}

void AS1115::enable_decode(){                                write(AS1115_DECODE_MODE, 0xFF);}
void AS1115::disable_decode(){                               write(AS1115_DECODE_MODE, 0x00);}

void AS1115::set_global_intensity(uint8_t level){            write(AS1115_GLOBAL_INTENSITY, level);}

void AS1115::start_display_test(){                           write(AS1115_DISPLAY_TEST_MODE, 0x01);}
void AS1115::stop_display_test(){                            write(AS1115_DISPLAY_TEST_MODE, 0x00);}

void AS1115::set_num_digits(uint8_t num_digits){             write(AS1115_SCAN_LIMIT, num_digits-1);}

void AS1115::write_digit(uint8_t digit_num, uint8_t val){    write(AS1115_D0+digit_num, val);}

void AS1115::set_self_addresses(){                           write(AS1115_SELF_ADDRESSING, 0x01);}

void AS1115::set_font(bool hex_font){                         write(AS1115_FEATURE, hex_font<<2);}