24,9 → 24,10 |
}; |
|
static LED_DATA led_data; |
static LED_DATA *led_data_p = &led_data; |
|
void LED_Init() { |
led_data.i2c_address = 0x70; |
led_data_p->i2c_address = 0x70; |
} |
|
void LED_Start() { |
33,7 → 34,7 |
unsigned char result; |
unsigned char c = 0x21; // Cmd to turn on oscillator |
|
I2C_Master_Send(led_data.i2c_address, 1, &c); |
I2C_Master_Send(led_data_p->i2c_address, 1, &c); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
51,7 → 52,7 |
if (c > 15) c = 15; |
c |= 0xE0; |
|
I2C_Master_Send(led_data.i2c_address, 1, &c); |
I2C_Master_Send(led_data_p->i2c_address, 1, &c); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
65,7 → 66,7 |
|
buffer = HT16K33_BLINK_CMD | HT16K33_BLINK_DISPLAYON | (c << 1); |
|
I2C_Master_Send(led_data.i2c_address, 1, &buffer); |
I2C_Master_Send(led_data_p->i2c_address, 1, &buffer); |
buffer = I2C_Get_Status(); |
while (!buffer) { |
buffer = I2C_Get_Status(); |
75,8 → 76,8 |
void LED_writeDisplay() { |
unsigned char result; |
|
led_data.display_buffer[0] = 0x00; // Start at address 0x00 |
I2C_Master_Send(led_data.i2c_address, 17, led_data.display_buffer); |
led_data_p->display_buffer[0] = 0x00; // Start at address 0x00 |
I2C_Master_Send(led_data_p->i2c_address, 17, led_data_p->display_buffer); |
|
result = I2C_Get_Status(); |
while (!result) { |
87,21 → 88,21 |
void LED_clear() { |
unsigned char c; |
for (c = 0; c < 17; c++) { |
led_data.display_buffer[c] = 0; |
led_data_p->display_buffer[c] = 0; |
} |
} |
|
void LED_drawColon(unsigned char c) { |
if (c) { |
led_data.display_buffer[5] = 0xFF; |
led_data_p->display_buffer[5] = 0xFF; |
} else { |
led_data.display_buffer[5] = 0; |
led_data_p->display_buffer[5] = 0; |
} |
} |
|
void LED_writeDigitRaw(unsigned char loc, unsigned char bitmask) { |
if (loc > 4) return; |
led_data.display_buffer[(loc<<1)+1] = bitmask; |
led_data_p->display_buffer[(loc<<1)+1] = bitmask; |
} |
|
void LED_writeDigitNum(unsigned char loc, unsigned char num, unsigned char dot) { |