Решил поюзать сей девайсы но в итоге на дисплее получаю -999 градусов. Компилятор CodeVisionAvr 2
Код:
//#define F_CPU 8000000
#include <mega16.h>
#include <ds1820.h>
#include <1wire.h>
#asm
.equ __w1_port=0x18;PORTB
.equ __w1_bit=0
#endasm
#include <stdio.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x1b;PORTA
#endasm
#include <delay.h>
char lcd_buffer[33];
void main(void){
char sign;
int temp;
lcd_init(16);
w1_init();
while(1){
temp=ds1820_temperature_10(0);
sign='+'; //читаем температуру
if (temp>1000){ //если датчик выдаёт больше 1000
temp=4096-temp; //отнимаем от данных 4096
temp=-temp; //и ставим знак "минус"
}
sprintf(lcd_buffer,"t=%i",temp/10,temp%10); //записываем масив для экрана температуру
lcd_clear(); //чистим дисплей перед выводом
lcd_puts(lcd_buffer); //выводим масив на LCD
delay_ms(500); //ждём 500мс
};
}
Не могу ни как разобраться как получить данные с ds1820