// RoBoard V 1.0 Configuration File

#define LED1		(1<<4) // PB4
#define LED2		(1<<4) // PC4
#define LED3		(1<<5) // PC5
#define LED1_DDR	DDRB
#define LED2_DDR	DDRC
#define LED3_DDR	DDRC
#define LED1_PORT	PORTB
#define LED2_PORT	PORTC
#define LED3_PORT	PORTC

#define led1_on		LED1_PORT |= LED1
#define led2_on		LED2_PORT |= LED2
#define led3_on		LED3_PORT |= LED3
#define led1_off	LED1_PORT &= ~LED1
#define led2_off	LED2_PORT &= ~LED2
#define led3_off	LED3_PORT &= ~LED3
#define led1_toggle	LED1_PORT ^= LED1
#define led2_toggle	LED2_PORT ^= LED2
#define led3_toggle	LED3_PORT ^= LED3

#define DIR_LEFT	(1<<3) // PC3
#define DIR_RIGHT	(1<<2) // PC2
#define DIR_LEFT_DDR	DDRC
#define DIR_RIGHT_DDR	DDRC
#define DIR_LEFT_PORT	PORTC
#define DIR_RIGHT_PORT	PORTC

#define dir_left_forward	DIR_LEFT_PORT |= DIR_LEFT
#define dir_right_forward	DIR_RIGHT_PORT |= DIR_RIGHT
#define dir_left_reverse	DIR_LEFT_PORT &= ~DIR_LEFT
#define dir_right_reverse	DIR_RIGHT_PORT &= ~DIR_RIGHT

void init_ports(void)
{
	PORTA = 0;
	DDRA = 0;

	PORTB = 255;
	DDRB = 0;

	PORTC = 255;
	DDRC = 3; // I2C

	PORTD = 255;
	DDRD = (1<<4)|(1<<5);

	LED1_DDR |= LED1;
	LED2_DDR |= LED2;
	LED3_DDR |= LED3;

	DIR_LEFT_DDR |= DIR_LEFT;
	DIR_RIGHT_DDR |= DIR_RIGHT;
}
