Ср сен 21, 2022 12:39:30
uint8_t ds1621_get_status(void)
{
temp = 0x00;
i2c_start();
i2c_send_byte(DS1621_ADR_W);
i2c_send_byte(DS1621_ACCES_CONFIG);
i2c_restart();
i2c_send_byte(DS1621_ADR_R);
temp = i2c_read_byte(NACK);
i2c_stop();
return temp;
}
uint8_t getTemperatura(void)
{
i2c_start();
i2c_send_byte(DS1621_ADR_W);
i2c_send_byte(DS1621_START_CONVERT);
[b]while[/b](ds1621_get_status() != 0x51) ds1621_get_status();
temp = 0x00;
i2c_start();
i2c_send_byte(DS1621_ADR_W);
i2c_send_byte(DS1621_READ_TEMPR);
i2c_restart();
i2c_send_byte(DS1621_ADR_R);
temperatura = i2c_read_byte(NACK);
i2c_restart();
i2c_send_byte(DS1621_ADR_W);
i2c_send_byte(DS1621_STOP_CONVERT);
i2c_stop();
return temperatura;
}
Ср сен 21, 2022 13:02:32
Ср сен 21, 2022 13:10:18
Ср сен 21, 2022 13:13:07
Ср сен 21, 2022 14:05:34
Ср сен 21, 2022 14:08:49
if(ds1621_get_status() != 0x51)
ds1621_get_status();
else
temp = 0x00;
DONE = Conversion Done bit. "1" = Conversion complete, "0" = Conversion in progress.
uint8_t config_reg = 0;
while (!(config_reg & 0x80)) {
config_reg = ds1621_get_status();
}
T = getTemperatura();
Ср сен 21, 2022 14:19:22
uint8_t getTemperatura(void)
{
i2c_start();
i2c_send_byte(DS1621_ADR_W);
i2c_send_byte(DS1621_START_CONVERT);
while(!(temp & 0x80))
{
ds1621_get_status();
}
temp = 0x00;
i2c_start();
i2c_send_byte(DS1621_ADR_W);
i2c_send_byte(DS1621_READ_TEMPR);
i2c_restart();
i2c_send_byte(DS1621_ADR_R);
temperatura = i2c_read_byte(NACK);
i2c_restart();
i2c_send_byte(DS1621_ADR_W);
i2c_send_byte(DS1621_STOP_CONVERT);
i2c_stop();
return temperatura;
}
Ср сен 21, 2022 14:22:44
Ср сен 21, 2022 15:13:03