diff options
| Commit | 8af883ce66cb3fd2a320ed67cf34f55d79863dff (patch) | |
|---|---|---|
| Author | 2024-05-22 16:33:40 +0300 | |
| Committer | 2024-05-22 16:33:40 +0300 | |
| Files | e3c3ce0987cb0f43f9d357b29e64587ee8d96614 | |
| uni-projects-8af883ce66cb3fd2a320ed67cf34f55d79863dff.tar uni-projects-8af883ce66cb3fd2a320ed67cf34f55d79863dff.tar.gz uni-projects-8af883ce66cb3fd2a320ed67cf34f55d79863dff.zip | ||
| Parent | 4dccba79d288deafd92e98be31c92e5ad2e0b337 (diff) | |
(iot/goam) More or less finished flexible print
2 files changed, 30 insertions, 19 deletions
| -rw-r--r-- | Year 3/Internet of things/goam/main/display.c | 37 | ||||
| -rw-r--r-- | Year 3/Internet of things/goam/main/ibm-vga-8x16.c | 12 |
diff --git a/Year 3/Internet of things/goam/main/display.c b/Year 3/Internet of things/goam/main/display.c index b63e5a5..dbe9abd 100644 --- a/Year 3/Internet of things/goam/main/display.c +++ b/Year 3/Internet of things/goam/main/display.c @@ -39,6 +39,8 @@ enum DATA_TYPE { }; static void send(enum DATA_TYPE type, const unsigned char* data, size_t size) { + if (size == 0) return; + i2c_cmd_handle_t i2c_handle = i2c_cmd_link_create(); ESP_ERROR_CHECK(i2c_master_start(i2c_handle)); @@ -70,10 +72,7 @@ static const unsigned char startup[] = { }; unsigned char current_page = 0; - -static void incr_page() { - current_page = (current_page + 1) % 8; -} +#define PAGE_INC ((current_page + 1) % 8) void display_init() { i2c_init(); @@ -105,25 +104,25 @@ void display_output_beginning() { display_output_borders(0, 127, 0, 7); } -void display_newline() { - display_output_borders(0, 127, current_page + 1, 7); +void display_newpage() { + display_output_borders(0, 127, PAGE_INC, 7); } -void display_println(const char* str) { - for (int linepage = 0; linepage <= 1; linepage++, incr_page()) { +void display_print(const char* str) { + for (int linepage = 0; linepage <= 1; linepage++) { int column; for (column = 0; column < 128; column++) { - if (str[column / bitpixel_char_width] == '\0') break; - /* if (str[column / bitpixel_char_width] == '\n') { */ - /* str += column / bitpixel_char_width; */ - /* break; */ - /* } */ + if (str[column / bitpixel_char_width] == '\0') { + column--; + break; + } out_page_row[column] = bitpixel_chars[(int)str[column / bitpixel_char_width]][(column * 2 + linepage) % 16]; } - send(DATA_STREAM, out_page_row, column + 1); - /* if (column + 1 < sizeof(out_page_row)) { */ - /* display_newline(); */ - /* } */ + send(DATA_STREAM, out_page_row, column); + if (column < sizeof(out_page_row)) { + display_newpage(); + } + current_page = PAGE_INC; } } @@ -133,8 +132,8 @@ void display_example() { // MUST be separated, for some reason /* send(CMD_STREAM, &off, 1); */ /* display_print(""); */ - display_println("A A A A A A A A A"); - display_println("AAAAAAAA"); + /* display_print("A0 "); */ + /* display_print(""); */ /* for (int i = 0; i < 16; i++) { */ /* out_page_row[i] = bitpixel_chars[1][(i * 2) % 16]; */ /* } */ diff --git a/Year 3/Internet of things/goam/main/ibm-vga-8x16.c b/Year 3/Internet of things/goam/main/ibm-vga-8x16.c index 2bb7922..6ce68f1 100644 --- a/Year 3/Internet of things/goam/main/ibm-vga-8x16.c +++ b/Year 3/Internet of things/goam/main/ibm-vga-8x16.c @@ -23,6 +23,17 @@ const uint8_t A[16] = { COL(0000000000000000) }; +const uint8_t n0[16] = { + COL(0000011111110000) + COL(0000111111111000) + COL(0000100110001000) + COL(0000100011001000) + COL(0000100001101000) + COL(0000111111111000) + COL(0000011111110000) + COL(0000000000000000) +}; + /* const uint8_t A[] = { */ /* 0b11100000, 0b00001111, */ /* 0b11110000, 0b00001111, */ @@ -35,6 +46,7 @@ const uint8_t A[16] = { /* }; */ const uint8_t* bitpixel_chars[256] = { + ['0'] = n0, ['A'] = A, [' '] = space, }; |
