Подскажите как опросить конкретный датчик температуры ds18b20 для которого известен 64 разрядный код в 16-м формате типа 0x28FE41C0015020801
Проект делается в CVAVR 2.12
Справку всю пересмотрел, но видимо чего то недопонимаю, в программировании совсем не силён.
Сейчас опрашиваю следующим образом.
Спойлер
#include <mega16a.h>#include <alcd.h>
#include <stdio.h>
#include <delay.h>
#include <1wire.h>
#include <ds18b20.h>
unsigned char ds18b20_devices;
unsigned char ds18b20_rom_codes[4][9];
char lcd_buf_0[33];
void main(void)
{
float temper_f0;
float temper_f1;
float temper_f2;
float temper_f3;
ds18b20_devices=w1_search(0xf0,ds18b20_rom_codes);
ds18b20_init( &ds18b20_rom_codes[0][0], -25, 110, DS18B20_10BIT_RES );
ds18b20_init( &ds18b20_rom_codes[1][0], -25, 110, DS18B20_10BIT_RES );
ds18b20_init( &ds18b20_rom_codes[2][0], -25, 110, DS18B20_10BIT_RES );
ds18b20_init( &ds18b20_rom_codes[3][0], -25, 110, DS18B20_10BIT_RES );
lcd_init(16);
lcd_clear();
while (1)
{
temper_f0=ds18b20_temperature(&ds18b20_rom_codes[0][0]);
temper_f1=ds18b20_temperature(&ds18b20_rom_codes[1][0]);
temper_f2=ds18b20_temperature(&ds18b20_rom_codes[2][0]);
temper_f3=ds18b20_temperature(&ds18b20_rom_codes[3][0]);
sprintf( lcd_buf_0,"%.0f\'C",temper_f0);
lcd_gotoxy(0,0);
lcd_puts( lcd_buf_0 );
sprintf( lcd_buf_0,"%.0f\'C",temper_f1);
lcd_gotoxy(7,0);
lcd_puts( lcd_buf_0 );
sprintf( lcd_buf_0,"%.1f\'C",temper_f2);
lcd_gotoxy(0,1);
lcd_puts( lcd_buf_0 );
sprintf( lcd_buf_0,"%.1f\'C",temper_f3);
lcd_gotoxy(7,1);
lcd_puts( lcd_buf_0 );
delay_ms(1000);
}
}