You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.2 KiB

/** @file task2.c
@author M.P. Hayes
@date 5 Oct 2010
*/
#include "system.h"
#include "led.h"
#include "task.h"
#include "tinygl.h"
#include "../fonts/font5x7_1.h"
/* Define polling rate in Hz. */
#define LED_TASK_RATE 2
#define DISPLAY_TASK_RATE 400
/* Define text update rate (characters per 10 s). */
#define MESSAGE_RATE 10
static void led_flash_task_init (void)
{
led_init ();
}
static void led_flash_task (__unused__ void *data)
{
static uint8_t state = 0;
led_set (LED1, state);
state = !state;
}
static void display_task_init (void)
{
tinygl_init (DISPLAY_TASK_RATE);
tinygl_font_set (&font5x7_1);
tinygl_text_speed_set (MESSAGE_RATE);
tinygl_text_mode_set (TINYGL_TEXT_MODE_SCROLL_LEFT);
tinygl_text ("HELLO WORLD ");
}
static void display_task (__unused__ void *data)
{
tinygl_update ();
}
int main (void)
{
task_t tasks[] =
{
{.func = display_task, .period = TASK_RATE / DISPLAY_TASK_RATE, .data = 0},
{.func = led_flash_task, .period = TASK_RATE / LED_TASK_RATE, .data = 0},
};
system_init ();
led_flash_task_init ();
display_task_init ();
task_schedule (tasks, 2);
return 0;
}