Replies: 5 comments 18 replies
-
|
Working... I might have a different idea for you. |
Beta Was this translation helpful? Give feedback.
-
|
Yes, EVE_cmd_memwrite() is commented out since that one would use the command-coprocessor to take bytes from the command-fifo and write them to RAM_G while you also can write to RAM_G directly. Just use EVE_memWrite_sram_buffer() for your array. However, EVE_memWrite_sram_buffer() does not work with DMA and there is no function that would, yet, this just did not come up so far. Ok, maybe this is something for which EVE_cmd_memwrite() would make sense. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Yes, EVE_memWrite_sram_buffer() can not use DMA. And yes, I also thought of going wider, did not try to though. :-) |
Beta Was this translation helpful? Give feedback.
-
|
I just pushed the updated EVE_commands.c / EVE_commands.h both here and for https://github.com/RudolphRiedel/EmbeddedVideoEngine. |
Beta Was this translation helpful? Give feedback.





Uh oh!
There was an error while loading. Please reload this page.
-
Hello, I need some help with a feature I am attempting to implement in an 800x480 BT817 display.
I am trying to implement a "waterfall". This could be described as a "time dependent temperature plot".
Temperature is shown by color, and time moves downward in a rectangular area of the display.
This is done by drawing a single line with the profile of temperature, meaning each pixel of the line can have a different color.
On a periodic basis, a new line is drawn and the lines below are shifted down. I have an idea of how to implement this using CMD_SNAPSHOT2. It may not be the most efficient, but maybe a workable prototype. I'm not getting past the basics yet.
Problems:
According to the programming guide, this command should not disturb the display. However it does! There is a very annoying glitch, as a drawn line jumps and flashes when the command is sent. My application can't tolerate glitches.
Here is my code. This is using a Teensy 4.1 and PlatformIO. Hopefully there are enough comments to follow what I am trying to accomplish. The "waterfall line" in this test code is a simple line. In the actual application, it will be made pixel by pixel. The process: 1. draw a line. 2. Copy the line to RAM_G as a bitmap. 3. Re-draw the line including the bitmap.
`void loop()
{
// Command burst for waterfall line.
EVE_start_cmd_burst();
EVE_cmd_dl(CMD_DLSTART);
EVE_cmd_dl(DL_CLEAR_COLOR_RGB | 0x000000);
EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG);
EVE_vertex_format_burst(0);
EVE_point_size_burst(32);
// Draw a line on the left edge, vertical middle of the display.
EVE_begin_burst(EVE_LINES);
EVE_color_rgb_burst(0xff0000);
EVE_vertex2f_burst(0, 239);
EVE_vertex2f_burst(255, 239);
EVE_end_burst();
EVE_display_burst();
EVE_cmd_swap_burst();
EVE_end_cmd_burst();
while (EVE_busy());
delayMicroseconds(20000);
// Wait 2 seconds to verify the above line is visible and stable.
delay(2000);
// Snapshot2 of the above line to middle of RAM_G.
// This command causes a very noticeable glitch in the display.
EVE_cmd_snapshot2(7, 500000, 0, 239, 256, 1);
// Wait 2 seconds to guarantee the snapshot operation is complete.
delay(2000);
// Now display the bitmap at a different location.
EVE_start_cmd_burst();
EVE_cmd_dl(CMD_DLSTART);
EVE_cmd_dl(DL_CLEAR_COLOR_RGB | 0x000000);
EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG);
EVE_vertex_format_burst(0);
EVE_point_size_burst(32);
// First, the original line.
EVE_begin_burst(EVE_LINES);
EVE_color_rgb_burst(0xff0000);
EVE_vertex2f_burst(0, 239);
EVE_vertex2f_burst(255, 239);
EVE_end_burst();
// Now add the bitmap in a different location.
EVE_cmd_setbitmap(500000, 7, 256, 1);
EVE_begin(EVE_BITMAPS);
// Place the bitmap starting in the middle of the display.
EVE_vertex2f(400, 239);
EVE_end();
EVE_display_burst();
EVE_cmd_swap_burst();
EVE_end_cmd_burst();
while (EVE_busy());
// Delay to view the bitmap.
delay(2000);
}
`
Suggestions please!
Thank you,
Greg
Beta Was this translation helpful? Give feedback.
All reactions