diff --git a/SW/CMakeLists.txt b/SW/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..081153cbe56489092cc11255139536d708b14836
--- /dev/null
+++ b/SW/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 3.0)
+
+set(AVR_UPLOADTOOL avrdude)
+set(AVR_PROGRAMMER usbasp)
+set(AVR_UPLOADTOOL_PORT usb)
+set(AVR_MCU atmega8)
+set(AVR_H_FUSE 0xD9)
+set(AVR_L_FUSE 0x04)
+set(CMAKE_BUILD_TYPE Release)
+set(MCU_SPEED "8000000UL")
+set(WITH_MCU OFF)
+set(WITH_MCU OFF CACHE BOOL "Add the mCU type to the target file name." FORCE)
+
+find_package(avr)
+
+project(digitalni-teplomer)
+
+add_definitions("-DF_CPU=${MCU_SPEED}")
+
+add_definitions("-fpack-struct")
+add_definitions("-fshort-enums")
+add_definitions("-Wall")
+add_definitions("-funsigned-char")
+add_definitions("-funsigned-bitfields")
+add_definitions("-ffunction-sections")
+add_definitions("-fdata-sections")
+add_definitions("-fno-exceptions")
+add_definitions("-mcall-prologues")
+add_definitions("-mrelax")
+add_definitions("-c")
+add_definitions("-std=c11")
+
+set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wl,--gc-sections -Wl,--relax -Os -mrelax")
+set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-Wl,--gc-sections -Wl,--relax -Os -mrelax")
+
+set(SOURCE_FILES
+        digitalni_teplomer.c
+        ds18b20_1.c
+        ds18b20_1.h
+        macros.h
+        config.h
+)
+
+add_avr_executable(digitalni-teplomer ${SOURCE_FILES})
diff --git a/SW/config.h b/SW/config.h
new file mode 100644
index 0000000000000000000000000000000000000000..c0dc689c0139cc84623a51e89bec2f8eac9dac11
--- /dev/null
+++ b/SW/config.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include <avr/io.h>
+
+//definice pinĹŻ pro ÄŤidlo DS18B20
+#define OW_PORT       PORTB
+#define OW_DDR        DDRB
+#define OW_PIN        PINB
+#define OW_BIT        PB2
\ No newline at end of file
diff --git a/SW/digitalni_teplomer.c b/SW/digitalni_teplomer.c
new file mode 100644
index 0000000000000000000000000000000000000000..bb9a25d652a3b0bd9df19a270d5ac304e5203279
--- /dev/null
+++ b/SW/digitalni_teplomer.c
@@ -0,0 +1,113 @@
+//#define F_CPU    8000000        //8MHz -> definováno v CMakeLists.txt
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+#include "ds18b20_1.h"
+#include "macros.h"
+
+//Definice pozic segmentĹŻ na pinech portu
+#define _s_A   PD2
+#define _s_B   PD0
+#define _s_C   PD6
+#define _s_D   PD4
+#define _s_E   PD3
+#define _s_F   PD1
+#define _s_G   PD7
+#define _s_dot PD5
+
+const unsigned char segs[] = //Definice číslic na 7segmentové displeji
+{
+    _BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F),              //0
+    _BV(_s_B) | _BV(_s_C),                                                              //1
+    _BV(_s_A) | _BV(_s_B) | _BV(_s_D) | _BV(_s_E) | _BV(_s_G),                          //2
+    _BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_D) | _BV(_s_G),                          //3
+    _BV(_s_B) | _BV(_s_C) | _BV(_s_F) | _BV(_s_G),                                      //4
+    _BV(_s_A) | _BV(_s_C) | _BV(_s_D) | _BV(_s_F) | _BV(_s_G),                          //5
+    _BV(_s_A) | _BV(_s_C) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F) | _BV(_s_G),              //6
+    _BV(_s_A) | _BV(_s_B) | _BV(_s_C),                                                  //7
+    _BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F) | _BV(_s_G),  //8
+    _BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_F) | _BV(_s_G),                          //9
+    _BV(_s_G)                                                                           //mĂ­nus
+};
+
+const unsigned char err[] = //Chyba
+{
+    0,                                                          //mezera
+    _BV(_s_A) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F) | _BV(_s_G),  //E
+    _BV(_s_E) | _BV(_s_G),                                      //r
+    _BV(_s_E) | _BV(_s_G)                                       //r
+};
+
+volatile int temp; //Proměnná pro teplotu
+
+//V tomto přerušení se zobrazuje na despleji
+ISR(TIMER1_COMPA_vect)
+{
+    static int temp_1=0;
+    static unsigned char disp=0;
+    unsigned char dec;
+
+
+    disp++;
+    if(disp>3) disp=0;          //cyklicky 0 - 4 (sedmisegmentovka)
+
+    PORTD=0xff;                 //vypnout segmenty
+    PORTC=0b00100000>>disp;     //přepnout na danou sedmisegmentovku
+
+    if (temp==0x5fff)    //pokud je chyba ÄŤidla
+    {
+        PORTD=(~err[disp]);    //vypsání znaku chyby
+    }
+
+    else //pokud nenĂ­ chyba ÄŤidla
+    {
+        switch(disp)
+        {
+            case 0://1.cifra - znam�nko
+                    if (temp>>15) //pokud je nejvyšší bit 1 (záporné číslo)
+                    {
+                        temp_1=temp*(-1);    //převedení záporné teploty na kladnou
+                        PORTD=(~segs[10]);    //zobrazenĂ­ mĂ­nus
+                    }
+                    else temp_1=temp/16;        //převedení kladné teploty
+                break;
+
+            case 1://2.cifra - desĂ­tky
+                    dec = temp_1 / 10;
+
+                    if(dec>0) PORTD=(~segs[dec]);//zobrazit desĂ­tky
+                break;
+
+            case 2://3.cifra - jednotky
+                    PORTD=(~segs[temp_1 % 10]) & ~_BV(_s_dot); //zobrazit jednotky a desetinnou teÄŤku
+                break;
+
+            case 3://4.cifra - desetiny
+                    PORTD = (~segs[((temp % 16)*625)/1000]); //zobrazit desetiny
+                break;
+        }//switch(disp)
+    }//else (temp==0x5fff)
+}//ISR(TIMER1_COMPA_vect)
+
+
+int main(void)
+{
+    DDRD = 0xFF;        //výstupy - segmenty
+    DDRC = 0x3F;        //výstupy - displeje
+
+    setb(TCCR1B,0);
+    setb(TCCR1B,1);     //start čítače 1 s předděličkou 64
+    setb(TCCR1B,3);     //CTC mode
+
+    OCR1AH=0x01;        //porovnávací registry
+    OCR1AL=0x39;        //0x0139 = 313 = 8 000 000 / 64 / (100 * 4)  (=> 100 Hz)
+
+    setb(TIMSK,4);      //povolení přerušení od šasovače 1
+    setb(SREG,7);       //globální povolení přerušení
+
+    while(1)
+    {
+         temp=gettemp();//přečtení teploty z čidla
+    }
+}
diff --git a/SW/teplomer2_003/ds18b20_1.c b/SW/ds18b20_1.c
similarity index 56%
rename from SW/teplomer2_003/ds18b20_1.c
rename to SW/ds18b20_1.c
index 4adb3971444dd057d31cb970a95a9ba1d9ef53fe..cd85af89b8e2abb88144083fdb964afcd708248c 100644
--- a/SW/teplomer2_003/ds18b20_1.c
+++ b/SW/ds18b20_1.c
@@ -1,115 +1,101 @@
 
 // DS18B20_1.c
 
