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
Lesezeichen