示例#1
0
void do_tasks(TaskManager* task_manager) {
	TaskId done = task_manager->begin_add_empty();

	TaskId animation = task_manager->add(animation_task());
	TaskId gui = task_manager->add(gui_task());
	TaskId sound = task_manager->add(sound_update_task());

	task_manager->add_child(done, sound);

	/*gui_scene*/ {
		TaskId gui_scene = task_manager->begin_add_empty();

		/*scene_graph*/ {
			TaskId scene_graph = task_manager->add(scene_graph_task(), animation);

			task_manager->add_child(gui_scene, scene_graph);
		} /*scene_graph*/

		task_manager->add_child(gui_scene, gui);

		task_manager->finish_add(gui_scene);

		/*render*/ {
			TaskId render = task_manager->add(render_task(), gui_scene);

			task_manager->add_child(done, render);
		} /*render*/

	} /*gui_scene*/

	task_manager->finish_add(done);

	task_manager->wait(done);
}
示例#2
0
int main(void)
{
	LEDS_init();
	LEDon(LED_BLUE);
	ws2811_init();
	clearAllLED();

	//xTaskCreate(animation_task, (signed char*)"animation", 16, 0, 1, 0);
	//vTaskStartScheduler();
	animation_task((void *) 0);
    return -1;
}