-
-
-
-#include <avr/io.h>             // definice io registrů atd
-#include <util/atomic.h>        // nedělitelnost kódu
+#include <avr/io.h>             // definice io registrďż˝ atd
+#include <util/atomic.h>        // ned�litelnost k�du
+#include <util/delay.h>
+#include "macros.h"
+#include "config.h"
+#include "ds18b20_1.h"
 
 
 
 //#ifndef OW_PORT & OW_DDR & OW_PIN & OW_BIT
-              //pokud není definováno, definuj
+              //pokud nen� definov�no, definuj
 /*
 #define OW_PORT		PORTC
 #define OW_DDR		DDRC
 #define OW_PIN		PINC
-#define OW_BIT		0		//nožička
+#define OW_BIT		0		//no�i�ka
 */
 //#endif
 
-/////////////deklarace fcí//////////
-
-unsigned char 	ow_reset	(void);
-void		 	ow_pulldown	(void);
-void 			ow_pullup	(void);
-unsigned char 	ow_bitstate	(void);	//zjistí aktuální stav na 1-wire pinu
-unsigned char 	ow_readbit	(void);
-void 			ow_sendbit	(unsigned char ow_databit);
-char 			ow_readbyte	(void); 				//přečti bajt
-void 			ow_sendbyte	(char ow_byte);			//pošli bajt
-unsigned char	read_scratch (unsigned char *scratch);	//přečte celou scratchpad (8bajtů)
-unsigned char 	check_crc	(unsigned char crc, unsigned char data); //kontrola crc (porovná 1 bajt s klíčem 0x8C)
-//teploměr
-int gettemp(void);
-
 ////////////////////////////////////////////
 unsigned char ow_reset(void)
