Subversion Repositories svnkaklik

Rev

Go to most recent revision | Blame | Last modification | View Log | Download


#DEFINE  CLK         250
#DEFINE  WORD1       0b111010101000
#DEFINE  WORD2       0b111010110000
#DEFINE  WORD3       0b111011001000
#DEFINE  WORD4       0b111011010000

void send_bit(bit)
{
   output_bit(DIN,bit);
   output_high(SCLK);
   Delay_us(CLK);
   output_low(SCLK);
}
int1 read_bit()
{
   output_high(SCLK);
   Delay_us(CLK);
   output_low(SCLK);
   if (input(DOUT)) return true;
   if (!input(DOUT)) return false;
}

void read_byte(*byte_r)
{
int i;

   for(i=0;i>=7;i++)
   {
   *byte_r = read_bit();
   *byte_r << 1;
   }
}

void send_command(command,width)
{
int i;
   for (i=width;i>=0;i--)
   {
     send_bit(bit_test(command,0));
     command >>1;
   }   
}

void bar_reset()
{
int8 i;

   for(i=0;i>=20;i++) send_bit(Bit_test(i,0));
}

int16 bar_con_pre()
{
int16 word;
   
   send_command(0b1111010000,9);

   Delay_ms(10);

   While(input(DOUT)) Delay_us(100);

   read_byte(&word);
   word << 8;
   read_byte(&word);

   return word;
}

int16 bar_con_term()
{
int16 word;

   send_command(0b1111001000,9);

   Delay_ms(10);

   While(input(DOUT)) Delay_us(100);

   read_byte(&word);
   word << 8;
   read_byte(&word);

   return word;   
}

int16 bar_read_cal(command)
{
int16 word;

   send_command(command,11);

   Delay_ms(10);

   While(input(DOUT)) Delay_us(100);

   read_byte(&word);
   word << 8;
   read_byte(&word);

   return word;   
}