
#include <avr/io.h>
#define F_CPU 16000000		// definice frekvence krystalu
#include <avr/interrupt.h>	// knihovna pro přerušení
#include <util/delay.h>		// knihovna pro časování
#define LCD
#include "mojelib1.h"	 		//knihovna pro LCD
#include "sht75.h"


	int T;
	int RH;
	double RHlinear = 0.0;
	double RHtrue   = 0.0;
	double Temp    = 0.0;
	char buffer1[16];
	char buffer2[16];

int main(void)
{

    DDRB = 0xff;						// portB výstupní
    DDRC = 0xff;						// portC výstupní
    PORTC = 0b11000010;					// povolení LCD displeje
    init_lcd();			                //inicializace LCD
    _delay_ms(10);

    cls();				                // smazání LCD displeje
    _delay_ms(10);

    while (1)
    {
        ShtInit(1);
        ShtReset(1);

		T   = ShtMeasure(SHT_TEMPERATURE, 1);//zmeri teplotu
		Temp     = ((double) T)*0.01 - 40.0;//vypocte teplotu


		RH  = ShtMeasure(SHT_HUMIDITY, 1);//zmeri vlhkost
		RHlinear = -2.0468 + 0.0367 * ((double) RH) - 0.0000015955 * ((double) RH * (double) RH);
		RHtrue   = (Temp - 25) * (0.01 + 0.00008 * (double) RH) + RHlinear;//vypocte vlhkost

	//	sprintf(buffer, "%7.2",Temp);


   dtostrf(Temp, 3, 2, buffer1);//prevod float na string
   dtostrf(RHtrue, 3, 2, buffer2);

	// výpis na LCD displej teplota
	line_1();
	lcd_text("Teplota:");
	gotoxy(1,10);
	//lcd_byt(Temp);
	lcd_puts(buffer1);
	gotoxy(1,16);
	lcd_text("C");



	//výpis vlhkost
	line_2();
	lcd_text("Vlhkost:");
	gotoxy(2,10);
	lcd_puts(buffer2);
	//lcd_byt(RHtrue);
	gotoxy(2,16);
	lcd_text("%");



	}



}



