Is aber wirklich nicht schwer...
Nur mal die wichtigsten Teile
Code:
void w1_write_bit(char bit){
	if(bit){
		PORTT &= ~0x01;
		DDRT |= 0x01;
		delay_us(A);
		DDRT &= ~0x01;
		delay_us(B);
	}
	else{
		DDRT |= 0x01;
		delay_us(C);
		DDRT &= ~0x01;
		delay_us(D);
	}
}

BT_UBYTE w1_read_bit(void){
	BT_UBYTE result;
	
	PORTT &= ~0x01;
	DDRT |= 0x01;
	delay_us(A);
	DDRT &= ~0x01;
	delay_us(E);
	result = PORTT & 0x01;
	delay_us(F);

	return result;

}

void w1_reset(void){
	delay_us(G);
	PORTT &= ~0x01;
	DDRT |= 0x01;
	delay_us(H);
	DDRT &= ~0x01;
	delay_us(I+J);

}
Das sind eigentlich die 3 grundlegenden Sachen, mehr brauch man nicht. Die delays stehen HIER