#include #include #include #include #include "1wire.h" #include "lcd.h" uint8_t ROM1[2][8],pocet_cidel=0; int8_t cidla; int16_t teplota1,teplota2; char text[16]; char cele[16]; char desatine[16]; int p=0; boolean lolo = false; int main(void) { //inicializacia LCD InitLCD(LS_BLINK|LS_ULINE); /* hľadanie snímačov na zbernici*/ cidla = OWFirst(ROM1[0],1,0); // hľadanie prvneho snimaca if(cidla) pocet_cidel++; // ak bol najdeny tak počet snímačov + 1 cidla = OWNext(ROM1[pocet_cidel],1,0); // hľanie ďalších snímačov if(cidla) pocet_cidel++; // ak bol najdeny tak počet snímačov + 1 do { cidla = OWNext(ROM1[pocet_cidel],1,0); // hľanie ďalších snímačov if(cidla) // ak bol najdeny pocet_cidel++; // počet snímačov + 1 } while(cidla); // dokiaľ boli nájdené dalšie snímače _delay_ms(10); while(1){ teplota1=DS18B20_read_temp(ROM1[0]); // načítanie teploty1 zo senzora 0 _delay_ms(100); teplota2=DS18B20_read_temp(ROM1[1]); // načítanie teploty2 zo senzora 1 _delay_ms(100); //----Vypis zo Senzora 1---- itoa(teplota1/10,cele,10); // Prevedie Cele cisla na znaky itoa(teplota1%10,desatine,10); // Prevedie Desatine cisla na znaky LCDClear(); LCDGotoXY(0,0); // pozícia kurzora LCDWriteString("Senz1: "); LCDWriteString(cele); // vypis na disp v tvare XX.X°C LCDWriteString("."); LCDWriteString(desatine); LCDByte(0b11011111, 1); LCDWriteString("C"); //----Vypis zo Senzora 2---- itoa(teplota2/10,cele,10); // Prevedie Cele cisla na znaky itoa(teplota2%10,desatine,10); // Prevedie Desatine cisla na znaky LCDGotoXY(0,1); // vypis na disp v tvare XX.X°C LCDWriteString("Senz2: "); LCDWriteString(cele); LCDWriteString("."); LCDWriteString(desatine); LCDByte(0b11011111, 1); LCDWriteString("C"); LCDWriteStringXY(16,1,""); _delay_ms(1000); } }