Rev 410 | Blame | Compare with Previous | 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;
}