int main(void) { init_sys_clocks(); init_dbg_rs232(FPBA_HZ); print_dbg("AVR UC3 DSP DEMO\r\n"); irq_initialize_vectors(); // GUI, Controller and DSP process init gui_init(FCPU_HZ, FHSB_HZ, FPBA_HZ, FPBB_HZ); gui_text_print(GUI_COMMENT_ID, TEXT_IDLE); gui_text_print(GUI_FILTER_ID, filter_active_get_description()); controller_init(FCPU_HZ, FHSB_HZ, FPBA_HZ, FPBB_HZ); twi_init(); dsp_process_init(FCPU_HZ, FHSB_HZ, FPBA_HZ, FPBB_HZ); cpu_irq_enable(); // Main loop while (1) { gui_task(); controller_task(); dsp_process_task(); state_machine_task(); } }
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); }
/*! \brief Main File Section: * - Initialization (CPU, Controller Task,... ) * - Main loop with task management (ADC, DAC, CAN and GUI) */ int main(void) { irq_initialize_vectors(); /* Initialize the board. * The board-specific conf_board.h file contains the configuration of * the board initialization. */ board_init(); /* Initialize the clocks. * The clock-specific conf_clocks.h file contains the configuration of * the clocks initialization. */ sysclk_init(); // Initialize the sleep manager sleepmgr_init(); sleepmgr_lock_mode(SLEEPMGR_IDLE); /* Initialize the required Task. * - Initialize the DAC task to start the signal generator, * - Initialize the ADC task to start the scope acquisition, * - Initialize the Noise Task to add digital noise to the signal, * - Initialize the Filter Task to remove the digital noise of the signal, * - Initialize the GUI Task to display signals as a scope on the LCD, * - Initialize the Remote Task to display signals as a scope on the LCD, */ dac_task_init(); adc_task_init(); noise_task_init(); filter_task_init(); gui_task_init(); controller_task_init(); remote_task_init(); cpu_irq_enable(); // Free running scheduler loop while (true) { // Enter Sleep Mode sleepmgr_enter_sleep(); // Call ADC task adc_task(); // Call DAC task dac_task(); // Call Noise task noise_task(); // Filter Task filter_task(); // Call Gui task for update gui_task(); // Call Controller Task for control Update controller_task(); // Send data to the PC Application remote_task(); } }