Tänkte köra några DS18B20 sensorer till en PIC16F690.
Jag har allt körandes med en sensor. Jag vill dock kunna scanna av sensorer vid uppstart då jag tänkte köra flera på samma 1-wire buss.
Tidgare använde/använder jag MikroC's OneWire library med OW_Read, OW_Reset, OW_Write funktionerna och det fungerar hur bra som helst.
Dock för att göra en sökning (0xF0 kommandot mot bussen) så behöver jag göra bitoperationer för att matcha svaren.
Jag slängde ihop följande funktioner men jag får dem inte att fungera som de ska:
// port och pin använder jag inte för tillfället. Bussen sitter på PIC'ens RB6 port.
Kod: Markera allt
unsigned short read_bit(unsigned short *port, unsigned short pin)
{
unsigned short temp = 0;
TRISB.F6 = 0;
PORTB.F6 = 0;
Delay_us(5);
TRISB.F6 = 1;
Delay_us(9);
temp = PORTB.F6;
Delay_us(55);
return temp;
}
jag har även provat att ersätta mina tidigare Ow_Read calls med att läsa in bitarna med ovan men får samma problem. den ger mig bara 1.
Är det Delay_us som inte fungerar som den ska? Tankar och funderingar på vad som kan vara galet?
Mvh