//Programma di prova per pilotaggio di motori passo passo
//Andrea Cipriani Ago 2000
//a71cip@tiscali.it


# include <dos.h>
# include <conio.h>
# include <stdio.h>
# include <stepper.h>

//Main----------------------------------------
int main(void)
{
 # define MASK 0x01
 # define DATA 0x0378

 extern struct nibble_field *nibbley_field; //struttura definita in stepper.h, qui in realta'
 unsigned int j,n;                          //side finisce un puntatore a questo tipo di struttura. 


 clrscr();
 assign_nibble(nibbley_field,0,0,0,1);
 nibbley_field=turning_right(DATA,nibbley_field,1.8,10);
 delay(10);
 nibbley_field=turning_left(DATA,nibbley_field,1.8,10);
 delay(100);

 nibbley_field=turn_angle(DATA,nibbley_field,1.8,180,0,5);
 delay(10);
 nibbley_field=turn_angle(DATA,nibbley_field,1.8,180,1,5);
 delay(10);
 for (n=0; n<8; n++)
 {
  for (j=0; j<20; j++)
   {
    nibbley_field=open_and_back(DATA,nibbley_field,1.8,18,1,5,5);
    nibbley_field=open_and_back(DATA,nibbley_field,1.8,18,0,5,5);
   }
   delay(500);
   nibbley_field=turn_angle(DATA,nibbley_field,1.8,45,0,10);
   delay(500);

  for (j=0; j<20; j++)
   {
    nibbley_field=open_and_back(DATA,nibbley_field,1.8,18,1,5,5);
    nibbley_field=open_and_back(DATA,nibbley_field,1.8,18,0,5,5);
   }
  }

 nibbley_field = half_turning_left (DATA,nibbley_field,1.8,5);
 nibbley_field = half_turning_right(DATA,nibbley_field,1.8,5);

 nibbley_field = half_turn_angle (DATA,nibbley_field,1.8,45,1,5);
 delay(2000);
 nibbley_field = half_open_and_back(DATA,nibbley_field,1.8,45,1,100,5);

 assign_nibble(nibbley_field,0,0,0,1);
 nibbley_field=turn_angle(DATA,nibbley_field,1.8,90,1,5);
 delay(500);
 nibbley_field=turn_angle(DATA,nibbley_field,1.8,45,0,5);
 delay(500);
 nibbley_field=turn_angle(DATA,nibbley_field,1.8,135,1,5);
 delay(500);
 nibbley_field=turn_angle(DATA,nibbley_field,1.8,270,1,5);
 delay(500);

 unlock(DATA,nibbley_field);
return 0;
}

