Mam problem
Mam zestaw z mikrokontroler F103R8T6
Napisałem bibliotekę do odbioru temperatury z czujnika DS18B20 przy taktowaniu 64MHz wszystko działa poprawnie:
Widok z programu STM32Cube:
Widok z analizatora stanów logicznych:
Przy taktowaniu 8MHz otrzymuję same zera czyli temperaturę: 4095.938
Widok z programu STM32Cube:
Widok z analizatora stanów logicznych:
Funkcja odbierająca dane wygląda tak w programie z taktowaniem 64MHz
Kod: Zaznacz cały
uint8_t One_Wire_Read_Bit(void)
{
uint8_t Bit = 0;
ONE_WIRE_OUTPUT();
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_RESET);
Delay_us(1);
ONE_WIRE_INPUT();
Delay_us(1);
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_10) == GPIO_PIN_SET)
{
Bit = 1;
}
else
{
Bit = 0;
}
Delay_us(35);
return Bit;
}
Czy może mi ktoś podpowiedzieć w jaki sposób dopasować czasy dla 8MHz ?