Ejemplo n.º 1
0
Archivo: demo.c Proyecto: kerichsen/asf
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();
  }
}
Ejemplo n.º 2
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);
}
Ejemplo n.º 3
0
Archivo: main.c Proyecto: Mazetti/asf
/*! \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();
	}
}