* Feature: functions to set all RAM types

This commit is contained in:
2022-03-07 23:59:00 +01:00
parent 6aaefc300f
commit c87bd472a3
3 changed files with 100 additions and 1 deletions

View File

@@ -72,3 +72,49 @@ void set_digits (uint8_t digit_count)
const uint8_t command = 0x60 | digit_count;
transmit_bytes (&command, 1);
}
void set_ADRAM (const uint8_t address, const uint8_t *data, uint8_t size)
{
if (address > DISPLAY_DIGITS)
return;
if (address + size > DISPLAY_DIGITS)
size = DISPLAY_DIGITS - address;
uint8_t payload[++size];
payload[0] = ADRAM | address;
for (int i = 1; i < size; ++i)
{
payload[i] = data[i - 1];
}
transmit_bytes (payload, size);
}
void set_CGRAM (const uint8_t address, const uint8_t *data, uint8_t size)
{
if (address > 0x08)
return;
if (address + size > 0x08)
size = 0x08 - address;
size = size * 5 + 1;
uint8_t payload[size];
payload[0] = CGRAM | address;
for (int i = 1; i < size; ++i)
{
payload[i] = *(data + i - 1);
}
transmit_bytes (payload, size);
}
void set_DCRAM (const uint8_t address, const uint8_t *cg_address, uint8_t size)
{
if (address > DISPLAY_DIGITS)
return;
if (address + size > DISPLAY_DIGITS)
size = DISPLAY_DIGITS - address;
uint8_t payload[++size];
payload[0] = DCRAM | address;
for (int i = 1; i < size; ++i)
{
payload[i] = cg_address[i - 1];
}
transmit_bytes (payload, size);
}