kopia lustrzana https://github.com/pimoroni/pimoroni-pico
Make it possible to derive from DVDisplay if you want to do fancy things with the frame header
rodzic
a6bd626334
commit
3bc215074c
|
@ -333,7 +333,7 @@ namespace pimoroni {
|
|||
read(point_to_address_palette(p), l, data);
|
||||
}
|
||||
|
||||
void DVDisplay::write_header()
|
||||
void DVDisplay::write_header_preamble()
|
||||
{
|
||||
uint32_t buf[8];
|
||||
uint32_t full_width = width * h_repeat;
|
||||
|
@ -346,7 +346,13 @@ namespace pimoroni {
|
|||
buf[6] = 0x00000001;
|
||||
ram.write(0, buf, 7 * 4);
|
||||
ram.wait_for_finish_blocking();
|
||||
}
|
||||
|
||||
void DVDisplay::write_header()
|
||||
{
|
||||
write_header_preamble();
|
||||
|
||||
uint32_t buf[8];
|
||||
uint addr = 4 * 7;
|
||||
uint line_type = 0x80000000u + ((uint)mode << 28);
|
||||
printf("Write header, line type %08x\n", line_type);
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace pimoroni {
|
|||
//--------------------------------------------------
|
||||
// Variables
|
||||
//--------------------------------------------------
|
||||
private:
|
||||
protected:
|
||||
// Ram accessed through the APS6404 driver
|
||||
APS6404 ram;
|
||||
|
||||
|
@ -158,11 +158,18 @@ namespace pimoroni {
|
|||
// The supplied buffer must be at least 128 bytes long
|
||||
void get_edid(uint8_t* edid);
|
||||
|
||||
private:
|
||||
protected:
|
||||
uint8_t palette[PALETTE_SIZE * 3] alignas(4);
|
||||
bool rewrite_header = false;
|
||||
|
||||
static constexpr int PIXEL_BUFFER_LEN_IN_WORDS = 16;
|
||||
virtual void write_palette();
|
||||
virtual void write_header();
|
||||
|
||||
void write_header_preamble();
|
||||
void i2c_modify_bit(uint8_t reg, uint bit, bool enable);
|
||||
|
||||
private:
|
||||
static constexpr int PIXEL_BUFFER_LEN_IN_WORDS = 32;
|
||||
uint32_t pixel_buffer[PIXEL_BUFFER_LEN_IN_WORDS];
|
||||
Point pixel_buffer_location;
|
||||
int32_t pixel_buffer_x;
|
||||
|
@ -173,11 +180,6 @@ namespace pimoroni {
|
|||
void read(uint32_t address, size_t len, uint8_t *data);
|
||||
void write(uint32_t address, size_t len, const RGB888 colour);
|
||||
|
||||
void write_palette();
|
||||
void write_header();
|
||||
|
||||
void i2c_modify_bit(uint8_t reg, uint bit, bool enable);
|
||||
|
||||
uint32_t point_to_address(const Point &p) {
|
||||
return base_address + ((p.y * (uint32_t)width * 3) + p.x) * 2;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue