mirror of
https://github.com/Derisis13/AT-VFD.git
synced 2025-12-06 19:32:49 +01:00
* Feature: functions to set all RAM types
This commit is contained in:
46
PT6302.c
46
PT6302.c
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user