
/********************************************************************
// motor_xhruby00.h
//-------------------------------------------------------------------
// 
// Funkce pro praci s krokovym motorem
//
// Michal Hrubý 2011
// VUTBR
// xhruby00
//
********************************************************************/

#ifndef _MOTOR_XHRUBY00_H
#define _MOTOR_XHRUBY00_H

//-------------------------------------------------------------------
// KONSTANTY
//-------------------------------------------------------------------

#define MOTOR_DDR_ENABLE   	 DDRA 		// DDR kde jsou pripojeny ENABLE
#define MOTOR_PORT_ENABLE    PORTA 		// Port kde jsou pripojeny ENABLE

#define MOTOR_1_EN      0b00000001 		// ENABLE pin motoru 1
#define MOTOR_0_EN      0b00000010 		// ENABLE pin motoru 2


#define MOTOR_DDR_CONTROL    DDRC 		// Port kde jsou pripojeny ENABLE
#define MOTOR_PORT_CONTROL   PORTC 		// Port kde jsou pripojeny ENABLE

#define MOTOR_1_CLK      0b00000001 	// CLOCK pin motoru 1
#define MOTOR_0_CLK      0b00000010 	// CLOCK pin motoru 2

#define MOTOR_1_DIR      0b01000000 	// CW/CCW pin motoru 1
#define MOTOR_0_DIR      0b10000000 	// CW/CCW pin motoru 2

#define STEPS_360ANGLE      2800 		// Pocet kroku na jednu otocku (360stupnu)

#define MOTOR_HOME 			5200		// Pocet kroku od 0 do home pozice	
#define MOTOR_Y_MAX 		9200		// Horni hranice osy Y
#define MOTOR_Y_MIN 		0050		// Spodni hranice osy Y

#define ANGLES_TABLE_X     12 			// Pocet sloupecku TABULKY uhlu

//-------------------------------------------------------------------
// PROTOTYPY FUNKCI
//-------------------------------------------------------------------

void motor_init(void);
void motor_startup(void);

void motor_ena(char motor);
void motor_disa(char motor);
void motors_disa(void);

void motor_set_right(void);
void motor_set_left(void);
void motor_set_down(void);
void motor_set_up(void);


void step(char motor);
void delay_step(const int delay, const char motor);
void steps(int count, int delay, char motor);
void change_dir(char motor);

int get_motor_y_actual(void);
void set_motor_y_actual(int value_y);

void plus_motor_y_actual(int value_plus);
void minus_motor_y_actual(int value_plus);


#endif