-	{
-	unsigned char ow_rst=1;	//neresetováno
+{
+	unsigned char ow_rst=1;	//neresetov�no
 	ow_pulldown();
-	wait_us(460);			//"480"//reset pulse "480" 
+	_delay_us(460);			//"480"//reset pulse "480" 
 	ow_pullup();
-	wait_us(30);				//"35"//odhadem
+	_delay_us(30);				//"35"//odhadem
 	ow_rst = ow_bitstate();	//?present pulse
-	wait_us(445);			//"445"//cca 445 (480-35) (min reset-present = 480)			
+	_delay_us(445);			//"445"//cca 445 (480-35) (min reset-present = 480)			
 	if(ow_rst)
 		return 0;			//no present pulse
 	else
 		return 1;			//reseted
-	}
+}
 
 ////////////////////////////////////////////
 void ow_pulldown(void)
-	{
+{
 	setb(OW_DDR,OW_BIT); 
-	clrb(OW_PORT,OW_BIT);	//stáhni 1-wire pin k zemi 
-	}
+	clrb(OW_PORT,OW_BIT);	//st�hni 1-wire pin k zemi 
+}
 ////////////////////////////////////////////
 void ow_pullup(void)
-	{
+{
 	clrb(OW_DDR,OW_BIT); 
 	setb(OW_PORT,OW_BIT);		//1-wire pullup 
-	}
+}
 ////////////////////////////////////////////
-unsigned char ow_bitstate(void)		//4instr //zjistí aktuální stav na 1-wire pinu
-	{
+unsigned char ow_bitstate(void)		//4instr //zjist� aktu�ln� stav na 1-wire pinu
+{
 	if(bit_is_clear(OW_PIN,OW_BIT))
 			return (0);
 		else
 			return (1);
-	}
+}
 
 //////////////////////////ow_readbit////////
 
-unsigned char ow_readbit(void)	//přečti 1-wire pin
-	{
+unsigned char ow_readbit(void)	//p�e�ti 1-wire pin
+{
 	unsigned char ow_bit=0;
 
 	ATOMIC_BLOCK(ATOMIC_FORCEON)
 		{
 		ow_pulldown();			//3instr //pulldown 5us
-		wait_us(3);				//"5"
+		_delay_us(3);				//"5"
 		ow_pullup();			//3instr
-		wait_us(3);				//"5"
+		_delay_us(3);				//"5"
 		ow_bit=ow_bitstate();	//5instr
 		}
-	wait_us(40);					//"55"
+	_delay_us(40);					//"55"
 	return (ow_bit);
-	}
+}
 ////////////////////////////ow_sendbit///////
 
 void ow_sendbit(unsigned char ow_databit)
-	{
+{
 	ATOMIC_BLOCK(ATOMIC_FORCEON)
 		{
-		ow_databit &=1;				//vymaskování nejnižšího bitu
+		ow_databit &=1;				//vymaskov�n� nejni���ho bitu
 		ow_pulldown();				//3instr //pulldown 10us
-		wait_us(6);					//"10"
+		_delay_us(6);					//"10"
 		if (ow_databit)
 			ow_pullup();			//3instr
 		else
 			ow_pulldown();			//3instr
-		wait_us(30);					//"55"//DS sampling min 50us
+		_delay_us(30);					//"55"//DS sampling min 50us
 		ow_pullup();
-		wait_us(3);					//"5"
+		_delay_us(3);					//"5"
 		}
-	}
+}
 ///////////////////////////////////////////
 
-char ow_readbyte(void) 					//přečti bajt
-	{
+char ow_readbyte(void) 					//p�e�ti bajt
+{
 	char ow_byte = 0;
 	for (char i=0; i<8; )
 		{
@@ -117,22 +103,22 @@ char ow_readbyte(void) 					//p
 		i++;
 		}
 	return (ow_byte);
-	}	
+}
 
 
 ///////////////////////////////////////////
 
