From 6d0995e165fe83617db6f2849036d00270548d37 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Fri, 19 Feb 2016 15:29:00 -0800 Subject: [PATCH] Function to read bytes from 16-bit LCD interface. ...begin careful not to overread from the LCD, or overwrite to the buffer. --- firmware/common/portapack_io.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/firmware/common/portapack_io.hpp b/firmware/common/portapack_io.hpp index ca6603165..7ec868419 100644 --- a/firmware/common/portapack_io.hpp +++ b/firmware/common/portapack_io.hpp @@ -152,6 +152,20 @@ public: } } + void lcd_read_bytes(uint8_t* byte, size_t byte_count) { + size_t word_count = byte_count / 2; + while(word_count) { + const auto word = lcd_read_data_frame_memory(); + *(byte++) = word >> 8; + *(byte++) = word >> 0; + word_count--; + } + if( byte_count & 1 ) { + const auto word = lcd_read_data_frame_memory(); + *(byte++) = word >> 8; + } + } + uint32_t io_read() { io_stb_assert(); dir_read();