Subversion Repositories svnkaklik

Rev

Blame | Last modification | View Log | Download

CCS PCM C Compiler, Version 3.245, 27853               15-IV-06 16:28

               Filename: D:\KAKLIK\programy\PIC_C\roboti\istrobot\3Orbis\main.lst

               ROM used: 598 words (15%)
                         Largest free fragment is 2048
               RAM used: 31 (18%) at main() level
                         40 (23%) worst case
               Stack:    4 worst case (2 in main + 2 for interrupts)

*
0000:  MOVLW  00
0001:  MOVWF  0A
0002:  GOTO   182
0003:  NOP
.................... #include ".\main.h" 
.................... #include <16F88.h> 
.................... //////// Standard Header file for the PIC16F88 device //////////////// 
.................... #device PIC16F88 
.................... #list 
....................  
.................... #device adc=8 
....................  
.................... #FUSES NOWDT                       //No Watch Dog Timer 
.................... #FUSES INTRC_IO 
.................... #FUSES NOPUT                       //No Power Up Timer 
.................... #FUSES MCLR                        //Master Clear pin enabled 
.................... #FUSES NOBROWNOUT             //Reset when brownout detected 
.................... #FUSES NOLVP                  //Low Voltage Programming on B3(PIC16) or B5(PIC18) 
.................... #FUSES NOCPD                       //No EE protection 
.................... #FUSES NOWRT                       //Program memory not write protected 
.................... #FUSES NODEBUG                     //No Debug mode for ICD 
.................... #FUSES NOPROTECT                   //Code not protected from reading 
.................... #FUSES NOFCMEN                //Fail-safe clock monitor enabled 
.................... #FUSES NOIESO                      //Internal External Switch Over mode enabled 
....................  
.................... #use delay(clock=8000000,RESTART_WDT) 
000C:  MOVLW  3D
000D:  MOVWF  04
000E:  MOVF   00,W
000F:  BTFSC  03.2
0010:  GOTO   023
0011:  MOVLW  02
0012:  MOVWF  78
0013:  MOVLW  BF
0014:  MOVWF  77
0015:  CLRWDT
0016:  DECFSZ 77,F
0017:  GOTO   015
0018:  DECFSZ 78,F
0019:  GOTO   013
001A:  MOVLW  96
001B:  MOVWF  77
001C:  DECFSZ 77,F
001D:  GOTO   01C
001E:  NOP
001F:  NOP
0020:  CLRWDT
0021:  DECFSZ 00,F
0022:  GOTO   011
0023:  RETLW  00
0024:  MOVLW  08
0025:  SUBWF  42,F
0026:  BTFSS  03.0
0027:  GOTO   033
0028:  MOVLW  42
0029:  MOVWF  04
002A:  BCF    03.0
002B:  RRF    00,F
002C:  MOVF   00,W
002D:  BTFSC  03.2
002E:  GOTO   033
002F:  GOTO   031
0030:  CLRWDT
0031:  DECFSZ 00,F
0032:  GOTO   030
0033:  RETLW  00
....................  
....................  
....................  
.................... #use rtos (timer=2, minor_cycle=2ms) 
....................  
.................... #define  STRED       128      // sredni poloha zadniho kolecka 
.................... #define  BEAR1       12       // 3 stupne zataceni 
.................... #define  BEAR2       34 
.................... #define  BEAR3       70 
.................... #define  SPEEDMAX    120      // maximalni rychlost 
....................  
.................... #define  L           1 
.................... #define  S           2 
.................... #define  R           0 
....................  
.................... // servo 
.................... #define  SERVO PIN_A2 
....................  
.................... // IR 
.................... #define IRTX      PIN_B2 
....................  
.................... //motory 
.................... #define  FR         output_low(PIN_A7); output_high(PIN_A6)  // Vpred 
.................... #define  FL         output_low(PIN_A1); output_high(PIN_A0) 
.................... #define  BR         output_low(PIN_A6); output_high(PIN_A7)  // Vzad 
.................... #define  BL         output_low(PIN_A0); output_high(PIN_A1) 
.................... #define  STOPR      output_low(PIN_A6);output_low(PIN_A7) 
.................... #define  STOPL      output_low(PIN_A0);output_low(PIN_A1) 
....................  
.................... //HID 
.................... #define  LED1     PIN_B1      //oranzova 
.................... #define  LED2     PIN_B2      //zluta 
....................  
.................... #define  STROBE   PIN_B0 
.................... //#define  SW1      PIN_A2      // Motory On/off 
....................  
.................... unsigned int8 sensors;        // pomocna promenna pro cteni cidel na caru 
.................... unsigned int8 line;           // na ktere strane byla detekovana cara 
.................... //unsigned int8 dira;           // pocita dobu po kterou je ztracena cara 
.................... unsigned int8 uhel;           // urcuje aktualni uhel zataceni 
.................... //unsigned int8 speed;          // maximalni povolena rychlost 
.................... unsigned int8 rovinka;        // pocitadlo na zjisteni rovinky 
....................  
.................... signed int16  Lmotor;         // promene, ktere urcuji velikost vykonu na levem 
.................... signed int16  Rmotor;         // a pravem motoru 
....................  
.................... // makro pro PWM 
.................... #define GO(motor, direction, power) if(get_timer0()<=power) \ 
.................... {direction##motor;} else {stop##motor;} 
....................  
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... /* 
.................... void diagnostika() 
.................... { 
....................    if(input(SW1))STOPR;STOPL;While(TRUE); 
.................... //   if(LSENSOR==true) output_high(LED2); else output_low(LED2); 
.................... //   if(RSENSOR==true) output_high(LED1); else output_low(LED1); 
.................... } 
.................... */ 
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... #task (rate=18ms,max=2ms) 
.................... void zatoc()   // ridi servo ktere otaci kolem 
.................... { 
....................    unsigned int8 n; 
....................  
....................    output_high(SERVO); 
0034:  BSF    03.5
0035:  BCF    05.2
0036:  BCF    03.5
0037:  BSF    05.2
....................    delay_us(1100); 
0038:  CLRWDT
0039:  MOVLW  01
003A:  MOVWF  3D
003B:  CALL   00C
003C:  MOVLW  63
003D:  MOVWF  42
003E:  CALL   024
....................    for(n=uhel; n>0; n--); 
003F:  MOVF   23,W
0040:  MOVWF  3C
0041:  MOVF   3C,F
0042:  BTFSC  03.2
0043:  GOTO   046
0044:  DECF   3C,F
0045:  GOTO   041
....................    output_low(SERVO); 
0046:  BSF    03.5
0047:  BCF    05.2
0048:  BCF    03.5
0049:  BCF    05.2
.................... } 
004A:  MOVLW  34
004B:  MOVWF  2E
004C:  MOVLW  00
004D:  MOVWF  2F
004E:  BCF    0A.3
004F:  GOTO   234
0050:  RETLW  00
....................  
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... void diag()   // ridi servo ktere otaci kolem 
.................... { 
....................    unsigned int8 n; 
....................  
....................    output_high(SERVO); 
*
016A:  BSF    03.5
016B:  BCF    05.2
016C:  BCF    03.5
016D:  BSF    05.2
....................    delay_us(1100); 
016E:  CLRWDT
016F:  MOVLW  01
0170:  MOVWF  3D
0171:  CALL   00C
0172:  MOVLW  63
0173:  MOVWF  42
0174:  CALL   024
....................    for(n=uhel; n>0; n--); 
0175:  MOVF   23,W
0176:  MOVWF  3A
0177:  MOVF   3A,F
0178:  BTFSC  03.2
0179:  GOTO   17C
017A:  DECF   3A,F
017B:  GOTO   177
....................    output_low(SERVO); 
017C:  BSF    03.5
017D:  BCF    05.2
017E:  BCF    03.5
017F:  BCF    05.2
.................... } 
0180:  BCF    0A.3
0181:  GOTO   1D4 (RETURN)
....................  
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... short int IRcheck()                 // potvrdi detekci cihly 
.................... { 
....................    output_high(IRTX);               // vypne vysilac IR 
....................  
....................    output_low(STROBE); 
....................    sensors = spi_read(0);         // cteni senzoru 
....................    output_high(STROBE); 
....................  
....................    if(true==bit_test(sensors,7))    // otestuje, jestli je stale detekovan IR signal 
....................    { 
....................       output_low(IRTX);             // zapne vysilac IR 
....................  
....................       output_low(STROBE); 
....................       sensors = spi_read(0);         // cteni senzoru 
....................       output_high(STROBE); 
....................  
....................       if(false==bit_test(sensors,7))      // otestuje, jestli je detekovana cihla 
....................       { 
....................          output_high(IRTX);            // vypne vysilac IR 
....................  
....................          output_low(STROBE); 
....................          sensors = spi_read(0);         // cteni senzoru 
....................          output_high(STROBE); 
....................  
....................          if(bit_test(sensors,7)) return 1; // 
....................  
....................          else return 0; // vrat 0 kdyz je ruseni 
....................       } 
....................       else return 0; // vrat 0 kdyz to nebyla cihla 
....................    } 
....................    else return 0; // vrat 0 kdyz je detekovano ruseni 
.................... } 
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... /* 
.................... #task (rate=4ms, max=20us) 
.................... void rychlost() 
.................... { 
....................    if(speed<255) speed++; 
.................... } 
.................... */ 
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... #task (rate=2ms, max=1ms) 
.................... void rizeni() 
.................... { 
....................    unsigned int16 n; 
....................    unsigned int8 i; 
....................  
....................    GO(L,F,Lmotor);GO(R,F,Rmotor); // zapni motory 
*
0051:  MOVF   01,W
0052:  BTFSS  00.7
0053:  GOTO   057
0054:  BTFSS  26.7
0055:  GOTO   05F
0056:  GOTO   059
0057:  BTFSC  26.7
0058:  GOTO   068
0059:  MOVF   26,F
005A:  BTFSS  03.2
005B:  GOTO   05F
005C:  SUBWF  25,W
005D:  BTFSS  03.0
005E:  GOTO   068
005F:  BSF    03.5
0060:  BCF    05.1
0061:  BCF    03.5
0062:  BCF    05.1
0063:  BSF    03.5
0064:  BCF    05.0
0065:  BCF    03.5
0066:  BSF    05.0
0067:  GOTO   070
0068:  BSF    03.5
0069:  BCF    05.0
006A:  BCF    03.5
006B:  BCF    05.0
006C:  BSF    03.5
006D:  BCF    05.1
006E:  BCF    03.5
006F:  BCF    05.1
0070:  MOVF   01,W
0071:  BTFSS  00.7
0072:  GOTO   076
0073:  BTFSS  28.7
0074:  GOTO   07E
0075:  GOTO   078
0076:  BTFSC  28.7
0077:  GOTO   087
0078:  MOVF   28,F
0079:  BTFSS  03.2
007A:  GOTO   07E
007B:  SUBWF  27,W
007C:  BTFSS  03.0
007D:  GOTO   087
007E:  BSF    03.5
007F:  BCF    05.7
0080:  BCF    03.5
0081:  BCF    05.7
0082:  BSF    03.5
0083:  BCF    05.6
0084:  BCF    03.5
0085:  BSF    05.6
0086:  GOTO   08F
0087:  BSF    03.5
0088:  BCF    05.6
0089:  BCF    03.5
008A:  BCF    05.6
008B:  BSF    03.5
008C:  BCF    05.7
008D:  BCF    03.5
008E:  BCF    05.7
....................  
....................    delay_us(500); 
008F:  CLRWDT
0090:  MOVLW  02
0091:  MOVWF  41
0092:  MOVLW  F7
0093:  MOVWF  42
0094:  CALL   024
0095:  DECFSZ 41,F
0096:  GOTO   092
....................  
....................    output_low(STROBE); 
0097:  BSF    03.5
0098:  BCF    06.0
0099:  BCF    03.5
009A:  BCF    06.0
....................    sensors = spi_read(0);         // cteni senzoru 
009B:  MOVF   13,W
009C:  CLRF   13
009D:  BSF    03.5
009E:  BTFSC  14.0
009F:  GOTO   0A2
00A0:  BCF    03.5
00A1:  GOTO   09D
00A2:  BCF    03.5
00A3:  MOVF   13,W
00A4:  MOVWF  21
....................    sensors=~sensors; 
00A5:  COMF   21,F
....................    output_high(STROBE);  
00A6:  BSF    03.5
00A7:  BCF    06.0
00A8:  BCF    03.5
00A9:  BSF    06.0
....................     
....................    i=0;                    // havarijni kod    
00AA:  CLRF   40
....................    for (n=0; n<=6; n++) 
00AB:  CLRF   3F
00AC:  CLRF   3E
00AD:  MOVF   3F,F
00AE:  BTFSS  03.2
00AF:  GOTO   0C4
00B0:  MOVF   3E,W
00B1:  SUBLW  06
00B2:  BTFSS  03.0
00B3:  GOTO   0C4
....................    { 
....................       if(bit_test(sensors,n)) i++; 
00B4:  MOVF   21,W
00B5:  MOVWF  77
00B6:  MOVF   3E,W
00B7:  MOVWF  78
00B8:  BTFSC  03.2
00B9:  GOTO   0BE
00BA:  BCF    03.0
00BB:  RRF    77,F
00BC:  DECFSZ 78,F
00BD:  GOTO   0BA
00BE:  BTFSC  77.0
00BF:  INCF   40,F
....................    } 
00C0:  INCF   3E,F
00C1:  BTFSC  03.2
00C2:  INCF   3F,F
00C3:  GOTO   0AD
....................    if (i>3) rtos_terminate(); // zastavi, kdyz je cerno pod vice nez tremi cidly 
00C4:  MOVF   40,W
00C5:  SUBLW  03
00C6:  BTFSS  03.0
00C7:  GOTO   241
....................     
....................  
....................    if(bit_test(sensors,3)) //...|...// 
00C8:  BTFSS  21.3
00C9:  GOTO   0D8
....................    { 
....................       uhel=STRED; 
00CA:  MOVLW  80
00CB:  MOVWF  23
....................       Lmotor=SPEEDMAX; 
00CC:  CLRF   26
00CD:  MOVLW  78
00CE:  MOVWF  25
....................       Rmotor=SPEEDMAX; 
00CF:  CLRF   28
00D0:  MOVWF  27
....................       line=S; 
00D1:  MOVLW  02
00D2:  MOVWF  22
....................       if (rovinka<255) rovinka++; 
00D3:  INCFSZ 24,W
00D4:  GOTO   0D6
00D5:  GOTO   0D7
00D6:  INCF   24,F
....................       return; 
00D7:  GOTO   163
....................    } 
....................  
....................    if(bit_test(sensors,0)) //|......//     // z duvodu zkraceni doby reakce se cidla nevyhodnocuji poporade ale od krajnich k prostrednimu 
00D8:  BTFSS  21.0
00D9:  GOTO   0E4
....................    { 
....................       uhel=STRED-BEAR3; 
00DA:  MOVLW  3A
00DB:  MOVWF  23
....................       Lmotor=0; 
00DC:  CLRF   26
00DD:  CLRF   25
....................       Rmotor=SPEEDMAX; 
00DE:  CLRF   28
00DF:  MOVLW  78
00E0:  MOVWF  27
....................       line=L; 
00E1:  MOVLW  01
00E2:  MOVWF  22
....................       return; 
00E3:  GOTO   163
....................    } 
....................  
....................    if(bit_test(sensors,6)) //......|// 
00E4:  BTFSS  21.6
00E5:  GOTO   0EF
....................    { 
....................       uhel=STRED+BEAR3; 
00E6:  MOVLW  C6
00E7:  MOVWF  23
....................       Rmotor=0; 
00E8:  CLRF   28
00E9:  CLRF   27
....................       Lmotor=SPEEDMAX; 
00EA:  CLRF   26
00EB:  MOVLW  78
00EC:  MOVWF  25
....................       line=R; 
00ED:  CLRF   22
....................       return; 
00EE:  GOTO   163
....................  
....................    } 
....................  
....................    if(bit_test(sensors,1)) //.|.....// 
00EF:  BTFSS  21.1
00F0:  GOTO   0FC
....................    { 
....................       uhel=STRED-BEAR2; 
00F1:  MOVLW  5E
00F2:  MOVWF  23
....................       Lmotor=SPEEDMAX-50; 
00F3:  CLRF   26
00F4:  MOVLW  46
00F5:  MOVWF  25
....................       Rmotor=SPEEDMAX; 
00F6:  CLRF   28
00F7:  MOVLW  78
00F8:  MOVWF  27
....................       line=S; 
00F9:  MOVLW  02
00FA:  MOVWF  22
....................       return; 
00FB:  GOTO   163
....................    } 
....................  
....................    if(bit_test(sensors,5)) //.....|.// 
00FC:  BTFSS  21.5
00FD:  GOTO   109
....................    { 
....................       uhel=STRED+BEAR2; 
00FE:  MOVLW  A2
00FF:  MOVWF  23
....................       Rmotor=SPEEDMAX-50; 
0100:  CLRF   28
0101:  MOVLW  46
0102:  MOVWF  27
....................       Lmotor=SPEEDMAX; 
0103:  CLRF   26
0104:  MOVLW  78
0105:  MOVWF  25
....................       line=S; 
0106:  MOVLW  02
0107:  MOVWF  22
....................       return; 
0108:  GOTO   163
....................    } 
....................  
....................    if (bit_test(sensors,2)) //..|....// 
0109:  BTFSS  21.2
010A:  GOTO   119
....................    { 
....................       uhel=STRED-BEAR1; 
010B:  MOVLW  74
010C:  MOVWF  23
....................       Lmotor=SPEEDMAX; 
010D:  CLRF   26
010E:  MOVLW  78
010F:  MOVWF  25
....................       Rmotor=SPEEDMAX; 
0110:  CLRF   28
0111:  MOVWF  27
....................       line=S; 
0112:  MOVLW  02
0113:  MOVWF  22
....................       if (rovinka<255) rovinka++; 
0114:  INCFSZ 24,W
0115:  GOTO   117
0116:  GOTO   118
0117:  INCF   24,F
....................       return; 
0118:  GOTO   163
....................    } 
....................  
....................    if (bit_test(sensors,4)) //....|..// 
0119:  BTFSS  21.4
011A:  GOTO   129
....................    { 
....................       uhel=STRED+BEAR1; 
011B:  MOVLW  8C
011C:  MOVWF  23
....................       Rmotor=SPEEDMAX; 
011D:  CLRF   28
011E:  MOVLW  78
011F:  MOVWF  27
....................       Lmotor=SPEEDMAX; 
0120:  CLRF   26
0121:  MOVWF  25
....................       line=S; 
0122:  MOVLW  02
0123:  MOVWF  22
....................       if (rovinka<255) rovinka++; 
0124:  INCFSZ 24,W
0125:  GOTO   127
0126:  GOTO   128
0127:  INCF   24,F
....................       return; 
0128:  GOTO   163
....................    } 
....................  
....................    if ((L==line) || (R==line)) // Brzdeni pri vyjeti z trate 
0129:  DECFSZ 22,W
012A:  GOTO   12C
012B:  GOTO   12F
012C:  MOVF   22,F
012D:  BTFSS  03.2
012E:  GOTO   160
....................    { 
....................       if (rovinka>250) 
012F:  MOVF   24,W
0130:  SUBLW  FA
0131:  BTFSC  03.0
0132:  GOTO   15F
....................       { 
....................          BL; BR; 
0133:  BSF    03.5
0134:  BCF    05.0
0135:  BCF    03.5
0136:  BCF    05.0
0137:  BSF    03.5
0138:  BCF    05.1
0139:  BCF    03.5
013A:  BSF    05.1
013B:  BSF    03.5
013C:  BCF    05.6
013D:  BCF    03.5
013E:  BCF    05.6
013F:  BSF    03.5
0140:  BCF    05.7
0141:  BCF    03.5
0142:  BSF    05.7
....................          for(n=1; n<(60); n++) {rtos_yield(); delay_us(500);}; 
0143:  CLRF   3F
0144:  MOVLW  01
0145:  MOVWF  3E
0146:  MOVF   3F,F
0147:  BTFSS  03.2
0148:  GOTO   15F
0149:  MOVF   3E,W
014A:  SUBLW  3B
014B:  BTFSS  03.0
014C:  GOTO   15F
014D:  MOVLW  53
014E:  MOVWF  35
014F:  MOVLW  01
0150:  MOVWF  36
0151:  BCF    0A.3
0152:  GOTO   234
0153:  CLRWDT
0154:  MOVLW  02
0155:  MOVWF  41
0156:  MOVLW  F7
0157:  MOVWF  42
0158:  CALL   024
0159:  DECFSZ 41,F
015A:  GOTO   156
015B:  INCF   3E,F
015C:  BTFSC  03.2
015D:  INCF   3F,F
015E:  GOTO   146
....................       }; 
....................       rovinka=0; 
015F:  CLRF   24
....................    } 
....................     
....................    if(bit_test(sensors,7))       // zjisti jestli neni cihla 
0160:  BTFSS  21.7
0161:  GOTO   163
....................    { 
....................       rtos_terminate(); 
0162:  GOTO   241
....................    } 
.................... } 
0163:  MOVLW  51
0164:  MOVWF  35
0165:  MOVLW  00
0166:  MOVWF  36
0167:  BCF    0A.3
0168:  GOTO   234
0169:  RETLW  00
....................  
....................  
....................  
.................... //////////////////////////////////////////////////////////////////////////////// 
.................... void main() 
.................... { 
*
0182:  CLRF   04
0183:  MOVLW  1F
0184:  ANDWF  03,F
0185:  MOVLW  70
0186:  BSF    03.5
0187:  MOVWF  0F
0188:  BCF    1F.4
0189:  BCF    1F.5
018A:  MOVF   1B,W
018B:  ANDLW  80
018C:  MOVWF  1B
018D:  MOVLW  07
018E:  MOVWF  1C
....................    unsigned int16 i; 
....................    unsigned int8 last; 
....................  
....................    setup_adc_ports(NO_ANALOGS); 
018F:  BCF    1F.4
0190:  BCF    1F.5
0191:  MOVF   1B,W
0192:  ANDLW  80
0193:  MOVWF  1B
....................    setup_adc(ADC_CLOCK_INTERNAL); 
0194:  BCF    1F.6
0195:  BCF    03.5
0196:  BSF    1F.6
0197:  BSF    1F.7
0198:  BSF    03.5
0199:  BCF    1F.7
019A:  BCF    03.5
019B:  BSF    1F.0
....................     setup_spi(SPI_MASTER|SPI_H_TO_L|SPI_XMIT_L_TO_H|SPI_CLK_DIV_4); 
019C:  BCF    14.5
019D:  BSF    03.5
019E:  BCF    06.2
019F:  BSF    06.1
01A0:  BCF    06.4
01A1:  MOVLW  30
01A2:  BCF    03.5
01A3:  MOVWF  14
01A4:  MOVLW  00
01A5:  BSF    03.5
01A6:  MOVWF  14
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 
01A7:  MOVF   01,W
01A8:  ANDLW  C7
01A9:  IORLW  08
01AA:  MOVWF  01
....................    setup_timer_1(T1_DISABLED); 
01AB:  BCF    03.5
01AC:  CLRF   10
....................    setup_oscillator(OSC_8MHZ|OSC_INTRC); 
01AD:  MOVLW  72
01AE:  BSF    03.5
01AF:  MOVWF  0F
....................  
....................    STOPR; STOPL;  // zastav motory 
01B0:  BCF    05.6
01B1:  BCF    03.5
01B2:  BCF    05.6
01B3:  BSF    03.5
01B4:  BCF    05.7
01B5:  BCF    03.5
01B6:  BCF    05.7
01B7:  BSF    03.5
01B8:  BCF    05.0
01B9:  BCF    03.5
01BA:  BCF    05.0
01BB:  BSF    03.5
01BC:  BCF    05.1
01BD:  BCF    03.5
01BE:  BCF    05.1
....................    Lmotor=0;Rmotor=0; 
01BF:  CLRF   26
01C0:  CLRF   25
01C1:  CLRF   28
01C2:  CLRF   27
....................  
....................    uhel=STRED;    // nastav zadni kolecko na stred 
01C3:  MOVLW  80
01C4:  MOVWF  23
....................    rovinka=0; 
01C5:  CLRF   24
....................  
....................    output_low(IRTX); // zapni IR vysilac 
01C6:  BSF    03.5
01C7:  BCF    06.2
01C8:  BCF    03.5
01C9:  BCF    06.2
....................  
....................    for(i=0;i<100;i++)   // pockej, nez se zadni kolecko vystredi 
01CA:  CLRF   38
01CB:  CLRF   37
01CC:  MOVF   38,F
01CD:  BTFSS  03.2
01CE:  GOTO   1DB
01CF:  MOVF   37,W
01D0:  SUBLW  63
01D1:  BTFSS  03.0
01D2:  GOTO   1DB
....................    { 
....................       diag(); 
01D3:  GOTO   16A
....................       delay_ms(16); 
01D4:  MOVLW  10
01D5:  MOVWF  3D
01D6:  CALL   00C
....................    } 
01D7:  INCF   37,F
01D8:  BTFSC  03.2
01D9:  INCF   38,F
01DA:  GOTO   1CC
.................... //      diagnostika(); 
....................  
....................    while(true) 
....................    { 
....................       rtos_run(); 
01DB:  CLRF   29
01DC:  CLRF   2B
01DD:  MOVLW  09
01DE:  MOVWF  2A
01DF:  CLRF   2D
01E0:  CLRF   2C
01E1:  MOVLW  34
01E2:  MOVWF  2E
01E3:  MOVLW  00
01E4:  MOVWF  2F
01E5:  CLRF   30
01E6:  CLRF   32
01E7:  MOVLW  01
01E8:  MOVWF  31
01E9:  CLRF   34
01EA:  CLRF   33
01EB:  MOVLW  51
01EC:  MOVWF  35
01ED:  MOVLW  00
01EE:  MOVWF  36
01EF:  CLRF   20
01F0:  MOVLW  00
01F1:  MOVWF  78
01F2:  IORLW  06
01F3:  MOVWF  12
01F4:  MOVLW  FA
01F5:  BSF    03.5
01F6:  MOVWF  12
01F7:  BCF    03.5
01F8:  BCF    0C.1
01F9:  MOVLW  00
01FA:  MOVWF  78
01FB:  IORLW  06
01FC:  MOVWF  12
01FD:  MOVLW  FA
01FE:  BSF    03.5
01FF:  MOVWF  12
0200:  BCF    03.5
0201:  BCF    0C.1
0202:  BCF    03.0
0203:  RLF    20,W
0204:  MOVWF  77
0205:  CALL   004
0206:  MOVWF  79
0207:  MOVLW  01
0208:  ADDWF  77,W
0209:  CALL   004
020A:  MOVWF  7A
020B:  MOVF   79,W
020C:  MOVWF  04
020D:  MOVF   00,W
020E:  MOVWF  79
020F:  INCF   04,F
0210:  MOVF   00,W
0211:  MOVWF  77
0212:  INCF   04,F
0213:  MOVF   00,W
0214:  MOVWF  78
0215:  INCF   04,F
0216:  INCF   00,F
0217:  MOVF   00,W
0218:  MOVWF  7A
0219:  BTFSS  03.2
021A:  GOTO   21E
021B:  INCF   04,F
021C:  INCF   00,F
021D:  DECF   04,F
021E:  INCF   04,F
021F:  MOVF   00,W
0220:  SUBWF  78,W
0221:  BTFSS  03.2
0222:  GOTO   236
0223:  MOVF   77,W
0224:  SUBWF  7A,W
0225:  BTFSS  03.2
0226:  GOTO   236
0227:  DECF   04,F
0228:  CLRF   00
0229:  INCF   04,F
022A:  CLRF   00
022B:  INCF   04,F
022C:  BTFSC  79.7
022D:  GOTO   236
022E:  INCF   04,F
022F:  MOVF   00,W
0230:  MOVWF  0A
0231:  DECF   04,F
0232:  MOVF   00,W
0233:  MOVWF  02
0234:  BCF    03.5
0235:  BCF    03.6
0236:  INCF   20,F
0237:  MOVLW  02
0238:  SUBWF  20,W
0239:  BTFSS  03.2
023A:  GOTO   202
023B:  CLRF   20
023C:  BTFSS  0C.1
023D:  GOTO   240
023E:  BSF    03.5
023F:  GOTO   200
0240:  GOTO   23C
0241:  MOVLW  FF
0242:  MOVWF  20
....................       STOPR; 
0243:  BSF    03.5
0244:  BCF    05.6
0245:  BCF    03.5
0246:  BCF    05.6
0247:  BSF    03.5
0248:  BCF    05.7
0249:  BCF    03.5
024A:  BCF    05.7
....................       STOPL; 
024B:  BSF    03.5
024C:  BCF    05.0
024D:  BCF    03.5
024E:  BCF    05.0
024F:  BSF    03.5
0250:  BCF    05.1
0251:  BCF    03.5
0252:  BCF    05.1
....................       while(true); 
0253:  GOTO   253
....................    } 
0254:  GOTO   1DB
.................... } 
0255:  SLEEP

Configuration Fuses:
   Word  1: 3F38   NOWDT NOPUT MCLR NOBROWNOUT NOLVP NOCPD NOWRT NODEBUG CCPB0 NOPROTECT INTRC_IO
   Word  2: 3FFC   NOFCMEN NOIESO