-void ow_sendbyte(char ow_byte)					//pošli bajt
-	{
+void ow_sendbyte(char ow_byte)					//po�li bajt
+{
 	for (char i=0; i<8; )
 		{
-		ow_sendbit( ow_byte >> i);				//stačí odrotovat - vymaskování provede fce ow_sendbit
+		ow_sendbit( ow_byte >> i);				//sta�� odrotovat - vymaskov�n� provede fce ow_sendbit
 		i++;
 		}
-	}
+}
 //////////////////////////////////////////
 unsigned char read_scratch (unsigned char *scratch)
-	{
+{
 	unsigned char crc=0;
 	for (unsigned char i = 0; i < 9; i++)
 		{
@@ -140,10 +126,10 @@ unsigned char read_scratch (unsigned char *scratch)
 		crc = check_crc(crc, scratch[i]);
 		}
 	return (crc);	//0 = OK
-	}
+}
 //////////////////////////////////////////
 unsigned char check_crc (unsigned char crc, unsigned char data)
-	{
+{
 	crc = crc ^ data;
 	for (unsigned char i = 0; i < 8; i++)
 		{
@@ -153,29 +139,29 @@ unsigned char check_crc (unsigned char crc, unsigned char data)
             crc >>= 1;
 		}
 	return crc;
-	}
+}
 //////////////////////////////////////////
-////////fce teploměru/////////
+////////fce teplom�ru/////////
 
 int gettemp(void)
-	{
+{
 	unsigned char crc_ok=1, reseted=0;
 	unsigned char scratch[9];
 	int temp=0;
 	reseted=ow_reset();			//reset
 	ow_sendbyte(0xcc);			//SKIP ROM [CCh]
 	ow_sendbyte(0x44);			//CONVERT T [44h]
-	//wait_ms(750);      //750
+	//_delay_ms(750);      //750
 	ow_reset();					//reset
 	ow_sendbyte(0xcc);			//SKIP ROM [CCh]
 	ow_sendbyte(0xbe);			//READ SCRATCHPAD [BEh]
 	crc_ok= read_scratch (scratch);	
-	temp  = scratch[0];			//dolní bajt
-	temp |= (scratch[1] << 8);	//horní bajt
+	temp  = scratch[0];			//dolnďż˝ bajt
+	temp |= (scratch[1] << 8);	//hornďż˝ bajt
 	if(reseted&&(crc_ok==0))
 		return (temp);
 	else
 		return (0x5fff);		//error
-	}
+}
 
 /////////////////////////////
