diff options
author | tcsullivan <tullivan99@gmail.com> | 2018-10-10 23:31:10 -0400 |
---|---|---|
committer | tcsullivan <tullivan99@gmail.com> | 2018-10-10 23:31:10 -0400 |
commit | 34684b28a463404717a86f25ee381bfdaefbace4 (patch) | |
tree | 56c2d899ed3740312ac408e12a6f2e1bbb875adf /src/user | |
parent | c66410f6319284b94e21758539ac25bfb4694d3a (diff) |
unpriviledged sleep wip
Diffstat (limited to 'src/user')
-rw-r--r-- | src/user/user.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/user/user.c b/src/user/user.c index fc51d29..0bb2607 100644 --- a/src/user/user.c +++ b/src/user/user.c @@ -5,7 +5,16 @@ void task1(void); void task2(void); +void user_delay(uint32_t ms) +{ + register uint32_t r1 asm("r1") = ms; + asm("\ + mov r0, 0; \ + mov r1, %0; \ + svc 2; \ + " :: "r" (r1)); +} void user_main(void) { @@ -14,22 +23,22 @@ void user_main(void) for (int i = 0; i < 8; i++) { gpio(GPIO_OUT, 5, !(i & 1)); - delay(200); + user_delay(200); } } void task1(void) { - delay(400); + user_delay(400); task_start(task2, 1024); } void task2(void) { int state = 0; - delay(2500); + user_delay(2500); while (1) { gpio(GPIO_OUT, 5, state ^= 1); - delay(500); + user_delay(500); } } |