добавлена реализация onewire через uart и переделана структуруа шины OneWire и инциализация
Теперь при выборе UART, в функцию Dallas_BusFirstInit передается hdallas, huart, ow, ds А при выборе GPIO ножки: hdallas, gpiox, gpio_pin, ow, ds но надо как-то структуруизировать дальше
This commit is contained in:
@@ -49,7 +49,7 @@ void OneWire_WriteBit(OneWire_t* OW, uint8_t bit)
|
||||
}
|
||||
__enable_irq();
|
||||
#else
|
||||
OneWireUART_ProcessBit(onewire_uart, bit);
|
||||
OneWireUART_ProcessBit(OW->huart, bit);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ uint8_t OneWire_ReadBit(OneWire_t* OW)
|
||||
OneWire_Delay_us(ONEWIRE_COMMAND_SLOT_US - ONEWIRE_READ_CMD_US - ONEWIRE_READ_DELAY_US);
|
||||
__enable_irq();
|
||||
#else
|
||||
bit = OneWireUART_ProcessBit(onewire_uart, 1);
|
||||
bit = OneWireUART_ProcessBit(OW->huart, 1);
|
||||
#endif
|
||||
/* Return bit value */
|
||||
return bit;
|
||||
@@ -107,7 +107,7 @@ void OneWire_WriteByte(OneWire_t* OW, uint8_t byte)
|
||||
byte >>= 1;
|
||||
}
|
||||
#else
|
||||
OneWireUART_ProcessByte(onewire_uart, byte);
|
||||
OneWireUART_ProcessByte(OW->huart, byte);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ uint8_t OneWire_ReadByte(OneWire_t* OW)
|
||||
byte |= (OneWire_ReadBit(OW) << 7);
|
||||
}
|
||||
#else
|
||||
byte = OneWireUART_ProcessByte(onewire_uart, 0xFF);
|
||||
byte = OneWireUART_ProcessByte(OW->huart, 0xFF);
|
||||
#endif
|
||||
|
||||
return byte;
|
||||
@@ -163,7 +163,7 @@ uint8_t OneWire_Reset(OneWire_t* OW)
|
||||
#else
|
||||
|
||||
uint8_t rslt = 0;
|
||||
if(OneWireUART_Reset(onewire_uart) == HAL_OK)
|
||||
if(OneWireUART_Reset(OW->huart) == HAL_OK)
|
||||
rslt = 0;
|
||||
else
|
||||
rslt = 1;
|
||||
@@ -314,6 +314,7 @@ void OneWire_GetDevRom(OneWire_t* OW, uint8_t *ROM)
|
||||
*/
|
||||
void OneWire_Init(OneWire_t* OW)
|
||||
{
|
||||
#ifndef UART_Driver
|
||||
OneWire_Pin_Mode(OW, Output);
|
||||
OneWire_Pin_Level(OW, 1);
|
||||
OneWire_Delay_us(1000);
|
||||
@@ -321,7 +322,7 @@ void OneWire_Init(OneWire_t* OW)
|
||||
OneWire_Delay_us(1000);
|
||||
OneWire_Pin_Level(OW, 1);
|
||||
OneWire_Delay_us(2000);
|
||||
|
||||
#endif
|
||||
/* Reset the search state */
|
||||
OW->LastDiscrepancy = 0;
|
||||
OW->LastDeviceFlag = 0;
|
||||
|
||||
Reference in New Issue
Block a user