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 1:b686a4955357 1 #include "as1115.h"
williamweatherholtz 0:ef4b1297d850 2
williamweatherholtz 0:ef4b1297d850 3
williamweatherholtz 0:ef4b1297d850 4 //*********************************************************************
williamweatherholtz 1:b686a4955357 5 AS1115::AS1115(I2C &display, const uint8_t address):
williamweatherholtz 1:b686a4955357 6 _display(display),
williamweatherholtz 1:b686a4955357 7 _address(address)
williamweatherholtz 0:ef4b1297d850 8 {
williamweatherholtz 1:b686a4955357 9 display.frequency(1000000);
williamweatherholtz 0:ef4b1297d850 10 }
williamweatherholtz 0:ef4b1297d850 11
williamweatherholtz 1:b686a4955357 12 void AS1115::write(uint8_t reg, uint8_t data)
williamweatherholtz 0:ef4b1297d850 13 {
williamweatherholtz 1:b686a4955357 14 char sendme[2] ={reg, data};
williamweatherholtz 1:b686a4955357 15 _display.write(_address << 1, sendme, 2);
williamweatherholtz 0:ef4b1297d850 16 }
williamweatherholtz 0:ef4b1297d850 17
williamweatherholtz 1:b686a4955357 18 void AS1115::enable(bool hard_reset)
williamweatherholtz 0:ef4b1297d850 19 {
williamweatherholtz 2:3261da935b2e 20 write(AS1115_SHUTDOWN, ((!hard_reset)<<7) | 1);
williamweatherholtz 0:ef4b1297d850 21 }
williamweatherholtz 0:ef4b1297d850 22
williamweatherholtz 1:b686a4955357 23 void AS1115::disable(bool hard_reset)
williamweatherholtz 0:ef4b1297d850 24 {
williamweatherholtz 2:3261da935b2e 25 write(AS1115_SHUTDOWN, ((!hard_reset)<<7) | 0);
williamweatherholtz 0:ef4b1297d850 26 }
williamweatherholtz 2:3261da935b2e 27 void AS1115::init()
williamweatherholtz 2:3261da935b2e 28 {
williamweatherholtz 1:b686a4955357 29 enable(true);
williamweatherholtz 2:3261da935b2e 30 set_self_addresses();
williamweatherholtz 1:b686a4955357 31 enable_decode();
williamweatherholtz 1:b686a4955357 32 set_global_intensity(8); // out of 16
williamweatherholtz 1:b686a4955357 33 start_display_test();
williamweatherholtz 1:b686a4955357 34 wait(0.5);
williamweatherholtz 1:b686a4955357 35 stop_display_test();
williamweatherholtz 0:ef4b1297d850 36 }
williamweatherholtz 0:ef4b1297d850 37
williamweatherholtz 1:b686a4955357 38 void AS1115::enable_decode(){ write(AS1115_DECODE_MODE, 0xFF);}
williamweatherholtz 1:b686a4955357 39 void AS1115::disable_decode(){ write(AS1115_DECODE_MODE, 0x00);}
williamweatherholtz 0:ef4b1297d850 40
williamweatherholtz 1:b686a4955357 41 void AS1115::set_global_intensity(uint8_t level){ write(AS1115_GLOBAL_INTENSITY, level);}
williamweatherholtz 0:ef4b1297d850 42
williamweatherholtz 1:b686a4955357 43 void AS1115::start_display_test(){ write(AS1115_DISPLAY_TEST_MODE, 0x01);}
williamweatherholtz 1:b686a4955357 44 void AS1115::stop_display_test(){ write(AS1115_DISPLAY_TEST_MODE, 0x00);}
williamweatherholtz 0:ef4b1297d850 45
williamweatherholtz 1:b686a4955357 46 void AS1115::set_num_digits(uint8_t num_digits){ write(AS1115_SCAN_LIMIT, num_digits-1);}
williamweatherholtz 0:ef4b1297d850 47
williamweatherholtz 1:b686a4955357 48 void AS1115::write_digit(uint8_t digit_num, uint8_t val){ write(AS1115_D0+digit_num, val);}
williamweatherholtz 2:3261da935b2e 49
williamweatherholtz 2:3261da935b2e 50 void AS1115::set_self_addresses(){ write(AS1115_SELF_ADDRESSING, 0x01);}
williamweatherholtz 2:3261da935b2e 51
williamweatherholtz 2:3261da935b2e 52 void AS1115::set_font(bool hex_font){ write(AS1115_FEATURE, hex_font<<2);}