#define ONE_WIRE_PIN PIN_A1void onewire_reset(){output_low(ONE_WIRE_PIN);delay_us(500);output_float(ONE_WIRE_PIN);delay_us(500);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( 60 );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( 120 );}return( data );}