aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/task.h2
-rw-r--r--initrd/init22
-rwxr-xr-xrun.sh8
-rw-r--r--src/display_draw.c4
-rw-r--r--src/task.c5
5 files changed, 24 insertions, 17 deletions
diff --git a/include/task.h b/include/task.h
index eda2dcd..7077b00 100644
--- a/include/task.h
+++ b/include/task.h
@@ -22,4 +22,6 @@ void task_init(void (*init)(void));
*/
void task_start(void (*task)(void), uint16_t stackSize);
+void task_hold(uint8_t hold);
+
#endif // TASK_H_
diff --git a/initrd/init b/initrd/init
index c7ce93b..1837b27 100644
--- a/initrd/init
+++ b/initrd/init
@@ -8,15 +8,15 @@ line 50 160 430 160 fg
line 240 50 240 270 fg
set x 50
-#do
-# delay 10
-# line x 170 x 150 fg
-# set x (x + 20)
-#while (x < 430)
+do
+ line x 170 x 150 fg
+ set x (x + 20)
+while (x < 430)
-#set y 50
-#do
-# delay 10
-# line 230 y 250 y fg
-# set y (y + 20)
-#while (y < 270)
+set y 50
+do
+ line 230 y 250 y fg
+ set y (y + 20)
+while (y < 270)
+
+line 80 250 380 90 511
diff --git a/run.sh b/run.sh
index a031d27..88be7fa 100755
--- a/run.sh
+++ b/run.sh
@@ -1,7 +1,7 @@
#!/bin/bash
-#openocd -f /usr/share/openocd/scripts/board/st_nucleo_l476rg.cfg \
-# -c "init; reset halt; flash write_image erase main.hex; reset run; exit"
+openocd -f /usr/share/openocd/scripts/board/st_nucleo_l476rg.cfg \
+ -c "init; reset halt; flash write_image erase main.hex; reset run; exit"
-openocd -f /usr/share/openocd/scripts/board/st_nucleo_l476rg.cfg > /dev/null &
-gdb-multiarch
+#openocd -f /usr/share/openocd/scripts/board/st_nucleo_l476rg.cfg > /dev/null &
+#gdb-multiarch
diff --git a/src/display_draw.c b/src/display_draw.c
index 0d26e9a..be4becf 100644
--- a/src/display_draw.c
+++ b/src/display_draw.c
@@ -4,8 +4,8 @@
#include <clock.h>
volatile uint8_t lock = 0;
-#define LOCK while (lock) { delay(5); } lock = 1
-#define UNLOCK lock = 0
+#define LOCK while (lock) { delay(5); } task_hold(1); lock = 1
+#define UNLOCK task_hold(0); lock = 0
static unsigned int curx = 0;
static unsigned int cury = 0;
diff --git a/src/task.c b/src/task.c
index ee338de..b290e3c 100644
--- a/src/task.c
+++ b/src/task.c
@@ -16,6 +16,11 @@ static volatile int next_idx = 0;
static uint8_t task_enable = 0;
+void task_hold(uint8_t hold)
+{
+ task_enable = !hold;
+}
+
void task_init(void (*init)(void))
{
for (int i = 0; i < MAX_TASKS; i++)