diff --git a/SW/ds18b20_1.h b/SW/ds18b20_1.h
new file mode 100644
index 0000000000000000000000000000000000000000..0500e9b8da84616da08713fdfa1fb6b1fa7033b9
--- /dev/null
+++ b/SW/ds18b20_1.h
@@ -0,0 +1,15 @@
+#pragma once
+
+unsigned char 	ow_reset	(void);
+void		 	ow_pulldown	(void);
+void 			ow_pullup	(void);
+unsigned char 	ow_bitstate	(void);	//zjistí aktuální stav na 1-wire pinu
+unsigned char 	ow_readbit	(void);
+void 			ow_sendbit	(unsigned char ow_databit);
+char 			ow_readbyte	(void); 				//přečti bajt
+void 			ow_sendbyte	(char ow_byte);			//pošli bajt
+unsigned char	read_scratch (unsigned char *scratch);	//přečte celou scratchpad (8bajtů)
+unsigned char 	check_crc	(unsigned char crc, unsigned char data); //kontrola crc (porovnĂ­ 1 bajt s kĂłdem 0x8C)
+
+//teploměr
+int gettemp(void);
diff --git a/SW/macros.h b/SW/macros.h
new file mode 100644
index 0000000000000000000000000000000000000000..1c3841d08a53fe5882408166cd2b6b9d45bfb279
--- /dev/null
+++ b/SW/macros.h
@@ -0,0 +1,10 @@
+//
+// Created by martin.vitek on 15.7.15.
+//
+
+#pragma once
+
+// Zmena bitu portu, IO registru nebo promenne:
+#define setb(bajt,bit)    bajt |= 1<<(bit)    //nastav bit
+#define clrb(bajt,bit)    bajt &= ~(1<<(bit)) //nuluj bit
+#define negb(bajt,bit)    bajt ^= 1<<(bit)    //neguj bit
diff --git a/SW/teplomer2_003/default/teplomer2_003.eep b/SW/teplomer2_003/default/teplomer2_003.eep
deleted file mode 100644
index 1996e8fde5d7311bbef07a199045173b4bebb079..0000000000000000000000000000000000000000
--- a/SW/teplomer2_003/default/teplomer2_003.eep
+++ /dev/null
@@ -1 +0,0 @@
-:00000001FF
diff --git a/SW/teplomer2_003/default/teplomer2_003.hex b/SW/teplomer2_003/default/teplomer2_003.hex
deleted file mode 100644
index 12eb77a596ff43ac791c5537d70c172718094ca4..0000000000000000000000000000000000000000
--- a/SW/teplomer2_003/default/teplomer2_003.hex
+++ /dev/null
@@ -1,71 +0,0 @@
-:1000000012C02CC02BC02AC029C028C02DC126C0B8
-:1000100025C024C023C022C021C020C01FC01EC0D4
-:100020001DC01CC01BC011241FBECFE5D4E0DEBF25
-:10003000CDBF10E0A0E6B0E0E6E3F4E002C005903A
-:100040000D92A237B107D9F710E0A2E7B0E001C0E6
-:100050001D92A737B107E1F7A8D1EBC1D1CF4F93DC
-:100060005F9344E1509160005A95F1F74A95D1F7BA
-:100070008A95B9F79A95AAF75F914F9108954F9392
-:10008000409161004A95F1F78A95D1F79A95C2F7A8
-:100090004F9108951F93BA9AC2988CEC91E0EFDFCC
-:1000A000BA98C29A8EE190E0EADF16B38DEB91E048
-:1000B000E6DF169516951095812F81701F91089592
-:1000C000BA9AC2980895BA98C29A089586B390E0F1
-:1000D0009695879596958795817008950F931F93B0
-:1000E000F894BA9AC29883E090E0C9DFBA98C29AAD
-:1000F00083E090E0C4DF06B3789488E290E0BFDF4D
-:1001000010E01695079516950795802F81701F9121
-:100110000F9108951F93182FF894BA9AC29886E009
-:1001200090E0ADDF10FF03C0BA98C29A02C0BA9A3D
-:10013000C2988EE190E0A3DFBA98C29A83E090E083
-:100140009EDF78941F9108951F93CF93DF9310E063
-:10015000C0E0D0E0C3DF90E00C2E02C0880F991FF2
-:100160000A94E2F7182B2196C830D10599F7812F10
-:10017000DF91CF911F9108950F931F93CF93DF933A
-:10018000C0E0D0E0082F10E0C8010C2E02C0959509
-:1001900087950A94E2F7BEDF2196C830D105A1F712
-:1001A000DF91CF911F910F910895682790E02CE87F
-:1001B000862F869560FF03C0682F622701C0682FD5
-:1001C0009F5F9830A9F7862F0895EF92FF921F93B3
-:1001D000CF93DF937C0110E0C0E0D0E0B5DF682F63
-:1001E000F701EC0FFD1F8083812FDFDF182F219691
-:1001F000C930D10599F7DF91CF911F91FF90EF9012
-:1002000008951F93DF93CF93CDB7DEB729970FB62D
-:10021000F894DEBF0FBECDBF3DDF182F8CECACDFF6
-:1002200084E4AADF37DF8CECA7DF8EEBA5DFCE01FD
-:100230000196CBDF99814A81112349F0882339F453
-:10024000292F30E0942F80E0282B392B02C02FEF8C
-:100250003FE5C90129960FB6F894DEBF0FBECDBFAA
-:10026000CF91DF911F9108951F920F920FB60F92B9
-:1002700011242F933F934F935F936F937F938F93AB
-:100280009F93AF93BF93EF93FF93809172008F5F23
-:1002900080937200843010F0109272008FEF82BB56
-:1002A00020917200E22FF0E080E290E0022E02C086
-:1002B000959587950A94E2F785BB8091750090919A
-:1002C00076008F5F9F4519F4E359FF4F5AC02130E4
-:1002D00039F1213030F0223079F1233009F054C067
-:1002E00039C0809175009091760097FF0DC0809184
-:1002F000750090917600909581959F4F9093740032
-:10030000809373008FE73FC08091750090917600D5
-:1003100060E170E067D0709374006093730034C044
-:1003200080917300909174006AE070E05BD0662366
-:1003300059F1E62FF0E023C0809173009091740092
-:100340006AE070E04FD0FC01EE59FF4F808180954C
-:100350008F7D19C0809175009091760060E170E00A
-:1003600041D021E732E0AC01429FC001439F900D94
-:10037000529F900D112468EE73E034D0FB01EE59CA
-:10038000FF4F8081809582BBFF91EF91BF91AF912C
-:100390009F918F917F916F915F914F913F912F919D
-:1003A0000F900FBE0F901F9018958FEF81BB8FE3BA
-:1003B00084BB8EB581608EBD8EB582608EBD8EB5DC
-:1003C00088608EBD81E08BBD89E38ABD89B780617D
-:1003D00089BF8FB780688FBF14DF909376008093BA
-:1003E0007500FACF97FB092E07260AD077FD04D0B7
-:1003F0000CD006D000201AF4709561957F4F0895B7
-:10040000F6F7909581959F4F0895AA1BBB1B51E16C
-:1004100007C0AA1FBB1FA617B70710F0A61BB70B74
-:10042000881F991F5A95A9F780959095BC01CD0119
-:060430000895F894FFCFCF
-:1004360085025F419DD5C3D6DE45DFC780009E8815
-:0204460088002C
-:00000001FF
diff --git a/SW/teplomer2_003/teplomer2_003.c b/SW/teplomer2_003/teplomer2_003.c
deleted file mode 100644
index 0e63a37994bec1c31ddc66eece2d6dcc15057d47..0000000000000000000000000000000000000000
--- a/SW/teplomer2_003/teplomer2_003.c
+++ /dev/null
@@ -1,123 +0,0 @@
-#define F_CPU    8000000        //8MHz
-
-#include <avr/io.h>
-#include <avr/interrupt.h>
-
-#include "wait.c"
-#include "ds18b20_1.c" 
-
-//definice pinu pro čidlo
- #define OW_PORT        PORTB
-#define OW_DDR        DDRB
-#define OW_PIN        PINB
-#define OW_BIT        2
-    
-#define _s_A  2
-#define _s_B  0
-#define _s_C  6
-#define _s_D  4
-#define _s_E  3
- #define _s_F  1
-#define _s_G  7
-#define _s_dot 5
-
-const unsigned char segs[] = //číslice
-{
-_BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F),    //0
-_BV(_s_B) | _BV(_s_C),    //1
- _BV(_s_A) | _BV(_s_B) | _BV(_s_D) | _BV(_s_E) | _BV(_s_G),    //2
-_BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_D) | _BV(_s_G),  //3
-_BV(_s_B) | _BV(_s_C) | _BV(_s_F) | _BV(_s_G),    //4
-_BV(_s_A) | _BV(_s_C) | _BV(_s_D) | _BV(_s_F) | _BV(_s_G), //5
- _BV(_s_A) | _BV(_s_C) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F) | _BV(_s_G), //6
-_BV(_s_A) | _BV(_s_B) | _BV(_s_C), //7
-_BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F) | _BV(_s_G),//8
-_BV(_s_A) | _BV(_s_B) | _BV(_s_C) | _BV(_s_F) | _BV(_s_G),//9
- _BV(_s_G) //mínus    
-};
-
-const unsigned char err[] = //chyba
-{
-0, //mezera
-_BV(_s_A) | _BV(_s_D) | _BV(_s_E) | _BV(_s_F) | _BV(_s_G), //E
-_BV(_s_E) | _BV(_s_G), //r
-_BV(_s_E) | _BV(_s_G) //r
-};
-
-
-volatile int temp; //teplota
-   
-ISR(TIMER1_COMPA_vect)
-{
-static int temp_1=0;
-static unsigned char disp=0;
-unsigned char dec;
-
-
-disp++;        
-if(disp>3)
-    disp=0;            //cyklicky 0 - 4 (sedmisegmentovka)
-
-PORTD=0xff;    //vypnout segmenty
-PORTC=0b00100000>>disp;    //přepnout na danou sedmisegmentovku
-
-if (temp==0x5fff)    //pokud je chyba čidla
-    {
-    PORTD=(~err[disp]);    //vypsání znaku chyby
-     }
-
-else //pokud není chyba čidla
-    {
-    switch(disp)
-        {
-        case 0://1.cifra - znaménko
-            if (temp>>15) //pokud je nejvyšší bit 1 (záporné)
-                {
-                temp_1=temp*(-1);    //převedení záporné teploty
-                 PORTD=(~segs[10]);    //zobrazení mínus
-                }
-            else
-                temp_1=temp/16;        //převedení kladné teploty    
-        break;
-
-        case 1://2.cifra - desítky
-             dec = temp_1 / 10;
-                 
-            if(dec>0)
-                PORTD=(~segs[dec]);//zobrazit desítky
-        break;
-
-        case 2://3.cifra - jednotky
-            PORTD=(~segs[temp_1 % 10]) & ~_BV(_s_dot); //zobrazit jednotky a tečku
-         break;
-
-        case 3://4.cifra - desetiny
-            PORTD = (~segs[((temp % 16)*625)/1000]); //zobrazit desetiny
-        break;
-        }//switch(disp)   
-    }//else (temp==0x5fff)
-
-}//ISR(TIMER1_COMPA_vect)
-
-
-int main(void)
-{
-DDRD = 0xFF; //výstupy - segmenty
-DDRC = 0x3F; //výstupy - displeje
-    
-setb(TCCR1B,0);
-setb(TCCR1B,1);//start čítač 1 s předděličem 64
-setb(TCCR1B,3);//CTC mode
-
-OCR1AH=0x01;//     porovnávací registry
- OCR1AL=0x39;//  0x0139 = 313 = 8 000 000 / 64 / (100 * 4)  (=> 100 Hz)
-
-setb(TIMSK,4); //Povolení přerušení od časovače 1
-setb(SREG,7);  //globální povolení přerušení
-
-while(1)
-    {
-     temp=gettemp();//přečtení teploty z čidla
-      //wait_ms(200);
-    }
-}
\ No newline at end of file
diff --git a/SW/teplomer2_003/wait.c b/SW/teplomer2_003/wait.c
deleted file mode 100644
index 5a4b3ff09d277e12765380da7006f8e206289467..0000000000000000000000000000000000000000
--- a/SW/teplomer2_003/wait.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*---------------------------------------------------------------------------
-
-soubor: wait.c
-verze:  1.0
-datum:  9.1.2012
-popis:
-
-Cekaci rutiny a makra pro bitove operace
-Cekaci rutiny jsou mnohem uspornejsi nez bezne "delay.h"
-
-Tento soubor vynikl ze souboru "mojelib.h" jehoz autora bohuzel neznam.
-
----------------------------------------------------------------------------*/
-
-
-// Zmena bitu portu, IO registru nebo promenne:
-#define setb(bajt,bit)    bajt |= 1<<(bit)    //nastav bit
-#define clrb(bajt,bit)    bajt &= ~(1<<(bit)) //nuluj bit
-#define negb(bajt,bit)    bajt ^= 1<<(bit)    //neguj bit
-
-// Casove smycky:
-void wait_ms  (unsigned int c);              // cekej milisekund(max65553):
-void wait_us  (unsigned int c);              // cekej mikrosekund(max65553):
-
-
-//cekej milisekund:
-unsigned char reg21 = F_CPU / 60000;    // F_CPU = frekv. oscilatoru [Hz],
-                                        // (vnitrni konstanta prekladace)
-void wait_ms  (unsigned int c)
-{
-	asm("push	r20");
-	asm("push	r21");
-asm("_Wms0:");
-	asm("ldi	r20,0x14");
-asm("_Wms1:");
-	asm("lds	r21,reg21");
-asm("_Wms2:");
-	asm("dec	r21");
-	asm("brne	_Wms2");
-	asm("dec		r20");
-	asm("brne	_Wms1");
-	asm("dec	r24");
-	asm("brne	_Wms0");
-	asm("dec	r25");
-	asm("brpl	_Wms0");
-	asm("pop   	r21");
-	asm("pop   	r20");
-}
-
-
-//cekej mikrosekund:
-unsigned char reg20 = F_CPU / 6000000 + 1;
-void wait_us(unsigned int c)
-{
-	asm("push	r20");
-asm("_wus0:");
-	asm("lds	r20,reg20");  // 1-6MHz: r20=1  6-12MHz: r20=2
-asm("_wus1:");
-	asm("dec	r20");
-	asm("brne	_wus1");
-	asm("dec	r24");
-	asm("brne	_wus0");
-	asm("dec	r25");
-	asm("brpl	_wus0");
-	asm("pop	r20");
-}
-
-//eof
-//(c) OK1ZKV 2012 
-