Taiga Develop 2 tuần trước cách đây
mục cha
commit
2c875fb1dc

+ 28 - 0
sources/creator_hd44780_shift_register.c

@@ -0,0 +1,28 @@
+#include <stddef.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+#include <cx/chlcd.h>
+
+chlcd_error_t chlcd_hd44780_shift_register_create(
+    chlcd_display_t *self,
+    chlcd_hd44780_shift_register_connector_t *connector,
+    chlcd_size_t width,
+    chlcd_size_t height
+) {
+    if (connector == NULL) {
+        return CHLCD_BAD_ARGUMENT;
+    }
+
+    if (width == 0 || height == 0) {
+        return CHLCD_BAD_ARGUMENT;
+    }
+
+    self->width = width;
+    self->height = height;
+    self->sender = chlcd_hd44780_shift_register_sender;
+    self->decoder = chlcd_hd44780_decoder;
+    self->connector = (void *) connector;
+
+    return CHLCD_SUCCESS;
+}

+ 24 - 0
tests/002-lcd-init-shift-register/make.sh

@@ -0,0 +1,24 @@
+#!/bin/bash
+
+CC=gcc
+CC_FLAGS="-O2"
+
+OWN=$(dirname $(realpath $0))
+TEST_SOURCE=$OWN/testing.c
+TEST_OUTPUT=$OWN/testing.app
+HEADERS=$OWN/../../headers
+LIBRARY=$OWN/../../build-generic
+LIBRARY_MAKE=$OWN/../../build-generic/make.sh
+
+rm -f $TEST_OUTPUT
+
+echo "Rebuilding..."
+$LIBRARY_MAKE
+
+echo ""
+echo "Build test..."
+$CC $CC_FLAGS $TEST_SOURCE -o $TEST_OUTPUT -I$HEADERS -L$LIBRARY -lchlcd 
+
+echo "Running..."
+echo ""
+$TEST_OUTPUT

+ 32 - 0
tests/002-lcd-init-shift-register/testing.c

@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <cx/chlcd.h>
+
+int main(int argc, char *argv[]) {
+    puts("Start CX-CHLCD in testing mode.");
+
+    chlcd_hd44780_shift_register_connector_t connector[1] = {0};
+    
+    connector->register_latch = 6;
+    connector->register_data = 10;
+    connector->register_clock = 7;
+
+    connector->d7 = 5;
+    connector->d6 = 4;
+    connector->d5 = 3;
+    connector->d4 = 2;
+    connector->rs = 0;
+    connector->e = 1;
+
+    chlcd_display_t display[1] = {0};
+
+    chlcd_hd44780_shift_register_create(
+        display,
+        connector,
+        16,
+        2
+    );
+    
+    chlcd_display_init(display);
+
+    return 0;
+}