/**
 * \file
 *
 * \brief Empty user application template
 *
 */

/**
 * \mainpage User Application template doxygen documentation
 *
 * \par Empty user application template
 *
 * This is a bare minimum user application template.
 *
 * For documentation of the board, go \ref group_common_boards "here" for a link
 * to the board-specific documentation.
 *
 * \par Content
 *
 * -# Include the ASF header files (through asf.h)
 * -# Minimal main function that starts with a call to system_init()
 * -# Basic usage of on-board LED and button
 * -# "Insert application code here" comment
 *
 */

/*
 * Include header files for all drivers that have been imported from
 * Atmel Software Framework (ASF).
 */
/*
 * Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a>
 */
#include <asf.h>
#include "p_usart.h"
#include "p_io.h"
#include "p_adc.h"

#include "motor.h"
int main (void)
{
	system_init();
	delay_init();
	
	system_interrupt_enable_global();
	
	p_usart_init();
	p_adc_init();
	p_io_init();
	motor_init();
	
	for(;;)
	{
		if(p_button_pressed())
		{
			switch(p_button_state())
			{
				case P_BTN_STATE_STOP:
				{
					motor_update_state(MS_STOP);
				}break;
				case P_BTN_STATE_FWD:
				{
					motor_update_state(MS_FORWARD);
				}break;
				case P_BTN_STATE_REV:
				{
					motor_update_state(MS_REVERSE);
				}break;
			}
			
		}
		motor_run();
		delay_ms(10);
	}
}
