aboutsummaryrefslogtreecommitdiff
path: root/usr/main.c
diff options
context:
space:
mode:
authorChristian Cunningham <cc@localhost>2022-03-24 22:55:13 -0700
committerChristian Cunningham <cc@localhost>2022-03-24 22:55:13 -0700
commit75ca654c2a3a4cce24459a381311c259ce7ce8a3 (patch)
tree2549dd19a9bd1484f8ca48246d4bf4b40b937f42 /usr/main.c
parentc5b6f1611ea1f4685ef02f65fc0362f9c22c344f (diff)
GPIO Interrupts
Diffstat (limited to 'usr/main.c')
-rw-r--r--usr/main.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/usr/main.c b/usr/main.c
index 0cc25d8..955b328 100644
--- a/usr/main.c
+++ b/usr/main.c
@@ -1,4 +1,3 @@
-#include <cpu.h>
#include <globals.h>
#include <graphics/lfb.h>
#include <symbols.h>
@@ -35,23 +34,19 @@ static struct UartInfo UART_INFO = {
.priority = 2,
};
-static unsigned long simulated = 0;
-
-void producer(void)
-{
- draw_string(0, 15, "Producing...");
- sys1(SYS_SEMAPHORE_V, &simulated);
- draw_string(0, 15, "Produced! ");
-}
+static struct GPIOInfo gpinfo = {
+ .pin = (1<<16),
+ .priority = 0,
+};
-void consumer(void)
+void gptest(void)
{
- add_thread(producer, 0, 4);
- while (1) {
- draw_string(0, 16, "Consuming...");
- sys1(SYS_SEMAPHORE_P, &simulated);
- draw_string(0, 16, "Consumed! ");
- }
+ static unsigned long count = 0;
+ unsigned long gplev0 = *GPLEV0;
+ static char str[14];
+ draw_hex32(0, 30, gplev0);
+ char* start = ulong_to_string(count++, str);
+ draw_string(0, 31, start);
}
void main(void)
@@ -61,6 +56,7 @@ void main(void)
subscribe_irq(SYS_TIMER_1_IRQ, loopt, &stime_1);
subscribe_irq(SYS_TIMER_2_IRQ, loopt, &stime_2);
subscribe_irq(SYS_TIMER_3_IRQ, loopt, &stime_3);
+ subscribe_irq(GPIO_BANK_1_IRQ, gptest, &gpinfo);
add_thread(loop, 0, 8);
add_thread(consumer, 0, 3);
}