X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=examples%2Flm3s1968%2Flm3s1968.c;h=edf7211071c1951f4e4d385c7ae91d5f357b4193;hb=0638e6c0ca69a05d5d023186abebe63645210b1b;hp=6316ad18373e09b0c9c1e795c35538b945f2c255;hpb=2053503385a67e1f7f13ec45b85ac02378b9b0bb;p=bertos.git diff --git a/examples/lm3s1968/lm3s1968.c b/examples/lm3s1968/lm3s1968.c index 6316ad18..edf72110 100644 --- a/examples/lm3s1968/lm3s1968.c +++ b/examples/lm3s1968/lm3s1968.c @@ -36,15 +36,11 @@ */ #include +#include #include "io/lm3s.h" -#include "drv/timer.h" -extern unsigned long ticks; - -int main(void) +static void led_init(void) { - timer_hw_init(); - /* Enable the GPIO port that is used for the on-board LED */ SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOG; /* @@ -55,14 +51,46 @@ int main(void) /* Enable the GPIO pin for the LED */ GPIO_PORTG_DIR_R = 0x04; GPIO_PORTG_DEN_R = 0x04; +} + +static void led_on(void) +{ + GPIO_PORTG_DATA_R |= 0x04; +} + +static void led_off(void) +{ + GPIO_PORTG_DATA_R &= ~0x04; +} + +static NORETURN void spinner_thread(void) +{ + char spinner[] = {'/', '-', '\\', '|'}; + int i; + + kputs("\n"); + for(i = 0; ; i++) + { + kprintf("BeRTOS is up & running: %c\r", + spinner[i % countof(spinner)]); + timer_delay(100); + } +} + +int main(void) +{ + IRQ_ENABLE; + led_init(); + + proc_testSetup(); + proc_testRun(); + proc_new(spinner_thread, NULL, KERN_MINSTACKSIZE, NULL); while(1) { - /* Turn on the LED */ - if ((ticks & 0x04) == 0x04) - GPIO_PORTG_DATA_R |= 0x04; - /* Turn off the LED */ - else if ((ticks & 0x04) == 0) - GPIO_PORTG_DATA_R &= ~0x04; + led_on(); + timer_delay(250); + led_off(); + timer_delay(250); } }