Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 658 → Rev 659

/programy/C/PIC/mereni/teplomer/1wire.c
0,0 → 1,43
#define ONE_WIRE_PIN PIN_A3 // pro pristup k cidlu jsem zvolil
 
void onewire_reset()
{
output_low(ONE_WIRE_PIN);
delay_us(240);
output_float(ONE_WIRE_PIN);
delay_us(150);
output_float(ONE_WIRE_PIN);
}
 
void onewire_write(int data)
{
int count;
 
for (count=0; count<8; ++count)
{
output_low(ONE_WIRE_PIN);
delay_us( 2 );
output_bit(ONE_WIRE_PIN, shift_right(&data,1,1));
 
delay_us( 40 );
output_float(ONE_WIRE_PIN);
delay_us( 2 );
}
}
 
int onewire_read()
{
int count, data;
 
for (count=0; count<8; ++count)
{
output_low(ONE_WIRE_PIN);
delay_us( 2 );
output_float(ONE_WIRE_PIN);
delay_us( 8 );
shift_right(&data,1,input(ONE_WIRE_PIN));
delay_us(5);
}
 
return( data );
}