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 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 1:b686a4955357 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 1:b686a4955357 25 write(AS1115_SHUTDOWN, (!hard_reset<<7) | 0);
williamweatherholtz 0:ef4b1297d850 26 }
williamweatherholtz 1:b686a4955357 27 void AS1115::begin()
williamweatherholtz 1:b686a4955357 28 {
williamweatherholtz 1:b686a4955357 29 enable(true);
williamweatherholtz 1:b686a4955357 30 enable_decode();
williamweatherholtz 1:b686a4955357 31 set_global_intensity(8); // out of 16
williamweatherholtz 1:b686a4955357 32 start_display_test();
williamweatherholtz 1:b686a4955357 33 wait(0.5);
williamweatherholtz 1:b686a4955357 34 stop_display_test();
williamweatherholtz 0:ef4b1297d850 35 }
williamweatherholtz 0:ef4b1297d850 36
williamweatherholtz 1:b686a4955357 37 void AS1115::enable_decode(){ write(AS1115_DECODE_MODE, 0xFF);}
williamweatherholtz 1:b686a4955357 38 void AS1115::disable_decode(){ write(AS1115_DECODE_MODE, 0x00);}
williamweatherholtz 0:ef4b1297d850 39
williamweatherholtz 1:b686a4955357 40 void AS1115::set_global_intensity(uint8_t level){ write(AS1115_GLOBAL_INTENSITY, level);}
williamweatherholtz 0:ef4b1297d850 41
williamweatherholtz 1:b686a4955357 42 void AS1115::start_display_test(){ write(AS1115_DISPLAY_TEST_MODE, 0x01);}
williamweatherholtz 1:b686a4955357 43 void AS1115::stop_display_test(){ write(AS1115_DISPLAY_TEST_MODE, 0x00);}
williamweatherholtz 0:ef4b1297d850 44
williamweatherholtz 1:b686a4955357 45 void AS1115::set_num_digits(uint8_t num_digits){ write(AS1115_SCAN_LIMIT, num_digits-1);}
williamweatherholtz 0:ef4b1297d850 46
williamweatherholtz 1:b686a4955357 47 void AS1115::write_digit(uint8_t digit_num, uint8_t val){ write(AS1115_D0+digit_num, val);}