59 lines
		
	
	
		
			987 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			987 B
		
	
	
	
		
			C
		
	
	
	
	
	
//
 | 
						|
// Created by 5ANK41 on 2024/11/28.
 | 
						|
 | 
						|
#include "onewire.h"
 | 
						|
 | 
						|
uchar OneWire_init(void) {
 | 
						|
    uchar i;
 | 
						|
    ONE_WIRE_P = 1;
 | 
						|
    ONE_WIRE_P = 0;
 | 
						|
    i = 247;
 | 
						|
    while (--i);
 | 
						|
    ONE_WIRE_P = 1;
 | 
						|
    i = 32;
 | 
						|
    while (--i);
 | 
						|
    uchar ack = ONE_WIRE_P;
 | 
						|
    i = 247;
 | 
						|
    while (--i);
 | 
						|
    return ack;
 | 
						|
}
 | 
						|
 | 
						|
void OneWire_writeBit(uchar _bit) {
 | 
						|
    uchar i;
 | 
						|
    ONE_WIRE_P = 0;
 | 
						|
    i = 4;
 | 
						|
    while (--i);
 | 
						|
    ONE_WIRE_P = _bit;
 | 
						|
    i = 24;
 | 
						|
    while (--i);
 | 
						|
    ONE_WIRE_P = 1;
 | 
						|
}
 | 
						|
 | 
						|
void OneWire_writeByte(uchar _byte) {
 | 
						|
    for (uchar i = 0; i < 8; i++) {
 | 
						|
        OneWire_writeBit(_byte & 0x01 << i);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
uchar OneWire_readBit(void) {
 | 
						|
    uchar i, _bit;
 | 
						|
    ONE_WIRE_P = 0;
 | 
						|
    i = 2;
 | 
						|
    while (--i);
 | 
						|
    ONE_WIRE_P = 1;
 | 
						|
    i = 2;
 | 
						|
    while (--i);
 | 
						|
    _bit = ONE_WIRE_P;
 | 
						|
    i = 24;
 | 
						|
    while (--i);
 | 
						|
    return _bit;
 | 
						|
}
 | 
						|
 | 
						|
uchar OneWire_readByte(void) {
 | 
						|
    uchar _byte = 0x00;
 | 
						|
    for (uchar i = 0; i < 8; i++) {
 | 
						|
        if (OneWire_readBit()) { _byte |= 0x01 << i; }
 | 
						|
    }
 | 
						|
    return _byte;
 | 
						|
}
 |