diff --git a/SW/digitalni_teplomer.c b/SW/digitalni_teplomer.c
index bb9a25d652a3b0bd9df19a270d5ac304e5203279..62525a02981349fb6b191b46f9e6e0b0a613b0bd 100644
--- a/SW/digitalni_teplomer.c
+++ b/SW/digitalni_teplomer.c
@@ -44,9 +44,10 @@ 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 int temp_1=0;    //slouží k zobrazení celočíselné části
+    static int temp_2=0;    //slouží k zobrazení desetinné části teploty
     static unsigned char disp=0;
-    unsigned char dec;
+    static unsigned char desitky, stovky;
 
 
     disp++;
@@ -64,27 +65,52 @@ ISR(TIMER1_COMPA_vect)
     {
         switch(disp)
         {
-            case 0://1.cifra - znam�nko
-                    if (temp>>15) //pokud je nejvyšší bit 1 (záporné číslo)
+            case 0: //1.cifra - znaménko
+                    temp_1=temp;            //uložení aktuální teploty
+                    temp_2=temp%16;         //desetinná část teploty (šestnáctiny stupně)
+
+                    if (temp_1<0)           //pokud je teplota záporná
+                    {
+                        temp_1 /=  16;      //převedení na teplotu ve °C
+                        temp_1 *= (-1);
+                        temp_2 *= (-1);	    //převedení záporné teploty na kladnou
+                        PORTD=(~segs[10]);	//zobrazenĂ­ mĂ­nus
+                    }
+                    else
                     {
-                        temp_1=temp*(-1);    //převedení záporné teploty na kladnou
-                        PORTD=(~segs[10]);    //zobrazenĂ­ mĂ­nus
+                        temp_1 /= 16;       //převedení na teplotu ve °C
+                        stovky  = temp_1 / 100;
+                        if (stovky)         //pokud je teplota vyšší než 99°C
+                        {
+                            PORTD=(~segs[stovky]);//zobrazit stovky
+                        }
                     }
-                    else temp_1=temp/16;        //převedení kladné teploty
+                    temp_1 %= 100;
                 break;
 
-            case 1://2.cifra - desĂ­tky
-                    dec = temp_1 / 10;
+            case 1: //2.cifra - desĂ­tky
+                desitky = temp_1 / 10;
+
+                if(desitky>0)
+                {
+                    PORTD=(~segs[desitky]);//zobrazit desĂ­tky
+                }
+                else
+                {
+                    if (stovky)//pokud je teplota vyšší než 99°C
+                    {
+                        PORTD=(~segs[0]);//zobraz nulu
+                    }
+                }
 
-                    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
+                    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
+                    PORTD = (~segs[((temp_2)*625)/1000]); //zobrazit desetiny
                 break;
         }//switch(disp)
     }//else (temp==0x5fff)