]> code.bitgloo.com Git - clyne/calculator.git/commitdiff
task pausing
authorClyne Sullivan <tullivan99@gmail.com>
Wed, 21 Feb 2018 14:13:53 +0000 (09:13 -0500)
committerClyne Sullivan <tullivan99@gmail.com>
Wed, 21 Feb 2018 14:13:53 +0000 (09:13 -0500)
include/task.h
initrd/init
run.sh
src/display_draw.c
src/task.c

index eda2dcdb743db590ef86587c5091fb211184dc4c..7077b00da79a2c5140314dc0ed7a163a16081fa4 100644 (file)
@@ -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_
index c7ce93baf2ba95a78b549cb83928fe7c9ad04b10..1837b27d3f7223eef9091b43a2f2c51ecb469c4c 100644 (file)
@@ -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 a031d279472d0f03baad2f99c939c9b773c65652..88be7faa7c059702947534789bec2982cd0e1cc4 100755 (executable)
--- 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 
index 0d26e9a45463dc5b3aca0a3713e81a75025cb56a..be4becfc012d33a1959456bd75e25561594e9431 100644 (file)
@@ -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;
index ee338de11694f4be46b36675e1931eb730acec89..b290e3c2a8171938dc03f4a007b8cd3bfdb16237 100644 (file)
@@ -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++)