From 633fc814b2a8281bda7a6f9760fd9465254effcd Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Tue, 12 Mar 2024 17:53:42 +0100 Subject: [PATCH] display tests --- Makefile | 2 +- canvas.c | 20 ++++++++++++++++++++ canvas.h | 3 ++- main.c | 5 ++++- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index f9fbc8b..30884d1 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ CFLAGS=-Wall -mmcu=$(MCU) -std=gnu99 -I $(TOOLCHAIN_PREFIX)/include -O3 -g0 LDFLAGS=-mmcu=$(MCU) -L $(TOOLCHAIN_PREFIX)/include -$(ARTIFACT).elf: main.o led.o time.o PontCoopScheduler.o displayDriver.o canvas.o displayTest.o +$(ARTIFACT).elf: main.o led.o time.o PontCoopScheduler.o displayDriver.o canvas.o displayTest.o displayTest2.o displayTest3.o displayTest4.o $(CC) -o $@ $(LDFLAGS) $^ $(OBJDUMP) -D $(ARTIFACT).elf > $(ARTIFACT).txt diff --git a/canvas.c b/canvas.c index 72f0740..5835465 100644 --- a/canvas.c +++ b/canvas.c @@ -31,3 +31,23 @@ void canvasShow() { void canvasSetPixel(uint8_t column, uint8_t row, uint8_t color) { *((canvas.canvas) + (row * canvas.width + column)) = (color + 0x80); } + +void canvasWipeRow(uint8_t row) { + memmove(((canvas.canvas)+canvas.width), canvas.canvas, canvas.width*row); + for (uint8_t i = 10; i < canvas.width*(row+1); i++) { + *((canvas.canvas)+i) += 0x80; + } + memset(canvas.canvas, 0x80, canvas.width); +} + +uint8_t canvasIsRowFilled(uint8_t row) { + uint8_t res = 1; + for (uint8_t column = 0; column < canvas.width; column++) { + if (*((canvas.canvas) + (row * canvas.width + column)) == 0) { + res = 0; + break; + } + } + return res; +} + diff --git a/canvas.h b/canvas.h index ae81036..0ebef3b 100644 --- a/canvas.h +++ b/canvas.h @@ -18,7 +18,8 @@ void canvasInit(); canvas_t *canvasGet(); void canvasShow(); void canvasSetPixel(uint8_t column, uint8_t row, uint8_t color); - +void canvasWipeRow(uint8_t row); +uint8_t canvasIsRowFilled(uint8_t row); #endif // _CANVAS_H_ diff --git a/main.c b/main.c index 8ca4042..2bca538 100644 --- a/main.c +++ b/main.c @@ -9,6 +9,9 @@ #include "displayDriver.h" #include "canvas.h" #include "displayTest.h" +#include "displayTest2.h" +#include "displayTest3.h" +#include "displayTest4.h" int main() { @@ -29,7 +32,7 @@ int main() { ledInit(); displayDriverInit(); canvasInit(); - displayTestInit(); + displayTest3Init(); __enable_interrupt();