aboutsummaryrefslogtreecommitdiffstats
path: root/src/user/user.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/user/user.c')
-rw-r--r--src/user/user.c17
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);
}
}