Dallas 1-Wire® devices are unique in that only one wire in addition to ground is needed to communicate with a device. Power supply and communications are handled through only one connection. To communicate with a Dallas 1-Wire device, only one general purpose I/O pin is needed.
Code Beispiel
Timing ist noch nicht getestet.
#define BUS_PORT PORTD
#define BUS_PIN PD0
/* Send one Byte */
bus_write(unsigned char data) {
int mask = 0x80;
do {
if (mask&data) {
// "1"
BUS_PORT = 0x00;
_delay_us(15);
BUS_PORT = 0xff;
_delay_us(45);
} else {
// "0"
BUS_PORT = 0x00;
_delay_us(60);
BUS_PORT = 0xff;
}
mask >>= 1;
} while (mask);
}
/* Read one Byte */
bus_read() {
int i;
for (i=0;i<8;i++) {
BUS_PORT &= ~(1<<BUS_PIN);
_delay_us(15);
BUS_PORT |= (1<<BUS_PIN);
DDRD &=
if ()
}
}
Links
http://www.atmel.com/dyn/resources/prod\_documents/doc2579.pdf
https://prof.hti.bfh.ch/uploads/media/Studienarbeit_1-Wire.pdf