Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit8af883ce66cb3fd2a320ed67cf34f55d79863dff (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-05-22 16:33:40 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-05-22 16:33:40 +0300
Filese3c3ce0987cb0f43f9d357b29e64587ee8d96614
uni-projects-8af883ce66cb3fd2a320ed67cf34f55d79863dff.tar
uni-projects-8af883ce66cb3fd2a320ed67cf34f55d79863dff.tar.gz
uni-projects-8af883ce66cb3fd2a320ed67cf34f55d79863dff.zip
Parent4dccba79d288deafd92e98be31c92e5ad2e0b337 (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.c37
-rw-r--r--Year 3/Internet of things/goam/main/ibm-vga-8x16.c12
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,
};