#include <system.h>
#include "3wireroutines.h"
void init_3w()
{
clear_bit(data_tris, data_pin);
clear_bit(rst_tris, rst_pin);
clear_bit(clk_tris, clk_pin);
clear_bit(data_port, data_pin);
clear_bit(rst_port, rst_pin);
clear_bit(clk_port, clk_pin);
}
void reset_3w()
{
clear_bit(clk_port, clk_pin);
clear_bit(rst_port, rst_pin);
set_bit(rst_port, rst_pin);
}
/* ----------------------------------------------------------------------- */
void wbyte_3w(unsigned char W_Byte)
{
unsigned char i;
clear_bit(data_tris, data_pin);
for(i = 0; i < 8; ++i)
{
clear_bit(data_port, data_pin);
if(W_Byte & 0x01)
{
set_bit(data_port, data_pin);
}
clear_bit(clk_port, clk_pin);
set_bit(clk_port, clk_pin);
W_Byte = (W_Byte>>1);
}
}
/* ----------------------------------------------------------------------- */
unsigned char rbyte_3w()
{
unsigned char i,R_Byte;
set_bit(data_tris, data_pin);
R_Byte = 0x00;
set_bit(data_port, data_pin);
for(i=0; i<8; ++i)
{
set_bit(clk_port, clk_pin);
clear_bit(clk_port, clk_pin);
R_Byte >>= 1;
R_Byte = R_Byte | ((data_port >> data_pin) << 7);
}
return R_Byte;
}
Copyright © 2002-2006 SourceBoost Technologies