Estoy leyendo el archivo de cabecera 1_wire para PIC18 con compilador C18. en la función write_byte, especificaron eso para escribir bit1; Hacemos entrada de línea y eso lo llevará alto. ¿podemos especificar un valor de salida alto o bajo en el puerto TRIS que especifica la dirección de E / S?
#define OW_LAT LATCbits.LATC1
#define OW_PIN PORTCbits.RC1
#define OW_TRIS TRISCbits.TRISC1
void ow_write_byte(unsigned char data)
{
char i;
for (i=0;i<8;i++)
{
// DQ Low
OW_LAT=0;
OW_TRIS=OUTPUT;
// Keep it low for 10us to start the WRITE
Delay10TCYx(10);
// Keep low i.e. keep output mode and low if WRITE0 (bit 0)
// or release line i.e. make input to take it high if WRITE1 (bit1)
OW_TRIS = data & 0x01;
Delay10TCYx(50);
// Release the line. Total of 60us
OW_TRIS=INPUT;
// Some recovery time between the bits 2us
Delay10TCYx(2);
data =data >>1;
}
}