diff --git a/Firmware/ATU-10_FW_13/ATU-10.bmk b/Firmware/ATU-10_FW_13/ATU-10.bmk new file mode 100644 index 0000000..5179cc3 --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.bmk @@ -0,0 +1 @@ + diff --git a/Firmware/ATU-10_FW_13/ATU-10.brk b/Firmware/ATU-10_FW_13/ATU-10.brk new file mode 100644 index 0000000..7d476df --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.brk @@ -0,0 +1 @@ + diff --git a/Firmware/ATU-10_FW_13/ATU-10.cfg b/Firmware/ATU-10_FW_13/ATU-10.cfg new file mode 100644 index 0000000..9d9073e --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.cfg @@ -0,0 +1,24 @@ + + + + P16LF18877 + + 5 + + $008007:$2904 + + + $008008:$3E21 + + + $008009:$3F1F + + + $00800A:$3003 + + + $00800B:$0003 + + + + diff --git a/Firmware/ATU-10_FW_13/ATU-10.dbg b/Firmware/ATU-10_FW_13/ATU-10.dbg new file mode 100644 index 0000000..a9a778e Binary files /dev/null and b/Firmware/ATU-10_FW_13/ATU-10.dbg differ diff --git a/Firmware/ATU-10_FW_13/ATU-10.dct b/Firmware/ATU-10_FW_13/ATU-10.dct new file mode 100644 index 0000000..a6e6cf8 --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.dct @@ -0,0 +1,6491 @@ +____doifc +__ca2a +__ca2aw +__cc2d +__cc2dw +__cs2s +__flash_size +__fzins +__math_tempb +__math_tempbd +_adc_external_ref +_adc_external_vrefh +_adc_external_vrefl +_adc_internal_fvrh1 +_adc_internal_fvrh2 +_adc_internal_fvrh4 +_adc_internal_ref +_adc_internal_vrefh +_adc_internal_vrefl +abden +abden_bit +abdovf +abdovf_bit +acc0 +acc0_bit +acc1 +acc1_bit +acc10 +acc10_bit +acc11 +acc11_bit +acc12 +acc12_bit +acc13 +acc13_bit +acc14 +acc14_bit +acc15 +acc15_bit +acc2 +acc2_bit +acc3 +acc3_bit +acc4 +acc4_bit +acc5 +acc5_bit +acc6 +acc6_bit +acc7 +acc7_bit +acc8 +acc8_bit +acc9 +acc9_bit +accm +accm_bit +ackdt1 +ackdt1_bit +ackdt2 +ackdt2_bit +acken1 +acken1_bit +acken2 +acken2_bit +ackstat1 +ackstat1_bit +ackstat2 +ackstat2_bit +adacc +adacc0 +adacc0_bit +adacc1 +adacc1_bit +adacc10 +adacc10_bit +adacc11 +adacc11_bit +adacc12 +adacc12_bit +adacc13 +adacc13_bit +adacc14 +adacc14_bit +adacc15 +adacc15_bit +adacc2 +adacc2_bit +adacc3 +adacc3_bit +adacc4 +adacc4_bit +adacc5 +adacc5_bit +adacc6 +adacc6_bit +adacc7 +adacc7_bit +adacc8 +adacc8_bit +adacc9 +adacc9_bit +adacch +adaccl +adaclr +adaclr_bit +adacq +adacq0 +adacq0_bit +adacq1 +adacq1_bit +adacq2 +adacq2_bit +adacq3 +adacq3_bit +adacq4 +adacq4_bit +adacq5 +adacq5_bit +adacq6 +adacq6_bit +adacq7 +adacq7_bit +adact +adact0 +adact0_bit +adact1 +adact1_bit +adact2 +adact2_bit +adact3 +adact3_bit +adact4 +adact4_bit +adaov +adaov_bit +adc_get_sample +adc_get_sample_ptr +adc_init +adc_init_advanced +adc_read +adcactpps +adcactpps0 +adcactpps0_bit +adcactpps1 +adcactpps1_bit +adcactpps2 +adcactpps2_bit +adcactpps3 +adcactpps3_bit +adcactpps4 +adcactpps4_bit +adcalc0 +adcalc0_bit +adcalc1 +adcalc1_bit +adcalc2 +adcalc2_bit +adcap +adcap0 +adcap0_bit +adcap1 +adcap1_bit +adcap2 +adcap2_bit +adcap3 +adcap3_bit +adcap4 +adcap4_bit +adccs0 +adccs0_bit +adccs1 +adccs1_bit +adccs2 +adccs2_bit +adccs3 +adccs3_bit +adccs4 +adccs4_bit +adccs5 +adccs5_bit +adclk +adcmd +adcmd_bit +adcnt +adcnt0 +adcnt0_bit +adcnt1 +adcnt1_bit +adcnt2 +adcnt2_bit +adcnt3 +adcnt3_bit +adcnt4 +adcnt4_bit +adcnt5 +adcnt5_bit +adcnt6 +adcnt6_bit +adcnt7 +adcnt7_bit +adcon0 +adcon1 +adcon2 +adcon3 +adcont +adcont_bit +adcrs0 +adcrs0_bit +adcrs1 +adcrs1_bit +adcrs2 +adcrs2_bit +adcs +adcs_bit +add_32x32_fp +adden +adden_bit +addsen +addsen_bit +aderr +aderr0 +aderr0_bit +aderr1 +aderr1_bit +aderr10 +aderr10_bit +aderr11 +aderr11_bit +aderr12 +aderr12_bit +aderr13 +aderr13_bit +aderr14 +aderr14_bit +aderr15 +aderr15_bit +aderr2 +aderr2_bit +aderr3 +aderr3_bit +aderr4 +aderr4_bit +aderr5 +aderr5_bit +aderr6 +aderr6_bit +aderr7 +aderr7_bit +aderr8 +aderr8_bit +aderr9 +aderr9_bit +aderrh +aderrl +adfltr +adfltr0 +adfltr0_bit +adfltr1 +adfltr1_bit +adfltr10 +adfltr10_bit +adfltr11 +adfltr11_bit +adfltr12 +adfltr12_bit +adfltr13 +adfltr13_bit +adfltr14 +adfltr14_bit +adfltr15 +adfltr15_bit +adfltr2 +adfltr2_bit +adfltr3 +adfltr3_bit +adfltr4 +adfltr4_bit +adfltr5 +adfltr5_bit +adfltr6 +adfltr6_bit +adfltr7 +adfltr7_bit +adfltr8 +adfltr8_bit +adfltr9 +adfltr9_bit +adfltrh +adfltrl +adfm0 +adfm0_bit +adfrm0 +adfrm0_bit +adfvr0 +adfvr0_bit +adfvr1 +adfvr1_bit +adgo +adgo_bit +adgpol +adgpol_bit +adie +adie_bit +adif +adif_bit +adipen +adipen_bit +adlth +adlth0 +adlth0_bit +adlth1 +adlth1_bit +adlth10 +adlth10_bit +adlth11 +adlth11_bit +adlth12 +adlth12_bit +adlth13 +adlth13_bit +adlth14 +adlth14_bit +adlth15 +adlth15_bit +adlth2 +adlth2_bit +adlth3 +adlth3_bit +adlth4 +adlth4_bit +adlth5 +adlth5_bit +adlth6 +adlth6_bit +adlth7 +adlth7_bit +adlth8 +adlth8_bit +adlth9 +adlth9_bit +adlthh +adlthl +adlthr +adlthr_bit +admact +admact_bit +admath +admath_bit +admd0 +admd0_bit +admd1 +admd1_bit +admd2 +admd2_bit +admsk11 +admsk11_bit +admsk12 +admsk12_bit +admsk21 +admsk21_bit +admsk22 +admsk22_bit +admsk31 +admsk31_bit +admsk32 +admsk32_bit +admsk41 +admsk41_bit +admsk42 +admsk42_bit +admsk51 +admsk51_bit +admsk52 +admsk52_bit +adnref +adnref_bit +adoen +adoen_bit +adon +adon_bit +ador +ador_bit +adpch +adpch0 +adpch0_bit +adpch1 +adpch1_bit +adpch2 +adpch2_bit +adpch3 +adpch3_bit +adpch4 +adpch4_bit +adpch5 +adpch5_bit +adppol +adppol_bit +adpre +adpre0 +adpre0_bit +adpre1 +adpre1_bit +adpre2 +adpre2_bit +adpre3 +adpre3_bit +adpre4 +adpre4_bit +adpre5 +adpre5_bit +adpre6 +adpre6_bit +adpre7 +adpre7_bit +adpref0 +adpref0_bit +adpref1 +adpref1_bit +adprev +adprev0 +adprev0_bit +adprev1 +adprev1_bit +adprev10 +adprev10_bit +adprev11 +adprev11_bit +adprev12 +adprev12_bit +adprev13 +adprev13_bit +adprev14 +adprev14_bit +adprev15 +adprev15_bit +adprev2 +adprev2_bit +adprev3 +adprev3_bit +adprev4 +adprev4_bit +adprev5 +adprev5_bit +adprev6 +adprev6_bit +adprev7 +adprev7_bit +adprev8 +adprev8_bit +adprev9 +adprev9_bit +adprevh +adprevl +adpsis +adpsis_bit +adref +adres +adresh +adresl +adrpt +adrpt0 +adrpt0_bit +adrpt1 +adrpt1_bit +adrpt2 +adrpt2_bit +adrpt3 +adrpt3_bit +adrpt4 +adrpt4_bit +adrpt5 +adrpt5_bit +adrpt6 +adrpt6_bit +adrpt7 +adrpt7_bit +adsoi +adsoi_bit +adstat +adstat0 +adstat0_bit +adstat1 +adstat1_bit +adstat2 +adstat2_bit +adstpt +adstpt0 +adstpt0_bit +adstpt1 +adstpt1_bit +adstpt10 +adstpt10_bit +adstpt11 +adstpt11_bit +adstpt12 +adstpt12_bit +adstpt13 +adstpt13_bit +adstpt14 +adstpt14_bit +adstpt15 +adstpt15_bit +adstpt2 +adstpt2_bit +adstpt3 +adstpt3_bit +adstpt4 +adstpt4_bit +adstpt5 +adstpt5_bit +adstpt6 +adstpt6_bit +adstpt7 +adstpt7_bit +adstpt8 +adstpt8_bit +adstpt9 +adstpt9_bit +adstpth +adstptl +adtie +adtie_bit +adtif +adtif_bit +adtmd0 +adtmd0_bit +adtmd1 +adtmd1_bit +adtmd2 +adtmd2_bit +aduth +aduth0 +aduth0_bit +aduth1 +aduth1_bit +aduth10 +aduth10_bit +aduth11 +aduth11_bit +aduth12 +aduth12_bit +aduth13 +aduth13_bit +aduth14 +aduth14_bit +aduth15 +aduth15_bit +aduth2 +aduth2_bit +aduth3 +aduth3_bit +aduth4 +aduth4_bit +aduth5 +aduth5_bit +aduth6 +aduth6_bit +aduth7 +aduth7_bit +aduth8 +aduth8_bit +aduth9 +aduth9_bit +aduthh +aduthl +aduthr +aduthr_bit +ansa0 +ansa0_bit +ansa1 +ansa1_bit +ansa2 +ansa2_bit +ansa3 +ansa3_bit +ansa4 +ansa4_bit +ansa5 +ansa5_bit +ansa6 +ansa6_bit +ansa7 +ansa7_bit +ansb0 +ansb0_bit +ansb1 +ansb1_bit +ansb2 +ansb2_bit +ansb3 +ansb3_bit +ansb4 +ansb4_bit +ansb5 +ansb5_bit +ansb6 +ansb6_bit +ansb7 +ansb7_bit +ansc0 +ansc0_bit +ansc1 +ansc1_bit +ansc2 +ansc2_bit +ansc3 +ansc3_bit +ansc4 +ansc4_bit +ansc5 +ansc5_bit +ansc6 +ansc6_bit +ansc7 +ansc7_bit +ansd0 +ansd0_bit +ansd1 +ansd1_bit +ansd2 +ansd2_bit +ansd3 +ansd3_bit +ansd4 +ansd4_bit +ansd5 +ansd5_bit +ansd6 +ansd6_bit +ansd7 +ansd7_bit +anse0 +anse0_bit +anse1 +anse1_bit +anse2 +anse2_bit +ansela +anselb +anselc +anseld +ansele +atu_reset +auto_delta +b_long +b_short +b_xlong +b0 +b1 +b2 +b3 +b4 +b5 +b6 +b7 +baud1con +baudcon +baudcon1 +baudctl +baudctl1 +bcd2dec +bcd2dec16 +bcl1ie +bcl1ie_bit +bcl1if +bcl1if_bit +bcl2ie +bcl2ie_bit +bcl2if +bcl2if_bit +bf1 +bf1_bit +bf2 +bf2_bit +boot16_delay_5ms +borcon +borrdy +borrdy_bit +brg16 +brg16_bit +brgh +brgh_bit +bsr +bsr_shad +bsr0 +bsr0_bit +bsr1 +bsr1_bit +bsr2 +bsr2_bit +bsr3 +bsr3_bit +bsr4 +bsr4_bit +bsr5 +bsr5_bit +btn_1_cnt +btn_2_cnt +btn_cnt +btn_long +btn_short +btn_xlong +button +byte2double +bytetohex +bytetostr +bytetostrwithzeros +c +c_100 +c_1000 +c_22 +c_220 +c_2200 +c_47 +c_470 +c_bit +c_linear +c_shad +c_shad_bit +c_sw +c1hys +c1hys_bit +c1ie +c1ie_bit +c1if +c1if_bit +c1intn +c1intn_bit +c1intp +c1intp_bit +c1nch0 +c1nch0_bit +c1nch1 +c1nch1_bit +c1nch2 +c1nch2_bit +c1on +c1on_bit +c1pch0 +c1pch0_bit +c1pch1 +c1pch1_bit +c1pch2 +c1pch2_bit +c1pol +c1pol_bit +c1sp +c1sp_bit +c1sync +c1sync_bit +c1tsel0 +c1tsel0_bit +c1tsel1 +c1tsel1_bit +c2hys +c2hys_bit +c2ie +c2ie_bit +c2if +c2if_bit +c2intn +c2intn_bit +c2intp +c2intp_bit +c2nch0 +c2nch0_bit +c2nch1 +c2nch1_bit +c2nch2 +c2nch2_bit +c2on +c2on_bit +c2pch0 +c2pch0_bit +c2pch1 +c2pch1_bit +c2pch2 +c2pch2_bit +c2pol +c2pol_bit +c2sp +c2sp_bit +c2sync +c2sync_bit +c2tsel0 +c2tsel0_bit +c2tsel1 +c2tsel1_bit +c3tsel0 +c3tsel0_bit +c3tsel1 +c3tsel1_bit +c4tsel0 +c4tsel0_bit +c4tsel1 +c4tsel1_bit +c5tsel0 +c5tsel0_bit +c5tsel1 +c5tsel1_bit +cal01 +cal01_bit +cal03 +cal03_bit +cal05 +cal05_bit +cal11 +cal11_bit +cal13 +cal13_bit +cal15 +cal15_bit +cal21 +cal21_bit +cal23 +cal23_bit +cal25 +cal25_bit +cal31 +cal31_bit +cal33 +cal33_bit +cal35 +cal35_bit +cal41 +cal41_bit +cal43 +cal43_bit +cal45 +cal45_bit +cal51 +cal51_bit +cal53 +cal53_bit +cal55 +cal55_bit +cal61 +cal61_bit +cal63 +cal63_bit +cal65 +cal65_bit +cal71 +cal71_bit +cal73 +cal73_bit +cal75 +cal75_bit +cap +carry +carry_bit +ccdcon +ccden +ccden_bit +ccdna +ccdna0 +ccdna0_bit +ccdna1 +ccdna1_bit +ccdna2 +ccdna2_bit +ccdna3 +ccdna3_bit +ccdna4 +ccdna4_bit +ccdna5 +ccdna5_bit +ccdna6 +ccdna6_bit +ccdna7 +ccdna7_bit +ccdnb +ccdnb0 +ccdnb0_bit +ccdnb1 +ccdnb1_bit +ccdnb2 +ccdnb2_bit +ccdnb3 +ccdnb3_bit +ccdnb4 +ccdnb4_bit +ccdnb5 +ccdnb5_bit +ccdnb6 +ccdnb6_bit +ccdnb7 +ccdnb7_bit +ccdnc +ccdnc0 +ccdnc0_bit +ccdnc1 +ccdnc1_bit +ccdnc2 +ccdnc2_bit +ccdnc3 +ccdnc3_bit +ccdnc4 +ccdnc4_bit +ccdnc5 +ccdnc5_bit +ccdnc6 +ccdnc6_bit +ccdnc7 +ccdnc7_bit +ccdnd +ccdnd0 +ccdnd0_bit +ccdnd1 +ccdnd1_bit +ccdnd2 +ccdnd2_bit +ccdnd3 +ccdnd3_bit +ccdnd4 +ccdnd4_bit +ccdnd5 +ccdnd5_bit +ccdnd6 +ccdnd6_bit +ccdnd7 +ccdnd7_bit +ccdne +ccdne0 +ccdne0_bit +ccdne1 +ccdne1_bit +ccdne2 +ccdne2_bit +ccdpa +ccdpa0 +ccdpa0_bit +ccdpa1 +ccdpa1_bit +ccdpa2 +ccdpa2_bit +ccdpa3 +ccdpa3_bit +ccdpa4 +ccdpa4_bit +ccdpa5 +ccdpa5_bit +ccdpa6 +ccdpa6_bit +ccdpa7 +ccdpa7_bit +ccdpb +ccdpb0 +ccdpb0_bit +ccdpb1 +ccdpb1_bit +ccdpb2 +ccdpb2_bit +ccdpb3 +ccdpb3_bit +ccdpb4 +ccdpb4_bit +ccdpb5 +ccdpb5_bit +ccdpb6 +ccdpb6_bit +ccdpb7 +ccdpb7_bit +ccdpc +ccdpc0 +ccdpc0_bit +ccdpc1 +ccdpc1_bit +ccdpc2 +ccdpc2_bit +ccdpc3 +ccdpc3_bit +ccdpc4 +ccdpc4_bit +ccdpc5 +ccdpc5_bit +ccdpc6 +ccdpc6_bit +ccdpc7 +ccdpc7_bit +ccdpd +ccdpd0 +ccdpd0_bit +ccdpd1 +ccdpd1_bit +ccdpd2 +ccdpd2_bit +ccdpd3 +ccdpd3_bit +ccdpd4 +ccdpd4_bit +ccdpd5 +ccdpd5_bit +ccdpd6 +ccdpd6_bit +ccdpd7 +ccdpd7_bit +ccdpe +ccdpe0 +ccdpe0_bit +ccdpe1 +ccdpe1_bit +ccdpe2 +ccdpe2_bit +ccds0 +ccds0_bit +ccds1 +ccds1_bit +ccp1cap +ccp1con +ccp1cts0 +ccp1cts0_bit +ccp1cts1 +ccp1cts1_bit +ccp1cts2 +ccp1cts2_bit +ccp1en +ccp1en_bit +ccp1fmt +ccp1fmt_bit +ccp1ie +ccp1ie_bit +ccp1if +ccp1if_bit +ccp1md +ccp1md_bit +ccp1mode0 +ccp1mode0_bit +ccp1mode1 +ccp1mode1_bit +ccp1mode2 +ccp1mode2_bit +ccp1mode3 +ccp1mode3_bit +ccp1oe +ccp1oe_bit +ccp1out +ccp1out_bit +ccp1pps +ccp1pps0 +ccp1pps0_bit +ccp1pps1 +ccp1pps1_bit +ccp1pps2 +ccp1pps2_bit +ccp1pps3 +ccp1pps3_bit +ccp1pps4 +ccp1pps4_bit +ccp2cap +ccp2con +ccp2cts0 +ccp2cts0_bit +ccp2cts1 +ccp2cts1_bit +ccp2cts2 +ccp2cts2_bit +ccp2en +ccp2en_bit +ccp2fmt +ccp2fmt_bit +ccp2ie +ccp2ie_bit +ccp2if +ccp2if_bit +ccp2md +ccp2md_bit +ccp2mode0 +ccp2mode0_bit +ccp2mode1 +ccp2mode1_bit +ccp2mode2 +ccp2mode2_bit +ccp2mode3 +ccp2mode3_bit +ccp2oe +ccp2oe_bit +ccp2out +ccp2out_bit +ccp2pps +ccp2pps0 +ccp2pps0_bit +ccp2pps1 +ccp2pps1_bit +ccp2pps2 +ccp2pps2_bit +ccp2pps3 +ccp2pps3_bit +ccp2pps4 +ccp2pps4_bit +ccp3cap +ccp3con +ccp3cts0 +ccp3cts0_bit +ccp3cts1 +ccp3cts1_bit +ccp3cts2 +ccp3cts2_bit +ccp3en +ccp3en_bit +ccp3fmt +ccp3fmt_bit +ccp3ie +ccp3ie_bit +ccp3if +ccp3if_bit +ccp3md +ccp3md_bit +ccp3mode0 +ccp3mode0_bit +ccp3mode1 +ccp3mode1_bit +ccp3mode2 +ccp3mode2_bit +ccp3mode3 +ccp3mode3_bit +ccp3oe +ccp3oe_bit +ccp3out +ccp3out_bit +ccp3pps +ccp3pps0 +ccp3pps0_bit +ccp3pps1 +ccp3pps1_bit +ccp3pps2 +ccp3pps2_bit +ccp3pps3 +ccp3pps3_bit +ccp3pps4 +ccp3pps4_bit +ccp4cap +ccp4con +ccp4cts0 +ccp4cts0_bit +ccp4cts1 +ccp4cts1_bit +ccp4cts2 +ccp4cts2_bit +ccp4en +ccp4en_bit +ccp4fmt +ccp4fmt_bit +ccp4ie +ccp4ie_bit +ccp4if +ccp4if_bit +ccp4md +ccp4md_bit +ccp4mode0 +ccp4mode0_bit +ccp4mode1 +ccp4mode1_bit +ccp4mode2 +ccp4mode2_bit +ccp4mode3 +ccp4mode3_bit +ccp4oe +ccp4oe_bit +ccp4out +ccp4out_bit +ccp4pps +ccp4pps0 +ccp4pps0_bit +ccp4pps1 +ccp4pps1_bit +ccp4pps2 +ccp4pps2_bit +ccp4pps3 +ccp4pps3_bit +ccp4pps4 +ccp4pps4_bit +ccp5cap +ccp5con +ccp5cts0 +ccp5cts0_bit +ccp5cts1 +ccp5cts1_bit +ccp5cts2 +ccp5cts2_bit +ccp5en +ccp5en_bit +ccp5fmt +ccp5fmt_bit +ccp5ie +ccp5ie_bit +ccp5if +ccp5if_bit +ccp5md +ccp5md_bit +ccp5mode0 +ccp5mode0_bit +ccp5mode1 +ccp5mode1_bit +ccp5mode2 +ccp5mode2_bit +ccp5mode3 +ccp5mode3_bit +ccp5oe +ccp5oe_bit +ccp5out +ccp5out_bit +ccp5pps +ccp5pps0 +ccp5pps0_bit +ccp5pps1 +ccp5pps1_bit +ccp5pps2 +ccp5pps2_bit +ccp5pps3 +ccp5pps3_bit +ccp5pps4 +ccp5pps4_bit +ccp5pps5 +ccp5pps5_bit +ccpr1 +ccpr1h +ccpr1l +ccpr2 +ccpr2h +ccpr2l +ccpr3 +ccpr3h +ccpr3l +ccpr4 +ccpr4h +ccpr4l +ccpr5 +ccpr5h +ccpr5l +ccptmrs0 +ccptmrs1 +cdafvr0 +cdafvr0_bit +cdafvr1 +cdafvr1_bit +cdiv0 +cdiv0_bit +cdiv1 +cdiv1_bit +cdiv2 +cdiv2_bit +cdiv3 +cdiv3_bit +check_reset_flags +cke1 +cke1_bit +cke2 +cke2_bit +ckp1 +ckp1_bit +ckp2 +ckp2_bit +clc1con +clc1gls0 +clc1gls1 +clc1gls2 +clc1gls3 +clc1ie +clc1ie_bit +clc1if +clc1if_bit +clc1md +clc1md_bit +clc1pol +clc1sel0 +clc1sel1 +clc1sel2 +clc1sel3 +clc2con +clc2gls0 +clc2gls1 +clc2gls2 +clc2gls3 +clc2ie +clc2ie_bit +clc2if +clc2if_bit +clc2md +clc2md_bit +clc2pol +clc2sel0 +clc2sel1 +clc2sel2 +clc2sel3 +clc3con +clc3gls0 +clc3gls1 +clc3gls2 +clc3gls3 +clc3ie +clc3ie_bit +clc3if +clc3if_bit +clc3md +clc3md_bit +clc3pol +clc3sel0 +clc3sel1 +clc3sel2 +clc3sel3 +clc4con +clc4gls0 +clc4gls1 +clc4gls2 +clc4gls3 +clc4ie +clc4ie_bit +clc4if +clc4if_bit +clc4md +clc4md_bit +clc4pol +clc4sel0 +clc4sel1 +clc4sel2 +clc4sel3 +clcdata +clcin0pps +clcin0pps0 +clcin0pps0_bit +clcin0pps1 +clcin0pps1_bit +clcin0pps2 +clcin0pps2_bit +clcin0pps3 +clcin0pps3_bit +clcin0pps4 +clcin0pps4_bit +clcin1pps +clcin1pps0 +clcin1pps0_bit +clcin1pps1 +clcin1pps1_bit +clcin1pps2 +clcin1pps2_bit +clcin1pps3 +clcin1pps3_bit +clcin1pps4 +clcin1pps4_bit +clcin2pps +clcin2pps0 +clcin2pps0_bit +clcin2pps1 +clcin2pps1_bit +clcin2pps2 +clcin2pps2_bit +clcin2pps3 +clcin2pps3_bit +clcin2pps4 +clcin2pps4_bit +clcin3pps +clcin3pps0 +clcin3pps0_bit +clcin3pps1 +clcin3pps1_bit +clcin3pps2 +clcin3pps2_bit +clcin3pps3 +clcin3pps3_bit +clcin3pps4 +clcin3pps4_bit +clkrclk +clkrclk0 +clkrclk0_bit +clkrclk1 +clkrclk1_bit +clkrclk2 +clkrclk2_bit +clkrclk3 +clkrclk3_bit +clkrcon +clkrdc0 +clkrdc0_bit +clkrdc1 +clkrdc1_bit +clkrdiv0 +clkrdiv0_bit +clkrdiv1 +clkrdiv1_bit +clkrdiv2 +clkrdiv2_bit +clkren +clkren_bit +clkrmd +clkrmd_bit +cm1con0 +cm1con1 +cm1nsel +cm1psel +cm2con0 +cm2con1 +cm2nsel +cm2psel +cmout +cmp1md +cmp1md_bit +cmp2md +cmp2md_bit +cmstat +coarse_cap +coarse_tune +comfrem +compare_double +correction +cosc0 +cosc0_bit +cosc1 +cosc1_bit +cosc2 +cosc2_bit +cpudoze +crcacc +crcacch +crcaccl +crccon0 +crccon1 +crcdata +crcdath +crcdatl +crcen +crcen_bit +crcgo +crcgo_bit +crcie +crcie_bit +crcif +crcif_bit +crcmd +crcmd_bit +crcshft +crcshifth +crcshiftl +crcxor +crcxorh +crcxorl +cren +cren_bit +csrc +csrc_bit +cswhold +cswhold_bit +cswie +cswie_bit +cswif +cswif_bit +cwg1as0 +cwg1as1 +cwg1clkcon +cwg1con0 +cwg1con1 +cwg1cs +cwg1cs_bit +cwg1dbf +cwg1dbf0 +cwg1dbf0_bit +cwg1dbf1 +cwg1dbf1_bit +cwg1dbf2 +cwg1dbf2_bit +cwg1dbf3 +cwg1dbf3_bit +cwg1dbf4 +cwg1dbf4_bit +cwg1dbf5 +cwg1dbf5_bit +cwg1dbr +cwg1dbr0 +cwg1dbr0_bit +cwg1dbr1 +cwg1dbr1_bit +cwg1dbr2 +cwg1dbr2_bit +cwg1dbr3 +cwg1dbr3_bit +cwg1dbr4 +cwg1dbr4_bit +cwg1dbr5 +cwg1dbr5_bit +cwg1en +cwg1en_bit +cwg1ie +cwg1ie_bit +cwg1if +cwg1if_bit +cwg1in +cwg1in_bit +cwg1ism +cwg1ism0 +cwg1ism0_bit +cwg1ism1 +cwg1ism1_bit +cwg1ism2 +cwg1ism2_bit +cwg1ism3 +cwg1ism3_bit +cwg1ld +cwg1ld_bit +cwg1lsac0 +cwg1lsac0_bit +cwg1lsac1 +cwg1lsac1_bit +cwg1lsbd0 +cwg1lsbd0_bit +cwg1lsbd1 +cwg1lsbd1_bit +cwg1md +cwg1md_bit +cwg1mode0 +cwg1mode0_bit +cwg1mode1 +cwg1mode1_bit +cwg1mode2 +cwg1mode2_bit +cwg1ovra +cwg1ovra_bit +cwg1ovrb +cwg1ovrb_bit +cwg1ovrc +cwg1ovrc_bit +cwg1ovrd +cwg1ovrd_bit +cwg1pola +cwg1pola_bit +cwg1polb +cwg1polb_bit +cwg1polc +cwg1polc_bit +cwg1pold +cwg1pold_bit +cwg1pps +cwg1pps0 +cwg1pps0_bit +cwg1pps1 +cwg1pps1_bit +cwg1pps2 +cwg1pps2_bit +cwg1pps3 +cwg1pps3_bit +cwg1pps4 +cwg1pps4_bit +cwg1ren +cwg1ren_bit +cwg1shutdown +cwg1shutdown_bit +cwg1str +cwg1stra +cwg1stra_bit +cwg1strb +cwg1strb_bit +cwg1strc +cwg1strc_bit +cwg1strd +cwg1strd_bit +cwg2as0 +cwg2as1 +cwg2clkcon +cwg2con0 +cwg2con1 +cwg2cs +cwg2cs_bit +cwg2dbf +cwg2dbf0 +cwg2dbf0_bit +cwg2dbf1 +cwg2dbf1_bit +cwg2dbf2 +cwg2dbf2_bit +cwg2dbf3 +cwg2dbf3_bit +cwg2dbf4 +cwg2dbf4_bit +cwg2dbf5 +cwg2dbf5_bit +cwg2dbr +cwg2dbr0 +cwg2dbr0_bit +cwg2dbr1 +cwg2dbr1_bit +cwg2dbr2 +cwg2dbr2_bit +cwg2dbr3 +cwg2dbr3_bit +cwg2dbr4 +cwg2dbr4_bit +cwg2dbr5 +cwg2dbr5_bit +cwg2en +cwg2en_bit +cwg2ie +cwg2ie_bit +cwg2if +cwg2if_bit +cwg2in +cwg2in_bit +cwg2ism +cwg2ism0 +cwg2ism0_bit +cwg2ism1 +cwg2ism1_bit +cwg2ism2 +cwg2ism2_bit +cwg2ism3 +cwg2ism3_bit +cwg2ld +cwg2ld_bit +cwg2lsac0 +cwg2lsac0_bit +cwg2lsac1 +cwg2lsac1_bit +cwg2lsbd0 +cwg2lsbd0_bit +cwg2lsbd1 +cwg2lsbd1_bit +cwg2md +cwg2md_bit +cwg2mode0 +cwg2mode0_bit +cwg2mode1 +cwg2mode1_bit +cwg2mode2 +cwg2mode2_bit +cwg2ovra +cwg2ovra_bit +cwg2ovrb +cwg2ovrb_bit +cwg2ovrc +cwg2ovrc_bit +cwg2ovrd +cwg2ovrd_bit +cwg2pola +cwg2pola_bit +cwg2polb +cwg2polb_bit +cwg2polc +cwg2polc_bit +cwg2pold +cwg2pold_bit +cwg2pps +cwg2pps0 +cwg2pps0_bit +cwg2pps1 +cwg2pps1_bit +cwg2pps2 +cwg2pps2_bit +cwg2pps3 +cwg2pps3_bit +cwg2pps4 +cwg2pps4_bit +cwg2ren +cwg2ren_bit +cwg2shutdown +cwg2shutdown_bit +cwg2str +cwg2stra +cwg2stra_bit +cwg2strb +cwg2strb_bit +cwg2strc +cwg2strc_bit +cwg2strd +cwg2strd_bit +cwg3as0 +cwg3as1 +cwg3clkcon +cwg3con0 +cwg3con1 +cwg3cs +cwg3cs_bit +cwg3dbf +cwg3dbf0 +cwg3dbf0_bit +cwg3dbf1 +cwg3dbf1_bit +cwg3dbf2 +cwg3dbf2_bit +cwg3dbf3 +cwg3dbf3_bit +cwg3dbf4 +cwg3dbf4_bit +cwg3dbf5 +cwg3dbf5_bit +cwg3dbr +cwg3dbr0 +cwg3dbr0_bit +cwg3dbr1 +cwg3dbr1_bit +cwg3dbr2 +cwg3dbr2_bit +cwg3dbr3 +cwg3dbr3_bit +cwg3dbr4 +cwg3dbr4_bit +cwg3dbr5 +cwg3dbr5_bit +cwg3en +cwg3en_bit +cwg3ie +cwg3ie_bit +cwg3if +cwg3if_bit +cwg3in +cwg3in_bit +cwg3ism +cwg3ism0 +cwg3ism0_bit +cwg3ism1 +cwg3ism1_bit +cwg3ism2 +cwg3ism2_bit +cwg3ism3 +cwg3ism3_bit +cwg3ld +cwg3ld_bit +cwg3lsac0 +cwg3lsac0_bit +cwg3lsac1 +cwg3lsac1_bit +cwg3lsbd0 +cwg3lsbd0_bit +cwg3lsbd1 +cwg3lsbd1_bit +cwg3md +cwg3md_bit +cwg3mode0 +cwg3mode0_bit +cwg3mode1 +cwg3mode1_bit +cwg3mode2 +cwg3mode2_bit +cwg3ovra +cwg3ovra_bit +cwg3ovrb +cwg3ovrb_bit +cwg3ovrc +cwg3ovrc_bit +cwg3ovrd +cwg3ovrd_bit +cwg3pola +cwg3pola_bit +cwg3polb +cwg3polb_bit +cwg3polc +cwg3polc_bit +cwg3pold +cwg3pold_bit +cwg3pps +cwg3pps0 +cwg3pps0_bit +cwg3pps1 +cwg3pps1_bit +cwg3pps2 +cwg3pps2_bit +cwg3pps3 +cwg3pps3_bit +cwg3pps4 +cwg3pps4_bit +cwg3ren +cwg3ren_bit +cwg3shutdown +cwg3shutdown_bit +cwg3str +cwg3stra +cwg3stra_bit +cwg3strb +cwg3strb_bit +cwg3strc +cwg3strc_bit +cwg3strd +cwg3strd_bit +d_a1 +d_a1_bit +d_a2 +d_a2_bit +d_na1 +d_na1_bit +d_na2 +d_na2_bit +da1 +da1_bit +da2 +da2_bit +dabort +dabort_bit +dac1con0 +dac1con1 +dac1en +dac1en_bit +dac1nss +dac1nss_bit +dac1oe1 +dac1oe1_bit +dac1oe2 +dac1oe2_bit +dac1pss0 +dac1pss0_bit +dac1pss1 +dac1pss1_bit +dac1r0 +dac1r0_bit +dac1r1 +dac1r1_bit +dac1r2 +dac1r2_bit +dac1r3 +dac1r3_bit +dac1r4 +dac1r4_bit +dacmd +dacmd_bit +data_address1 +data_address1_bit +data_address2 +data_address2_bit +data0 +data0_bit +data1 +data1_bit +data10 +data10_bit +data11 +data11_bit +data12 +data12_bit +data13 +data13_bit +data14 +data14_bit +data15 +data15_bit +data2 +data2_bit +data3 +data3_bit +data4 +data4_bit +data5 +data5_bit +data6 +data6_bit +data7 +data7_bit +data8 +data8_bit +data9 +data9_bit +dc +dc_bit +dc_shad +dc_shad_bit +dec2bcd +dec2bcd16 +delay_100ms +delay_10ms +delay_10us +delay_1ms +delay_1sec +delay_1us +delay_22us +delay_500us +delay_50us +delay_5500us +delay_5ms +delay_80us +delay_8ms +delay_cyc +disp_cnt +disp_time +div_16x16_s +div_16x16_s_l +div_16x16_u +div_32x32_fp +div_32x32_s +div_32x32_u +div_8x8_s +div_8x8_u +dlen0 +dlen0_bit +dlen1 +dlen1_bit +dlen2 +dlen2_bit +dlen3 +dlen3_bit +doe +doe_bit +done +done_bit +double2byte +double2int +double2longint +double2longword +double2word +doze0 +doze0_bit +doze1 +doze1_bit +doze2 +doze2_bit +dozen +dozen_bit +draw_power +draw_swr +dsmmd +dsmmd_bit +e_long +e_short +equals_double +ext_long +extoen +extoen_bit +extor +extor_bit +f +ferr +ferr_bit +fixsign32 +floattostr +floattostr_fixlen +free +free_bit +fsr0 +fsr0h +fsr0h_shad +fsr0l +fsr0l_shad +fsr0ptr +fsr1 +fsr1h +fsr1h_shad +fsr1l +fsr1l_shad +fsr1ptr +full +full_bit +fvrcon +fvren +fvren_bit +fvrmd +fvrmd_bit +fvrrdy +fvrrdy_bit +g1en +g1en_bit +g2en +g2en_bit +g3en +g3en_bit +gcen1 +gcen1_bit +gcen2 +gcen2_bit +get_batt +get_forward +get_fosc_khz +get_pwr +get_reverse +get_swr +gie +gie_bit +go_ndone +go_ndone_bit +go_not_done +go_not_done_bit +gre +greating +green +hadr0 +hadr0_bit +hadr1 +hadr1_bit +hadr10 +hadr10_bit +hadr11 +hadr11_bit +hadr12 +hadr12_bit +hadr13 +hadr13_bit +hadr14 +hadr14_bit +hadr15 +hadr15_bit +hadr2 +hadr2_bit +hadr3 +hadr3_bit +hadr4 +hadr4_bit +hadr5 +hadr5_bit +hadr6 +hadr6_bit +hadr7 +hadr7_bit +hadr8 +hadr8_bit +hadr9 +hadr9_bit +hextobyte +hextoint +hextolong +hextolongint +hextoshort +hextoword +hffrq0 +hffrq0_bit +hffrq1 +hffrq1_bit +hffrq2 +hffrq2_bit +hfoen +hfoen_bit +hfor +hfor_bit +hftun0 +hftun0_bit +hftun1 +hftun1_bit +hftun2 +hftun2_bit +hftun3 +hftun3_bit +hftun4 +hftun4_bit +hftun5 +hftun5_bit +i2c_dat1 +i2c_dat1_bit +i2c_dat2 +i2c_dat2_bit +i2c_read1 +i2c_read1_bit +i2c_read2 +i2c_read2_bit +i2c_start1 +i2c_start1_bit +i2c_start2 +i2c_start2_bit +ics_auto +ics_off +idlen +idlen_bit +ind +indf0 +indf1 +inlvla +inlvla0 +inlvla0_bit +inlvla1 +inlvla1_bit +inlvla2 +inlvla2_bit +inlvla3 +inlvla3_bit +inlvla4 +inlvla4_bit +inlvla5 +inlvla5_bit +inlvla6 +inlvla6_bit +inlvla7 +inlvla7_bit +inlvlb +inlvlb0 +inlvlb0_bit +inlvlb1 +inlvlb1_bit +inlvlb2 +inlvlb2_bit +inlvlb3 +inlvlb3_bit +inlvlb4 +inlvlb4_bit +inlvlb5 +inlvlb5_bit +inlvlb6 +inlvlb6_bit +inlvlb7 +inlvlb7_bit +inlvlc +inlvlc0 +inlvlc0_bit +inlvlc1 +inlvlc1_bit +inlvlc2 +inlvlc2_bit +inlvlc3 +inlvlc3_bit +inlvlc4 +inlvlc4_bit +inlvlc5 +inlvlc5_bit +inlvlc6 +inlvlc6_bit +inlvlc7 +inlvlc7_bit +inlvld +inlvld0 +inlvld0_bit +inlvld1 +inlvld1_bit +inlvld2 +inlvld2_bit +inlvld3 +inlvld3_bit +inlvld4 +inlvld4_bit +inlvld5 +inlvld5_bit +inlvld6 +inlvld6_bit +inlvld7 +inlvld7_bit +inlvle +inlvle0 +inlvle0_bit +inlvle1 +inlvle1_bit +inlvle2 +inlvle2_bit +inlvle3 +inlvle3_bit +int2double +intcon +inte +inte_bit +intedg +intedg_bit +interupt +intf +intf_bit +intm +intm_bit +intpps +intpps0 +intpps0_bit +intpps1 +intpps1_bit +intpps2 +intpps2_bit +intpps3 +intpps3_bit +inttohex +inttostr +inttostrwithzeros +invalid +invalid_bit +iocaf +iocaf0 +iocaf0_bit +iocaf1 +iocaf1_bit +iocaf2 +iocaf2_bit +iocaf3 +iocaf3_bit +iocaf4 +iocaf4_bit +iocaf5 +iocaf5_bit +iocaf6 +iocaf6_bit +iocaf7 +iocaf7_bit +iocan +iocan0 +iocan0_bit +iocan1 +iocan1_bit +iocan2 +iocan2_bit +iocan3 +iocan3_bit +iocan4 +iocan4_bit +iocan5 +iocan5_bit +iocan6 +iocan6_bit +iocan7 +iocan7_bit +iocap +iocap0 +iocap0_bit +iocap1 +iocap1_bit +iocap2 +iocap2_bit +iocap3 +iocap3_bit +iocap4 +iocap4_bit +iocap5 +iocap5_bit +iocap6 +iocap6_bit +iocap7 +iocap7_bit +iocbf +iocbf0 +iocbf0_bit +iocbf1 +iocbf1_bit +iocbf2 +iocbf2_bit +iocbf3 +iocbf3_bit +iocbf4 +iocbf4_bit +iocbf5 +iocbf5_bit +iocbf6 +iocbf6_bit +iocbf7 +iocbf7_bit +iocbn +iocbn0 +iocbn0_bit +iocbn1 +iocbn1_bit +iocbn2 +iocbn2_bit +iocbn3 +iocbn3_bit +iocbn4 +iocbn4_bit +iocbn5 +iocbn5_bit +iocbn6 +iocbn6_bit +iocbn7 +iocbn7_bit +iocbp +iocbp0 +iocbp0_bit +iocbp1 +iocbp1_bit +iocbp2 +iocbp2_bit +iocbp3 +iocbp3_bit +iocbp4 +iocbp4_bit +iocbp5 +iocbp5_bit +iocbp6 +iocbp6_bit +iocbp7 +iocbp7_bit +ioccf +ioccf0 +ioccf0_bit +ioccf1 +ioccf1_bit +ioccf2 +ioccf2_bit +ioccf3 +ioccf3_bit +ioccf4 +ioccf4_bit +ioccf5 +ioccf5_bit +ioccf6 +ioccf6_bit +ioccf7 +ioccf7_bit +ioccn +ioccn0 +ioccn0_bit +ioccn1 +ioccn1_bit +ioccn2 +ioccn2_bit +ioccn3 +ioccn3_bit +ioccn4 +ioccn4_bit +ioccn5 +ioccn5_bit +ioccn6 +ioccn6_bit +ioccn7 +ioccn7_bit +ioccp +ioccp0 +ioccp0_bit +ioccp1 +ioccp1_bit +ioccp2 +ioccp2_bit +ioccp3 +ioccp3_bit +ioccp4 +ioccp4_bit +ioccp5 +ioccp5_bit +ioccp6 +ioccp6_bit +ioccp7 +ioccp7_bit +iocef +iocef3 +iocef3_bit +iocen +iocen3 +iocen3_bit +iocep +iocep3 +iocep3_bit +iocie +iocie_bit +iocif +iocif_bit +iocmd +iocmd_bit +l_010 +l_022 +l_045 +l_100 +l_1000 +l_220 +l_450 +l_linear +ladr0 +ladr0_bit +ladr1 +ladr1_bit +ladr10 +ladr10_bit +ladr11 +ladr11_bit +ladr12 +ladr12_bit +ladr13 +ladr13_bit +ladr14 +ladr14_bit +ladr15 +ladr15_bit +ladr2 +ladr2_bit +ladr3 +ladr3_bit +ladr4 +ladr4_bit +ladr5 +ladr5_bit +ladr6 +ladr6_bit +ladr7 +ladr7_bit +ladr8 +ladr8_bit +ladr9 +ladr9_bit +lata +lata0 +lata0_bit +lata1 +lata1_bit +lata2 +lata2_bit +lata3 +lata3_bit +lata4 +lata4_bit +lata5 +lata5_bit +lata6 +lata6_bit +lata7 +lata7_bit +latb +latb0 +latb0_bit +latb1 +latb1_bit +latb2 +latb2_bit +latb3 +latb3_bit +latb4 +latb4_bit +latb5 +latb5_bit +latb6 +latb6_bit +latb7 +latb7_bit +latc +latc0 +latc0_bit +latc1 +latc1_bit +latc2 +latc2_bit +latc3 +latc3_bit +latc4 +latc4_bit +latc5 +latc5_bit +latc6 +latc6_bit +latc7 +latc7_bit +latd +latd0 +latd0_bit +latd1 +latd1_bit +latd2 +latd2_bit +latd3 +latd3_bit +latd4 +latd4_bit +latd5 +latd5_bit +latd6 +latd6_bit +latd7 +latd7_bit +late +late0 +late0_bit +late1 +late1_bit +late2 +late2_bit +lc1d1s0 +lc1d1s0_bit +lc1d1s1 +lc1d1s1_bit +lc1d1s2 +lc1d1s2_bit +lc1d1s3 +lc1d1s3_bit +lc1d1s4 +lc1d1s4_bit +lc1d1s5 +lc1d1s5_bit +lc1d1s6 +lc1d1s6_bit +lc1d1s7 +lc1d1s7_bit +lc1d2s0 +lc1d2s0_bit +lc1d2s1 +lc1d2s1_bit +lc1d2s2 +lc1d2s2_bit +lc1d2s3 +lc1d2s3_bit +lc1d2s4 +lc1d2s4_bit +lc1d2s5 +lc1d2s5_bit +lc1d2s6 +lc1d2s6_bit +lc1d2s7 +lc1d2s7_bit +lc1d3s0 +lc1d3s0_bit +lc1d3s1 +lc1d3s1_bit +lc1d3s2 +lc1d3s2_bit +lc1d3s3 +lc1d3s3_bit +lc1d3s4 +lc1d3s4_bit +lc1d3s5 +lc1d3s5_bit +lc1d3s6 +lc1d3s6_bit +lc1d3s7 +lc1d3s7_bit +lc1d4s0 +lc1d4s0_bit +lc1d4s1 +lc1d4s1_bit +lc1d4s2 +lc1d4s2_bit +lc1d4s3 +lc1d4s3_bit +lc1d4s4 +lc1d4s4_bit +lc1d4s5 +lc1d4s5_bit +lc1d4s6 +lc1d4s6_bit +lc1d4s7 +lc1d4s7_bit +lc1en +lc1en_bit +lc1g1d1n +lc1g1d1n_bit +lc1g1d1t +lc1g1d1t_bit +lc1g1d2n +lc1g1d2n_bit +lc1g1d2t +lc1g1d2t_bit +lc1g1d3n +lc1g1d3n_bit +lc1g1d3t +lc1g1d3t_bit +lc1g1d4n +lc1g1d4n_bit +lc1g1d4t +lc1g1d4t_bit +lc1g1pol +lc1g1pol_bit +lc1g2d1n +lc1g2d1n_bit +lc1g2d1t +lc1g2d1t_bit +lc1g2d2n +lc1g2d2n_bit +lc1g2d2t +lc1g2d2t_bit +lc1g2d3n +lc1g2d3n_bit +lc1g2d3t +lc1g2d3t_bit +lc1g2d4n +lc1g2d4n_bit +lc1g2d4t +lc1g2d4t_bit +lc1g2pol +lc1g2pol_bit +lc1g3d1n +lc1g3d1n_bit +lc1g3d1t +lc1g3d1t_bit +lc1g3d2n +lc1g3d2n_bit +lc1g3d2t +lc1g3d2t_bit +lc1g3d3n +lc1g3d3n_bit +lc1g3d3t +lc1g3d3t_bit +lc1g3d4n +lc1g3d4n_bit +lc1g3d4t +lc1g3d4t_bit +lc1g3pol +lc1g3pol_bit +lc1g4d1n +lc1g4d1n_bit +lc1g4d1t +lc1g4d1t_bit +lc1g4d2n +lc1g4d2n_bit +lc1g4d2t +lc1g4d2t_bit +lc1g4d3n +lc1g4d3n_bit +lc1g4d3t +lc1g4d3t_bit +lc1g4d4n +lc1g4d4n_bit +lc1g4d4t +lc1g4d4t_bit +lc1g4pol +lc1g4pol_bit +lc1intn +lc1intn_bit +lc1intp +lc1intp_bit +lc1mode0 +lc1mode0_bit +lc1mode1 +lc1mode1_bit +lc1mode2 +lc1mode2_bit +lc1out +lc1out_bit +lc1pol +lc1pol_bit +lc2d1s0 +lc2d1s0_bit +lc2d1s1 +lc2d1s1_bit +lc2d1s2 +lc2d1s2_bit +lc2d1s3 +lc2d1s3_bit +lc2d1s4 +lc2d1s4_bit +lc2d1s5 +lc2d1s5_bit +lc2d1s6 +lc2d1s6_bit +lc2d1s7 +lc2d1s7_bit +lc2d2s0 +lc2d2s0_bit +lc2d2s1 +lc2d2s1_bit +lc2d2s2 +lc2d2s2_bit +lc2d2s3 +lc2d2s3_bit +lc2d2s4 +lc2d2s4_bit +lc2d2s5 +lc2d2s5_bit +lc2d2s6 +lc2d2s6_bit +lc2d2s7 +lc2d2s7_bit +lc2d3s0 +lc2d3s0_bit +lc2d3s1 +lc2d3s1_bit +lc2d3s2 +lc2d3s2_bit +lc2d3s3 +lc2d3s3_bit +lc2d3s4 +lc2d3s4_bit +lc2d3s5 +lc2d3s5_bit +lc2d3s6 +lc2d3s6_bit +lc2d3s7 +lc2d3s7_bit +lc2d4s0 +lc2d4s0_bit +lc2d4s1 +lc2d4s1_bit +lc2d4s2 +lc2d4s2_bit +lc2d4s3 +lc2d4s3_bit +lc2d4s4 +lc2d4s4_bit +lc2d4s5 +lc2d4s5_bit +lc2d4s6 +lc2d4s6_bit +lc2d4s7 +lc2d4s7_bit +lc2en +lc2en_bit +lc2g1d1n +lc2g1d1n_bit +lc2g1d1t +lc2g1d1t_bit +lc2g1d2n +lc2g1d2n_bit +lc2g1d2t +lc2g1d2t_bit +lc2g1d3n +lc2g1d3n_bit +lc2g1d3t +lc2g1d3t_bit +lc2g1d4n +lc2g1d4n_bit +lc2g1d4t +lc2g1d4t_bit +lc2g1pol +lc2g1pol_bit +lc2g2d1n +lc2g2d1n_bit +lc2g2d1t +lc2g2d1t_bit +lc2g2d2n +lc2g2d2n_bit +lc2g2d2t +lc2g2d2t_bit +lc2g2d3n +lc2g2d3n_bit +lc2g2d3t +lc2g2d3t_bit +lc2g2d4n +lc2g2d4n_bit +lc2g2d4t +lc2g2d4t_bit +lc2g2pol +lc2g2pol_bit +lc2g3d1n +lc2g3d1n_bit +lc2g3d1t +lc2g3d1t_bit +lc2g3d2n +lc2g3d2n_bit +lc2g3d2t +lc2g3d2t_bit +lc2g3d3n +lc2g3d3n_bit +lc2g3d3t +lc2g3d3t_bit +lc2g3d4n +lc2g3d4n_bit +lc2g3d4t +lc2g3d4t_bit +lc2g3pol +lc2g3pol_bit +lc2g4d1n +lc2g4d1n_bit +lc2g4d1t +lc2g4d1t_bit +lc2g4d2n +lc2g4d2n_bit +lc2g4d2t +lc2g4d2t_bit +lc2g4d3n +lc2g4d3n_bit +lc2g4d3t +lc2g4d3t_bit +lc2g4d4n +lc2g4d4n_bit +lc2g4d4t +lc2g4d4t_bit +lc2g4pol +lc2g4pol_bit +lc2intn +lc2intn_bit +lc2intp +lc2intp_bit +lc2mode0 +lc2mode0_bit +lc2mode1 +lc2mode1_bit +lc2mode2 +lc2mode2_bit +lc2out +lc2out_bit +lc2pol +lc2pol_bit +lc3d1s0 +lc3d1s0_bit +lc3d1s1 +lc3d1s1_bit +lc3d1s2 +lc3d1s2_bit +lc3d1s3 +lc3d1s3_bit +lc3d1s4 +lc3d1s4_bit +lc3d1s5 +lc3d1s5_bit +lc3d1s6 +lc3d1s6_bit +lc3d1s7 +lc3d1s7_bit +lc3d2s0 +lc3d2s0_bit +lc3d2s1 +lc3d2s1_bit +lc3d2s2 +lc3d2s2_bit +lc3d2s3 +lc3d2s3_bit +lc3d2s4 +lc3d2s4_bit +lc3d2s5 +lc3d2s5_bit +lc3d2s6 +lc3d2s6_bit +lc3d2s7 +lc3d2s7_bit +lc3d3s0 +lc3d3s0_bit +lc3d3s1 +lc3d3s1_bit +lc3d3s2 +lc3d3s2_bit +lc3d3s3 +lc3d3s3_bit +lc3d3s4 +lc3d3s4_bit +lc3d3s5 +lc3d3s5_bit +lc3d3s6 +lc3d3s6_bit +lc3d3s7 +lc3d3s7_bit +lc3d4s0 +lc3d4s0_bit +lc3d4s1 +lc3d4s1_bit +lc3d4s2 +lc3d4s2_bit +lc3d4s3 +lc3d4s3_bit +lc3d4s4 +lc3d4s4_bit +lc3d4s5 +lc3d4s5_bit +lc3d4s6 +lc3d4s6_bit +lc3d4s7 +lc3d4s7_bit +lc3en +lc3en_bit +lc3g1d1n +lc3g1d1n_bit +lc3g1d1t +lc3g1d1t_bit +lc3g1d2n +lc3g1d2n_bit +lc3g1d2t +lc3g1d2t_bit +lc3g1d3n +lc3g1d3n_bit +lc3g1d3t +lc3g1d3t_bit +lc3g1d4n +lc3g1d4n_bit +lc3g1d4t +lc3g1d4t_bit +lc3g1pol +lc3g1pol_bit +lc3g2d1n +lc3g2d1n_bit +lc3g2d1t +lc3g2d1t_bit +lc3g2d2n +lc3g2d2n_bit +lc3g2d2t +lc3g2d2t_bit +lc3g2d3n +lc3g2d3n_bit +lc3g2d3t +lc3g2d3t_bit +lc3g2d4n +lc3g2d4n_bit +lc3g2d4t +lc3g2d4t_bit +lc3g2pol +lc3g2pol_bit +lc3g3d1n +lc3g3d1n_bit +lc3g3d1t +lc3g3d1t_bit +lc3g3d2n +lc3g3d2n_bit +lc3g3d2t +lc3g3d2t_bit +lc3g3d3n +lc3g3d3n_bit +lc3g3d3t +lc3g3d3t_bit +lc3g3d4n +lc3g3d4n_bit +lc3g3d4t +lc3g3d4t_bit +lc3g3pol +lc3g3pol_bit +lc3g4d1n +lc3g4d1n_bit +lc3g4d1t +lc3g4d1t_bit +lc3g4d2n +lc3g4d2n_bit +lc3g4d2t +lc3g4d2t_bit +lc3g4d3n +lc3g4d3n_bit +lc3g4d3t +lc3g4d3t_bit +lc3g4d4n +lc3g4d4n_bit +lc3g4d4t +lc3g4d4t_bit +lc3g4pol +lc3g4pol_bit +lc3intn +lc3intn_bit +lc3intp +lc3intp_bit +lc3mode0 +lc3mode0_bit +lc3mode1 +lc3mode1_bit +lc3mode2 +lc3mode2_bit +lc3out +lc3out_bit +lc3pol +lc3pol_bit +lc4d1s0 +lc4d1s0_bit +lc4d1s1 +lc4d1s1_bit +lc4d1s2 +lc4d1s2_bit +lc4d1s3 +lc4d1s3_bit +lc4d1s4 +lc4d1s4_bit +lc4d1s5 +lc4d1s5_bit +lc4d1s6 +lc4d1s6_bit +lc4d1s7 +lc4d1s7_bit +lc4d2s0 +lc4d2s0_bit +lc4d2s1 +lc4d2s1_bit +lc4d2s2 +lc4d2s2_bit +lc4d2s3 +lc4d2s3_bit +lc4d2s4 +lc4d2s4_bit +lc4d2s5 +lc4d2s5_bit +lc4d2s6 +lc4d2s6_bit +lc4d2s7 +lc4d2s7_bit +lc4d3s0 +lc4d3s0_bit +lc4d3s1 +lc4d3s1_bit +lc4d3s2 +lc4d3s2_bit +lc4d3s3 +lc4d3s3_bit +lc4d3s4 +lc4d3s4_bit +lc4d3s5 +lc4d3s5_bit +lc4d3s6 +lc4d3s6_bit +lc4d3s7 +lc4d3s7_bit +lc4d4s0 +lc4d4s0_bit +lc4d4s1 +lc4d4s1_bit +lc4d4s2 +lc4d4s2_bit +lc4d4s3 +lc4d4s3_bit +lc4d4s4 +lc4d4s4_bit +lc4d4s5 +lc4d4s5_bit +lc4d4s6 +lc4d4s6_bit +lc4d4s7 +lc4d4s7_bit +lc4en +lc4en_bit +lc4g1d1n +lc4g1d1n_bit +lc4g1d1t +lc4g1d1t_bit +lc4g1d2n +lc4g1d2n_bit +lc4g1d2t +lc4g1d2t_bit +lc4g1d3n +lc4g1d3n_bit +lc4g1d3t +lc4g1d3t_bit +lc4g1d4n +lc4g1d4n_bit +lc4g1d4t +lc4g1d4t_bit +lc4g1pol +lc4g1pol_bit +lc4g2d1n +lc4g2d1n_bit +lc4g2d1t +lc4g2d1t_bit +lc4g2d2n +lc4g2d2n_bit +lc4g2d2t +lc4g2d2t_bit +lc4g2d3n +lc4g2d3n_bit +lc4g2d3t +lc4g2d3t_bit +lc4g2d4n +lc4g2d4n_bit +lc4g2d4t +lc4g2d4t_bit +lc4g2pol +lc4g2pol_bit +lc4g3d1n +lc4g3d1n_bit +lc4g3d1t +lc4g3d1t_bit +lc4g3d2n +lc4g3d2n_bit +lc4g3d2t +lc4g3d2t_bit +lc4g3d3n +lc4g3d3n_bit +lc4g3d3t +lc4g3d3t_bit +lc4g3d4n +lc4g3d4n_bit +lc4g3d4t +lc4g3d4t_bit +lc4g3pol +lc4g3pol_bit +lc4g4d1n +lc4g4d1n_bit +lc4g4d1t +lc4g4d1t_bit +lc4g4d2n +lc4g4d2n_bit +lc4g4d2t +lc4g4d2t_bit +lc4g4d3n +lc4g4d3n_bit +lc4g4d3t +lc4g4d3t_bit +lc4g4d4n +lc4g4d4n_bit +lc4g4d4t +lc4g4d4t_bit +lc4g4pol +lc4g4pol_bit +lc4intn +lc4intn_bit +lc4intp +lc4intp_bit +lc4mode0 +lc4mode0_bit +lc4mode1 +lc4mode1_bit +lc4mode2 +lc4mode2_bit +lc4out +lc4out_bit +lc4pol +lc4pol_bit +lfoen +lfoen_bit +lfor +lfor_bit +longint2double +longinttohex +longinttostrwithzeros +longtostr +longword2double +longwordtohex +longwordtostr +longwordtostrwithzeros +ltrim +lwlo +lwlo_bit +main +max_for_start +mc1out +mc1out_bit +mc2out +mc2out_bit +mdbit +mdbit_bit +mdcarh +mdcarhpps +mdcarhpps0 +mdcarhpps0_bit +mdcarhpps1 +mdcarhpps1_bit +mdcarhpps2 +mdcarhpps2_bit +mdcarhpps3 +mdcarhpps3_bit +mdcarhpps4 +mdcarhpps4_bit +mdcarl +mdcarlpps +mdcarlpps0 +mdcarlpps0_bit +mdcarlpps1 +mdcarlpps1_bit +mdcarlpps2 +mdcarlpps2_bit +mdcarlpps3 +mdcarlpps3_bit +mdcarlpps4 +mdcarlpps4_bit +mdch0 +mdch0_bit +mdch1 +mdch1_bit +mdch2 +mdch2_bit +mdch3 +mdch3_bit +mdchpol +mdchpol_bit +mdchsync +mdchsync_bit +mdcl0 +mdcl0_bit +mdcl1 +mdcl1_bit +mdcl2 +mdcl2_bit +mdcl3 +mdcl3_bit +mdclpol +mdclpol_bit +mdclsync +mdclsync_bit +mdcon0 +mdcon1 +mden +mden_bit +mdms0 +mdms0_bit +mdms1 +mdms1_bit +mdms2 +mdms2_bit +mdms3 +mdms3_bit +mdms4 +mdms4_bit +mdopol +mdopol_bit +mdout +mdout_bit +mdsrc +mdsrcpps +mdsrcpps0 +mdsrcpps0_bit +mdsrcpps1 +mdsrcpps1_bit +mdsrcpps2 +mdsrcpps2_bit +mdsrcpps3 +mdsrcpps3_bit +mdsrcpps4 +mdsrcpps4_bit +mfoen +mfoen_bit +mfor +mfor_bit +min_for_start +mlc1out +mlc1out_bit +mlc2out +mlc2out_bit +mlc3out +mlc3out_bit +mlc4out +mlc4out_bit +msk01 +msk01_bit +msk02 +msk02_bit +msk11 +msk11_bit +msk12 +msk12_bit +msk21 +msk21_bit +msk22 +msk22_bit +msk31 +msk31_bit +msk32 +msk32_bit +msk41 +msk41_bit +msk42 +msk42_bit +msk51 +msk51_bit +msk52 +msk52_bit +msk61 +msk61_bit +msk62 +msk62_bit +msk71 +msk71_bit +msk72 +msk72_bit +mssp1md +mssp1md_bit +mssp2md +mssp2md_bit +mul_16x16_s +mul_16x16_u +mul_32x32_fp +mul_32x32_s +mul_32x32_u +mul_8x8_s +mul_8x8_u +mult_mask +mult_shift +n1cks0 +n1cks0_bit +n1cks1 +n1cks1_bit +n1cks2 +n1cks2_bit +n1en +n1en_bit +n1out +n1out_bit +n1pfm +n1pfm_bit +n1pol +n1pol_bit +n1pws0 +n1pws0_bit +n1pws1 +n1pws1_bit +n1pws2 +n1pws2_bit +naddress1 +naddress1_bit +naddress2 +naddress2_bit +nbor +nbor_bit +nco1acc0 +nco1acc0_bit +nco1acc1 +nco1acc1_bit +nco1acc10 +nco1acc10_bit +nco1acc11 +nco1acc11_bit +nco1acc12 +nco1acc12_bit +nco1acc13 +nco1acc13_bit +nco1acc14 +nco1acc14_bit +nco1acc15 +nco1acc15_bit +nco1acc16 +nco1acc16_bit +nco1acc17 +nco1acc17_bit +nco1acc18 +nco1acc18_bit +nco1acc19 +nco1acc19_bit +nco1acc2 +nco1acc2_bit +nco1acc3 +nco1acc3_bit +nco1acc4 +nco1acc4_bit +nco1acc5 +nco1acc5_bit +nco1acc6 +nco1acc6_bit +nco1acc7 +nco1acc7_bit +nco1acc8 +nco1acc8_bit +nco1acc9 +nco1acc9_bit +nco1acch +nco1accl +nco1accu +nco1clk +nco1con +nco1ie +nco1ie_bit +nco1if +nco1if_bit +nco1inc0 +nco1inc0_bit +nco1inc1 +nco1inc1_bit +nco1inc10 +nco1inc10_bit +nco1inc11 +nco1inc11_bit +nco1inc12 +nco1inc12_bit +nco1inc13 +nco1inc13_bit +nco1inc14 +nco1inc14_bit +nco1inc15 +nco1inc15_bit +nco1inc16 +nco1inc16_bit +nco1inc17 +nco1inc17_bit +nco1inc18 +nco1inc18_bit +nco1inc19 +nco1inc19_bit +nco1inc2 +nco1inc2_bit +nco1inc3 +nco1inc3_bit +nco1inc4 +nco1inc4_bit +nco1inc5 +nco1inc5_bit +nco1inc6 +nco1inc6_bit +nco1inc7 +nco1inc7_bit +nco1inc8 +nco1inc8_bit +nco1inc9 +nco1inc9_bit +nco1inch +nco1incl +nco1incu +nco1md +nco1md_bit +ncoie +ncoie_bit +ncoif +ncoif_bit +ncomd +ncomd_bit +ndiv0 +ndiv0_bit +ndiv1 +ndiv1_bit +ndiv2 +ndiv2_bit +ndiv3 +ndiv3_bit +ndone +ndone_bit +nosc0 +nosc0_bit +nosc1 +nosc1_bit +nosc2 +nosc2_bit +noscr +noscr_bit +npd +npd_bit +npor +npor_bit +nri +nri_bit +nrm3232 +nrm4032 +nrmclr +nrmclr_bit +nrwdt +nrwdt_bit +nss +nss_bit +nt1sync +nt1sync_bit +nt3sync +nt3sync_bit +nt5sync +nt5sync_bit +nto +nto_bit +nvmadr0 +nvmadr0_bit +nvmadr1 +nvmadr1_bit +nvmadr10 +nvmadr10_bit +nvmadr11 +nvmadr11_bit +nvmadr12 +nvmadr12_bit +nvmadr13 +nvmadr13_bit +nvmadr14 +nvmadr14_bit +nvmadr2 +nvmadr2_bit +nvmadr3 +nvmadr3_bit +nvmadr4 +nvmadr4_bit +nvmadr5 +nvmadr5_bit +nvmadr6 +nvmadr6_bit +nvmadr7 +nvmadr7_bit +nvmadr8 +nvmadr8_bit +nvmadr9 +nvmadr9_bit +nvmadrh +nvmadrl +nvmcon1 +nvmcon2 +nvmdat0 +nvmdat0_bit +nvmdat1 +nvmdat1_bit +nvmdat10 +nvmdat10_bit +nvmdat11 +nvmdat11_bit +nvmdat12 +nvmdat12_bit +nvmdat13 +nvmdat13_bit +nvmdat2 +nvmdat2_bit +nvmdat3 +nvmdat3_bit +nvmdat4 +nvmdat4_bit +nvmdat5 +nvmdat5_bit +nvmdat6 +nvmdat6_bit +nvmdat7 +nvmdat7_bit +nvmdat8 +nvmdat8_bit +nvmdat9 +nvmdat9_bit +nvmdath +nvmdatl +nvmie +nvmie_bit +nvmif +nvmif_bit +nvmmd +nvmmd_bit +nvmregs +nvmregs_bit +nwdtwv +nwdtwv_bit +nwrite1 +nwrite1_bit +nwrite2 +nwrite2_bit +odca0 +odca0_bit +odca1 +odca1_bit +odca2 +odca2_bit +odca3 +odca3_bit +odca4 +odca4_bit +odca5 +odca5_bit +odca6 +odca6_bit +odca7 +odca7_bit +odcb0 +odcb0_bit +odcb1 +odcb1_bit +odcb2 +odcb2_bit +odcb3 +odcb3_bit +odcb4 +odcb4_bit +odcb5 +odcb5_bit +odcb6 +odcb6_bit +odcb7 +odcb7_bit +odcc0 +odcc0_bit +odcc1 +odcc1_bit +odcc2 +odcc2_bit +odcc3 +odcc3_bit +odcc4 +odcc4_bit +odcc5 +odcc5_bit +odcc6 +odcc6_bit +odcc7 +odcc7_bit +odcd0 +odcd0_bit +odcd1 +odcd1_bit +odcd2 +odcd2_bit +odcd3 +odcd3_bit +odcd4 +odcd4_bit +odcd5 +odcd5_bit +odcd6 +odcd6_bit +odcd7 +odcd7_bit +odce0 +odce0_bit +odce1 +odce1_bit +odce2 +odce2_bit +odcona +odconb +odconc +odcond +odcone +oe1 +oe1_bit +oe2 +oe2_bit +oerr +oerr_bit +off_cnt +off_time +oled_bat +oled_clear +oled_disp_off +oled_disp_on +oled_init +oled_pwd +oled_start +oled_voltage +oled_wr_str +oled_wr_str_s +ordy +ordy_bit +osccon1 +osccon2 +osccon3 +oscen +oscfrq +oscstat +osctune +osfie +osfie_bit +osfif +osfif_bit +overflow +p1m0 +p1m0_bit +p1m1 +p1m1_bit +p2m0 +p2m0_bit +p2m1 +p2m1_bit +p3m0 +p3m0_bit +p3m1 +p3m1_bit +p4m0 +p4m0_bit +p4m1 +p4m1_bit +p5m0 +p5m0_bit +p5m1 +p5m1_bit +p6tsel0 +p6tsel0_bit +p6tsel1 +p6tsel1_bit +p7tsel0 +p7tsel0_bit +p7tsel1 +p7tsel1_bit +pcl +pclath +pclath_shad +pcon0 +peie +peie_bit +pen1 +pen1_bit +pen2 +pen2_bit +pic_init +pie0 +pie1 +pie2 +pie3 +pie4 +pie5 +pie6 +pie7 +pie8 +pir0 +pir1 +pir2 +pir3 +pir4 +pir5 +pir6 +pir7 +pir8 +plen0 +plen0_bit +plen1 +plen1_bit +plen2 +plen2_bit +plen3 +plen3_bit +pllr +pllr_bit +pmd0 +pmd1 +pmd2 +pmd3 +pmd4 +pmd5 +port_to_tris_offset +porta +portb +portc +portd +porte +power_off +ppslock +ppslocked +ppslocked_bit +pr0 +pr1 +pr2 +pr3 +pr4 +pr5 +pr6 +pscnt0 +pscnt0_bit +pscnt1 +pscnt1_bit +pscnt10 +pscnt10_bit +pscnt11 +pscnt11_bit +pscnt12 +pscnt12_bit +pscnt13 +pscnt13_bit +pscnt14 +pscnt14_bit +pscnt15 +pscnt15_bit +pscnt16 +pscnt16_bit +pscnt17 +pscnt17_bit +pscnt2 +pscnt2_bit +pscnt3 +pscnt3_bit +pscnt4 +pscnt4_bit +pscnt5 +pscnt5_bit +pscnt6 +pscnt6_bit +pscnt7 +pscnt7_bit +pscnt8 +pscnt8_bit +pscnt9 +pscnt9_bit +pss0 +pss0_bit +pss1 +pss1_bit +pwm6con +pwm6dc +pwm6dc0 +pwm6dc0_bit +pwm6dc1 +pwm6dc1_bit +pwm6dc2 +pwm6dc2_bit +pwm6dc3 +pwm6dc3_bit +pwm6dc4 +pwm6dc4_bit +pwm6dc5 +pwm6dc5_bit +pwm6dc6 +pwm6dc6_bit +pwm6dc7 +pwm6dc7_bit +pwm6dc8 +pwm6dc8_bit +pwm6dc9 +pwm6dc9_bit +pwm6dch +pwm6dcl +pwm6en +pwm6en_bit +pwm6md +pwm6md_bit +pwm6out +pwm6out_bit +pwm6pol +pwm6pol_bit +pwm7con +pwm7dc +pwm7dc0 +pwm7dc0_bit +pwm7dc1 +pwm7dc1_bit +pwm7dc2 +pwm7dc2_bit +pwm7dc3 +pwm7dc3_bit +pwm7dc4 +pwm7dc4_bit +pwm7dc5 +pwm7dc5_bit +pwm7dc6 +pwm7dc6_bit +pwm7dc7 +pwm7dc7_bit +pwm7dc8 +pwm7dc8_bit +pwm7dc9 +pwm7dc9_bit +pwm7dch +pwm7dcl +pwm7en +pwm7en_bit +pwm7md +pwm7md_bit +pwm7out +pwm7out_bit +pwm7pol +pwm7pol_bit +pwr +pwr_fixed_old +r_nw1 +r_nw1_bit +r_nw2 +r_nw2_bit +r_w1 +r_w1_bit +r_w2 +r_w2_bit +r0 +r1 +r10 +r11 +r12 +r13 +r14 +r15 +r2 +r3 +r4 +r5 +r6 +r7 +r8 +r9 +ra0 +ra0_bit +ra0pps +ra0pps0 +ra0pps0_bit +ra0pps1 +ra0pps1_bit +ra0pps2 +ra0pps2_bit +ra0pps3 +ra0pps3_bit +ra0pps4 +ra0pps4_bit +ra0pps5 +ra0pps5_bit +ra1 +ra1_bit +ra1pps +ra1pps0 +ra1pps0_bit +ra1pps1 +ra1pps1_bit +ra1pps2 +ra1pps2_bit +ra1pps3 +ra1pps3_bit +ra1pps4 +ra1pps4_bit +ra1pps5 +ra1pps5_bit +ra2 +ra2_bit +ra2pps +ra2pps0 +ra2pps0_bit +ra2pps1 +ra2pps1_bit +ra2pps2 +ra2pps2_bit +ra2pps3 +ra2pps3_bit +ra2pps4 +ra2pps4_bit +ra2pps5 +ra2pps5_bit +ra3 +ra3_bit +ra3pps +ra3pps0 +ra3pps0_bit +ra3pps1 +ra3pps1_bit +ra3pps2 +ra3pps2_bit +ra3pps3 +ra3pps3_bit +ra3pps4 +ra3pps4_bit +ra3pps5 +ra3pps5_bit +ra4 +ra4_bit +ra4pps +ra4pps0 +ra4pps0_bit +ra4pps1 +ra4pps1_bit +ra4pps2 +ra4pps2_bit +ra4pps3 +ra4pps3_bit +ra4pps4 +ra4pps4_bit +ra4pps5 +ra4pps5_bit +ra5 +ra5_bit +ra5pps +ra5pps0 +ra5pps0_bit +ra5pps1 +ra5pps1_bit +ra5pps2 +ra5pps2_bit +ra5pps3 +ra5pps3_bit +ra5pps4 +ra5pps4_bit +ra5pps5 +ra5pps5_bit +ra6 +ra6_bit +ra6pps +ra6pps0 +ra6pps0_bit +ra6pps1 +ra6pps1_bit +ra6pps2 +ra6pps2_bit +ra6pps3 +ra6pps3_bit +ra6pps4 +ra6pps4_bit +ra6pps5 +ra6pps5_bit +ra7 +ra7_bit +ra7pps +ra7pps0 +ra7pps0_bit +ra7pps1 +ra7pps1_bit +ra7pps2 +ra7pps2_bit +ra7pps3 +ra7pps3_bit +ra7pps4 +ra7pps4_bit +ra7pps5 +ra7pps5_bit +rb0 +rb0_bit +rb0pps +rb0pps0 +rb0pps0_bit +rb0pps1 +rb0pps1_bit +rb0pps2 +rb0pps2_bit +rb0pps3 +rb0pps3_bit +rb0pps4 +rb0pps4_bit +rb0pps5 +rb0pps5_bit +rb1 +rb1_bit +rb1pps +rb1pps0 +rb1pps0_bit +rb1pps1 +rb1pps1_bit +rb1pps2 +rb1pps2_bit +rb1pps3 +rb1pps3_bit +rb1pps4 +rb1pps4_bit +rb1pps5 +rb1pps5_bit +rb2 +rb2_bit +rb2pps +rb2pps0 +rb2pps0_bit +rb2pps1 +rb2pps1_bit +rb2pps2 +rb2pps2_bit +rb2pps3 +rb2pps3_bit +rb2pps4 +rb2pps4_bit +rb2pps5 +rb2pps5_bit +rb3 +rb3_bit +rb3pps +rb3pps0 +rb3pps0_bit +rb3pps1 +rb3pps1_bit +rb3pps2 +rb3pps2_bit +rb3pps3 +rb3pps3_bit +rb3pps4 +rb3pps4_bit +rb3pps5 +rb3pps5_bit +rb4 +rb4_bit +rb4pps +rb4pps0 +rb4pps0_bit +rb4pps1 +rb4pps1_bit +rb4pps2 +rb4pps2_bit +rb4pps3 +rb4pps3_bit +rb4pps4 +rb4pps4_bit +rb4pps5 +rb4pps5_bit +rb5 +rb5_bit +rb5pps +rb5pps0 +rb5pps0_bit +rb5pps1 +rb5pps1_bit +rb5pps2 +rb5pps2_bit +rb5pps3 +rb5pps3_bit +rb5pps4 +rb5pps4_bit +rb5pps5 +rb5pps5_bit +rb6 +rb6_bit +rb6pps +rb6pps0 +rb6pps0_bit +rb6pps1 +rb6pps1_bit +rb6pps2 +rb6pps2_bit +rb6pps3 +rb6pps3_bit +rb6pps4 +rb6pps4_bit +rb6pps5 +rb6pps5_bit +rb7 +rb7_bit +rb7pps +rb7pps0 +rb7pps0_bit +rb7pps1 +rb7pps1_bit +rb7pps2 +rb7pps2_bit +rb7pps3 +rb7pps3_bit +rb7pps4 +rb7pps4_bit +rb7pps5 +rb7pps5_bit +rc0 +rc0_bit +rc0pps +rc0pps0 +rc0pps0_bit +rc0pps1 +rc0pps1_bit +rc0pps2 +rc0pps2_bit +rc0pps3 +rc0pps3_bit +rc0pps4 +rc0pps4_bit +rc0pps5 +rc0pps5_bit +rc1 +rc1_bit +rc1pps +rc1pps0 +rc1pps0_bit +rc1pps1 +rc1pps1_bit +rc1pps2 +rc1pps2_bit +rc1pps3 +rc1pps3_bit +rc1pps4 +rc1pps4_bit +rc1pps5 +rc1pps5_bit +rc1reg +rc1sta +rc2 +rc2_bit +rc2pps +rc2pps0 +rc2pps0_bit +rc2pps1 +rc2pps1_bit +rc2pps2 +rc2pps2_bit +rc2pps3 +rc2pps3_bit +rc2pps4 +rc2pps4_bit +rc2pps5 +rc2pps5_bit +rc3 +rc3_bit +rc3pps +rc3pps0 +rc3pps0_bit +rc3pps1 +rc3pps1_bit +rc3pps2 +rc3pps2_bit +rc3pps3 +rc3pps3_bit +rc3pps4 +rc3pps4_bit +rc3pps5 +rc3pps5_bit +rc4 +rc4_bit +rc4pps +rc4pps0 +rc4pps0_bit +rc4pps1 +rc4pps1_bit +rc4pps2 +rc4pps2_bit +rc4pps3 +rc4pps3_bit +rc4pps4 +rc4pps4_bit +rc4pps5 +rc4pps5_bit +rc5 +rc5_bit +rc5pps +rc5pps0 +rc5pps0_bit +rc5pps1 +rc5pps1_bit +rc5pps2 +rc5pps2_bit +rc5pps3 +rc5pps3_bit +rc5pps4 +rc5pps4_bit +rc5pps5 +rc5pps5_bit +rc6 +rc6_bit +rc6pps +rc6pps0 +rc6pps0_bit +rc6pps1 +rc6pps1_bit +rc6pps2 +rc6pps2_bit +rc6pps3 +rc6pps3_bit +rc6pps4 +rc6pps4_bit +rc6pps5 +rc6pps5_bit +rc7 +rc7_bit +rc7pps +rc7pps0 +rc7pps0_bit +rc7pps1 +rc7pps1_bit +rc7pps2 +rc7pps2_bit +rc7pps3 +rc7pps3_bit +rc7pps4 +rc7pps4_bit +rc7pps5 +rc7pps5_bit +rcen1 +rcen1_bit +rcen2 +rcen2_bit +rcidl +rcidl_bit +rcie +rcie_bit +rcif +rcif_bit +rcreg +rcreg1 +rcsta +rcsta1 +rd +rd_bit +rd0 +rd0_bit +rd0pps +rd0pps0 +rd0pps0_bit +rd0pps1 +rd0pps1_bit +rd0pps2 +rd0pps2_bit +rd0pps3 +rd0pps3_bit +rd0pps4 +rd0pps4_bit +rd0pps5 +rd0pps5_bit +rd1 +rd1_bit +rd161 +rd161_bit +rd163 +rd163_bit +rd165 +rd165_bit +rd1pps +rd1pps0 +rd1pps0_bit +rd1pps1 +rd1pps1_bit +rd1pps2 +rd1pps2_bit +rd1pps3 +rd1pps3_bit +rd1pps4 +rd1pps4_bit +rd1pps5 +rd1pps5_bit +rd2 +rd2_bit +rd2pps +rd2pps0 +rd2pps0_bit +rd2pps1 +rd2pps1_bit +rd2pps2 +rd2pps2_bit +rd2pps3 +rd2pps3_bit +rd2pps4 +rd2pps4_bit +rd2pps5 +rd2pps5_bit +rd3 +rd3_bit +rd3pps +rd3pps0 +rd3pps0_bit +rd3pps1 +rd3pps1_bit +rd3pps2 +rd3pps2_bit +rd3pps3 +rd3pps3_bit +rd3pps4 +rd3pps4_bit +rd3pps5 +rd3pps5_bit +rd4 +rd4_bit +rd4pps +rd4pps0 +rd4pps0_bit +rd4pps1 +rd4pps1_bit +rd4pps2 +rd4pps2_bit +rd4pps3 +rd4pps3_bit +rd4pps4 +rd4pps4_bit +rd4pps5 +rd4pps5_bit +rd5 +rd5_bit +rd5pps +rd5pps0 +rd5pps0_bit +rd5pps1 +rd5pps1_bit +rd5pps2 +rd5pps2_bit +rd5pps3 +rd5pps3_bit +rd5pps4 +rd5pps4_bit +rd5pps5 +rd5pps5_bit +rd6 +rd6_bit +rd6pps +rd6pps0 +rd6pps0_bit +rd6pps1 +rd6pps1_bit +rd6pps2 +rd6pps2_bit +rd6pps3 +rd6pps3_bit +rd6pps4 +rd6pps4_bit +rd6pps5 +rd6pps5_bit +rd7 +rd7_bit +rd7pps +rd7pps0 +rd7pps0_bit +rd7pps1 +rd7pps1_bit +rd7pps2 +rd7pps2_bit +rd7pps3 +rd7pps3_bit +rd7pps4 +rd7pps4_bit +rd7pps5 +rd7pps5_bit +re0 +re0_bit +re0pps +re0pps0 +re0pps0_bit +re0pps1 +re0pps1_bit +re0pps2 +re0pps2_bit +re0pps3 +re0pps3_bit +re0pps4 +re0pps4_bit +re0pps5 +re0pps5_bit +re1 +re1_bit +re1pps +re1pps0 +re1pps0_bit +re1pps1 +re1pps1_bit +re1pps2 +re1pps2_bit +re1pps3 +re1pps3_bit +re1pps4 +re1pps4_bit +re1pps5 +re1pps5_bit +re2 +re2_bit +re2pps +re2pps0 +re2pps0_bit +re2pps1 +re2pps1_bit +re2pps2 +re2pps2_bit +re2pps3 +re2pps3_bit +re2pps4 +re2pps4_bit +re2pps5 +re2pps5_bit +re3 +re3_bit +read_write1 +read_write1_bit +read_write2 +read_write2_bit +red +rel_del +rel_to_gnd +rel_to_plus_n +relay_set +res032 +rldl +roi +roi_bit +rsen1 +rsen1_bit +rsen2 +rsen2_bit +rtrim +rw1 +rw1_bit +rw2 +rw2_bit +rx9 +rx9_bit +rx9d +rx9d_bit +rxpps +rxpps0 +rxpps0_bit +rxpps1 +rxpps1_bit +rxpps2 +rxpps2_bit +rxpps3 +rxpps3_bit +rxpps4 +rxpps4_bit +sboren +sboren_bit +scanbusy +scanbusy_bit +scancon0 +scanen +scanen_bit +scango +scango_bit +scanhadr0 +scanhadr0_bit +scanhadr1 +scanhadr1_bit +scanhadr10 +scanhadr10_bit +scanhadr11 +scanhadr11_bit +scanhadr12 +scanhadr12_bit +scanhadr13 +scanhadr13_bit +scanhadr14 +scanhadr14_bit +scanhadr15 +scanhadr15_bit +scanhadr2 +scanhadr2_bit +scanhadr3 +scanhadr3_bit +scanhadr4 +scanhadr4_bit +scanhadr5 +scanhadr5_bit +scanhadr6 +scanhadr6_bit +scanhadr7 +scanhadr7_bit +scanhadr8 +scanhadr8_bit +scanhadr9 +scanhadr9_bit +scanhadrh +scanhadrl +scanie +scanie_bit +scanif +scanif_bit +scanintm +scanintm_bit +scaninvalid +scaninvalid_bit +scanladr0 +scanladr0_bit +scanladr1 +scanladr1_bit +scanladr10 +scanladr10_bit +scanladr11 +scanladr11_bit +scanladr12 +scanladr12_bit +scanladr13 +scanladr13_bit +scanladr14 +scanladr14_bit +scanladr15 +scanladr15_bit +scanladr2 +scanladr2_bit +scanladr3 +scanladr3_bit +scanladr4 +scanladr4_bit +scanladr5 +scanladr5_bit +scanladr6 +scanladr6_bit +scanladr7 +scanladr7_bit +scanladr8 +scanladr8_bit +scanladr9 +scanladr9_bit +scanladrh +scanladrl +scanmd +scanmd_bit +scanmode0 +scanmode0_bit +scanmode1 +scanmode1_bit +scantrig +scantsel0 +scantsel0_bit +scantsel1 +scantsel1_bit +scantsel2 +scantsel2_bit +scantsel3 +scantsel3_bit +sckp +sckp_bit +sdiv3232l +sen1 +sen1_bit +sen2 +sen2_bit +send_command +sendb +sendb_bit +set_addressing +setfdz32 +setfov32 +setfun32 +setiov3224 +sharp_cap +sharp_ind +shft0 +shft0_bit +shft1 +shft1_bit +shft10 +shft10_bit +shft11 +shft11_bit +shft12 +shft12_bit +shft13 +shft13_bit +shft14 +shft14_bit +shft15 +shft15_bit +shft2 +shft2_bit +shft3 +shft3_bit +shft4 +shft4_bit +shft5 +shft5_bit +shft6 +shft6_bit +shft7 +shft7_bit +shft8 +shft8_bit +shft9 +shft9_bit +shiftm +shiftm_bit +shorttohex +shorttostr +shorttostrwithzeros +slra0 +slra0_bit +slra1 +slra1_bit +slra2 +slra2_bit +slra3 +slra3_bit +slra4 +slra4_bit +slra5 +slra5_bit +slra6 +slra6_bit +slra7 +slra7_bit +slrb0 +slrb0_bit +slrb1 +slrb1_bit +slrb2 +slrb2_bit +slrb3 +slrb3_bit +slrb4 +slrb4_bit +slrb5 +slrb5_bit +slrb6 +slrb6_bit +slrb7 +slrb7_bit +slrc0 +slrc0_bit +slrc1 +slrc1_bit +slrc2 +slrc2_bit +slrc3 +slrc3_bit +slrc4 +slrc4_bit +slrc5 +slrc5_bit +slrc6 +slrc6_bit +slrc7 +slrc7_bit +slrcona +slrconb +slrconc +slrcond +slrcone +slrd0 +slrd0_bit +slrd1 +slrd1_bit +slrd2 +slrd2_bit +slrd3 +slrd3_bit +slrd4 +slrd4_bit +slrd5 +slrd5_bit +slrd6 +slrd6_bit +slrd7 +slrd7_bit +slre0 +slre0_bit +slre1 +slre1_bit +slre2 +slre2_bit +smp1 +smp1_bit +smp2 +smp2_bit +smt1as +smt1as_bit +smt1clk +smt1con0 +smt1con1 +smt1cpol +smt1cpol_bit +smt1cpr0 +smt1cpr0_bit +smt1cpr1 +smt1cpr1_bit +smt1cpr10 +smt1cpr10_bit +smt1cpr11 +smt1cpr11_bit +smt1cpr12 +smt1cpr12_bit +smt1cpr13 +smt1cpr13_bit +smt1cpr14 +smt1cpr14_bit +smt1cpr15 +smt1cpr15_bit +smt1cpr16 +smt1cpr16_bit +smt1cpr17 +smt1cpr17_bit +smt1cpr18 +smt1cpr18_bit +smt1cpr19 +smt1cpr19_bit +smt1cpr2 +smt1cpr2_bit +smt1cpr20 +smt1cpr20_bit +smt1cpr21 +smt1cpr21_bit +smt1cpr22 +smt1cpr22_bit +smt1cpr23 +smt1cpr23_bit +smt1cpr3 +smt1cpr3_bit +smt1cpr4 +smt1cpr4_bit +smt1cpr5 +smt1cpr5_bit +smt1cpr6 +smt1cpr6_bit +smt1cpr7 +smt1cpr7_bit +smt1cpr8 +smt1cpr8_bit +smt1cpr9 +smt1cpr9_bit +smt1cprh +smt1cprl +smt1cpru +smt1cprup +smt1cprup_bit +smt1cpw0 +smt1cpw0_bit +smt1cpw1 +smt1cpw1_bit +smt1cpw10 +smt1cpw10_bit +smt1cpw11 +smt1cpw11_bit +smt1cpw12 +smt1cpw12_bit +smt1cpw13 +smt1cpw13_bit +smt1cpw14 +smt1cpw14_bit +smt1cpw15 +smt1cpw15_bit +smt1cpw16 +smt1cpw16_bit +smt1cpw17 +smt1cpw17_bit +smt1cpw18 +smt1cpw18_bit +smt1cpw19 +smt1cpw19_bit +smt1cpw2 +smt1cpw2_bit +smt1cpw20 +smt1cpw20_bit +smt1cpw21 +smt1cpw21_bit +smt1cpw22 +smt1cpw22_bit +smt1cpw23 +smt1cpw23_bit +smt1cpw3 +smt1cpw3_bit +smt1cpw4 +smt1cpw4_bit +smt1cpw5 +smt1cpw5_bit +smt1cpw6 +smt1cpw6_bit +smt1cpw7 +smt1cpw7_bit +smt1cpw8 +smt1cpw8_bit +smt1cpw9 +smt1cpw9_bit +smt1cpwh +smt1cpwl +smt1cpwu +smt1cpwup +smt1cpwup_bit +smt1csel0 +smt1csel0_bit +smt1csel1 +smt1csel1_bit +smt1csel2 +smt1csel2_bit +smt1en +smt1en_bit +smt1go +smt1go_bit +smt1ie +smt1ie_bit +smt1if +smt1if_bit +smt1md +smt1md_bit +smt1pr0 +smt1pr0_bit +smt1pr1 +smt1pr1_bit +smt1pr10 +smt1pr10_bit +smt1pr11 +smt1pr11_bit +smt1pr12 +smt1pr12_bit +smt1pr13 +smt1pr13_bit +smt1pr14 +smt1pr14_bit +smt1pr15 +smt1pr15_bit +smt1pr16 +smt1pr16_bit +smt1pr17 +smt1pr17_bit +smt1pr18 +smt1pr18_bit +smt1pr19 +smt1pr19_bit +smt1pr2 +smt1pr2_bit +smt1pr20 +smt1pr20_bit +smt1pr21 +smt1pr21_bit +smt1pr22 +smt1pr22_bit +smt1pr23 +smt1pr23_bit +smt1pr3 +smt1pr3_bit +smt1pr4 +smt1pr4_bit +smt1pr5 +smt1pr5_bit +smt1pr6 +smt1pr6_bit +smt1pr7 +smt1pr7_bit +smt1pr8 +smt1pr8_bit +smt1pr9 +smt1pr9_bit +smt1praie +smt1praie_bit +smt1praif +smt1praif_bit +smt1prh +smt1prl +smt1pru +smt1ps0 +smt1ps0_bit +smt1ps1 +smt1ps1_bit +smt1pwaie +smt1pwaie_bit +smt1pwaif +smt1pwaif_bit +smt1repeat +smt1repeat_bit +smt1reset +smt1reset_bit +smt1rst +smt1rst_bit +smt1sig +smt1sigpps +smt1spol +smt1spol_bit +smt1ssel0 +smt1ssel0_bit +smt1ssel1 +smt1ssel1_bit +smt1ssel2 +smt1ssel2_bit +smt1ssel3 +smt1ssel3_bit +smt1ssel4 +smt1ssel4_bit +smt1stat +smt1stp +smt1stp_bit +smt1tmr0 +smt1tmr0_bit +smt1tmr1 +smt1tmr1_bit +smt1tmr10 +smt1tmr10_bit +smt1tmr11 +smt1tmr11_bit +smt1tmr12 +smt1tmr12_bit +smt1tmr13 +smt1tmr13_bit +smt1tmr14 +smt1tmr14_bit +smt1tmr15 +smt1tmr15_bit +smt1tmr16 +smt1tmr16_bit +smt1tmr17 +smt1tmr17_bit +smt1tmr18 +smt1tmr18_bit +smt1tmr19 +smt1tmr19_bit +smt1tmr2 +smt1tmr2_bit +smt1tmr20 +smt1tmr20_bit +smt1tmr21 +smt1tmr21_bit +smt1tmr22 +smt1tmr22_bit +smt1tmr23 +smt1tmr23_bit +smt1tmr3 +smt1tmr3_bit +smt1tmr4 +smt1tmr4_bit +smt1tmr5 +smt1tmr5_bit +smt1tmr6 +smt1tmr6_bit +smt1tmr7 +smt1tmr7_bit +smt1tmr8 +smt1tmr8_bit +smt1tmr9 +smt1tmr9_bit +smt1tmrh +smt1tmrl +smt1tmru +smt1ts +smt1ts_bit +smt1win +smt1winpps +smt1wol +smt1wol_bit +smt1ws +smt1ws_bit +smt1wsel0 +smt1wsel0_bit +smt1wsel1 +smt1wsel1_bit +smt1wsel2 +smt1wsel2_bit +smt1wsel3 +smt1wsel3_bit +smt1wsel4 +smt1wsel4_bit +smt2as +smt2as_bit +smt2clk +smt2con0 +smt2con1 +smt2cpol +smt2cpol_bit +smt2cpr0 +smt2cpr0_bit +smt2cpr1 +smt2cpr1_bit +smt2cpr10 +smt2cpr10_bit +smt2cpr11 +smt2cpr11_bit +smt2cpr12 +smt2cpr12_bit +smt2cpr13 +smt2cpr13_bit +smt2cpr14 +smt2cpr14_bit +smt2cpr15 +smt2cpr15_bit +smt2cpr16 +smt2cpr16_bit +smt2cpr17 +smt2cpr17_bit +smt2cpr18 +smt2cpr18_bit +smt2cpr19 +smt2cpr19_bit +smt2cpr2 +smt2cpr2_bit +smt2cpr20 +smt2cpr20_bit +smt2cpr21 +smt2cpr21_bit +smt2cpr22 +smt2cpr22_bit +smt2cpr23 +smt2cpr23_bit +smt2cpr3 +smt2cpr3_bit +smt2cpr4 +smt2cpr4_bit +smt2cpr5 +smt2cpr5_bit +smt2cpr6 +smt2cpr6_bit +smt2cpr7 +smt2cpr7_bit +smt2cpr8 +smt2cpr8_bit +smt2cpr9 +smt2cpr9_bit +smt2cprh +smt2cprl +smt2cpru +smt2cprup +smt2cprup_bit +smt2cpw0 +smt2cpw0_bit +smt2cpw1 +smt2cpw1_bit +smt2cpw10 +smt2cpw10_bit +smt2cpw11 +smt2cpw11_bit +smt2cpw12 +smt2cpw12_bit +smt2cpw13 +smt2cpw13_bit +smt2cpw14 +smt2cpw14_bit +smt2cpw15 +smt2cpw15_bit +smt2cpw16 +smt2cpw16_bit +smt2cpw17 +smt2cpw17_bit +smt2cpw18 +smt2cpw18_bit +smt2cpw19 +smt2cpw19_bit +smt2cpw2 +smt2cpw2_bit +smt2cpw20 +smt2cpw20_bit +smt2cpw21 +smt2cpw21_bit +smt2cpw22 +smt2cpw22_bit +smt2cpw23 +smt2cpw23_bit +smt2cpw3 +smt2cpw3_bit +smt2cpw4 +smt2cpw4_bit +smt2cpw5 +smt2cpw5_bit +smt2cpw6 +smt2cpw6_bit +smt2cpw7 +smt2cpw7_bit +smt2cpw8 +smt2cpw8_bit +smt2cpw9 +smt2cpw9_bit +smt2cpwh +smt2cpwl +smt2cpwu +smt2cpwup +smt2cpwup_bit +smt2csel0 +smt2csel0_bit +smt2csel1 +smt2csel1_bit +smt2csel2 +smt2csel2_bit +smt2en +smt2en_bit +smt2go +smt2go_bit +smt2ie +smt2ie_bit +smt2if +smt2if_bit +smt2md +smt2md_bit +smt2pr0 +smt2pr0_bit +smt2pr1 +smt2pr1_bit +smt2pr10 +smt2pr10_bit +smt2pr11 +smt2pr11_bit +smt2pr12 +smt2pr12_bit +smt2pr13 +smt2pr13_bit +smt2pr14 +smt2pr14_bit +smt2pr15 +smt2pr15_bit +smt2pr16 +smt2pr16_bit +smt2pr17 +smt2pr17_bit +smt2pr18 +smt2pr18_bit +smt2pr19 +smt2pr19_bit +smt2pr2 +smt2pr2_bit +smt2pr20 +smt2pr20_bit +smt2pr21 +smt2pr21_bit +smt2pr22 +smt2pr22_bit +smt2pr23 +smt2pr23_bit +smt2pr3 +smt2pr3_bit +smt2pr4 +smt2pr4_bit +smt2pr5 +smt2pr5_bit +smt2pr6 +smt2pr6_bit +smt2pr7 +smt2pr7_bit +smt2pr8 +smt2pr8_bit +smt2pr9 +smt2pr9_bit +smt2praie +smt2praie_bit +smt2praif +smt2praif_bit +smt2prh +smt2prl +smt2pru +smt2ps0 +smt2ps0_bit +smt2ps1 +smt2ps1_bit +smt2pwaie +smt2pwaie_bit +smt2pwaif +smt2pwaif_bit +smt2repeat +smt2repeat_bit +smt2reset +smt2reset_bit +smt2rst +smt2rst_bit +smt2sig +smt2sigpps +smt2spol +smt2spol_bit +smt2ssel0 +smt2ssel0_bit +smt2ssel1 +smt2ssel1_bit +smt2ssel2 +smt2ssel2_bit +smt2ssel3 +smt2ssel3_bit +smt2ssel4 +smt2ssel4_bit +smt2stat +smt2stp +smt2stp_bit +smt2tmr0 +smt2tmr0_bit +smt2tmr1 +smt2tmr1_bit +smt2tmr10 +smt2tmr10_bit +smt2tmr11 +smt2tmr11_bit +smt2tmr12 +smt2tmr12_bit +smt2tmr13 +smt2tmr13_bit +smt2tmr14 +smt2tmr14_bit +smt2tmr15 +smt2tmr15_bit +smt2tmr16 +smt2tmr16_bit +smt2tmr17 +smt2tmr17_bit +smt2tmr18 +smt2tmr18_bit +smt2tmr19 +smt2tmr19_bit +smt2tmr2 +smt2tmr2_bit +smt2tmr20 +smt2tmr20_bit +smt2tmr21 +smt2tmr21_bit +smt2tmr22 +smt2tmr22_bit +smt2tmr23 +smt2tmr23_bit +smt2tmr3 +smt2tmr3_bit +smt2tmr4 +smt2tmr4_bit +smt2tmr5 +smt2tmr5_bit +smt2tmr6 +smt2tmr6_bit +smt2tmr7 +smt2tmr7_bit +smt2tmr8 +smt2tmr8_bit +smt2tmr9 +smt2tmr9_bit +smt2tmrh +smt2tmrl +smt2tmru +smt2ts +smt2ts_bit +smt2win +smt2winpps +smt2wol +smt2wol_bit +smt2ws +smt2ws_bit +smt2wsel0 +smt2wsel0_bit +smt2wsel1 +smt2wsel1_bit +smt2wsel2 +smt2wsel2_bit +smt2wsel3 +smt2wsel3_bit +smt2wsel4 +smt2wsel4_bit +smu1sigpps0 +smu1sigpps0_bit +smu1sigpps1 +smu1sigpps1_bit +smu1sigpps2 +smu1sigpps2_bit +smu1sigpps3 +smu1sigpps3_bit +smu1sigpps4 +smu1sigpps4_bit +smu1winpps0 +smu1winpps0_bit +smu1winpps1 +smu1winpps1_bit +smu1winpps2 +smu1winpps2_bit +smu1winpps3 +smu1winpps3_bit +smu1winpps4 +smu1winpps4_bit +smu2sigpps0 +smu2sigpps0_bit +smu2sigpps1 +smu2sigpps1_bit +smu2sigpps2 +smu2sigpps2_bit +smu2sigpps3 +smu2sigpps3_bit +smu2sigpps4 +smu2sigpps4_bit +smu2winpps0 +smu2winpps0_bit +smu2winpps1 +smu2winpps1_bit +smu2winpps2 +smu2winpps2_bit +smu2winpps3 +smu2winpps3_bit +smu2winpps4 +smu2winpps4_bit +soft_i2c_ack +soft_i2c_init +soft_i2c_nack +soft_i2c_read +soft_i2c_start +soft_i2c_stop +soft_i2c_write +sor +sor_bit +soscen +soscen_bit +soscpwr +soscpwr_bit +sp1brg +sp1brgh +sp1brgl +spbrg +spbrg1 +spbrgh +spbrgh1 +spbrgl +spen +spen_bit +sren +sren_bit +ssp1add +ssp1buf +ssp1clkpps +ssp1clkpps0 +ssp1clkpps0_bit +ssp1clkpps1 +ssp1clkpps1_bit +ssp1clkpps2 +ssp1clkpps2_bit +ssp1clkpps3 +ssp1clkpps3_bit +ssp1clkpps4 +ssp1clkpps4_bit +ssp1con1 +ssp1con2 +ssp1con3 +ssp1datpps +ssp1datpps0 +ssp1datpps0_bit +ssp1datpps1 +ssp1datpps1_bit +ssp1datpps2 +ssp1datpps2_bit +ssp1datpps3 +ssp1datpps3_bit +ssp1datpps4 +ssp1datpps4_bit +ssp1ie +ssp1ie_bit +ssp1if +ssp1if_bit +ssp1msk +ssp1sspps +ssp1sspps0 +ssp1sspps0_bit +ssp1sspps1 +ssp1sspps1_bit +ssp1sspps2 +ssp1sspps2_bit +ssp1sspps3 +ssp1sspps3_bit +ssp1sspps4 +ssp1sspps4_bit +ssp1stat +ssp2add +ssp2buf +ssp2clkpps +ssp2clkpps0 +ssp2clkpps0_bit +ssp2clkpps1 +ssp2clkpps1_bit +ssp2clkpps2 +ssp2clkpps2_bit +ssp2clkpps3 +ssp2clkpps3_bit +ssp2clkpps4 +ssp2clkpps4_bit +ssp2con1 +ssp2con2 +ssp2con3 +ssp2datpps +ssp2datpps0 +ssp2datpps0_bit +ssp2datpps1 +ssp2datpps1_bit +ssp2datpps2 +ssp2datpps2_bit +ssp2datpps3 +ssp2datpps3_bit +ssp2datpps4 +ssp2datpps4_bit +ssp2ie +ssp2ie_bit +ssp2if +ssp2if_bit +ssp2msk +ssp2sspps +ssp2sspps0 +ssp2sspps0_bit +ssp2sspps1 +ssp2sspps1_bit +ssp2sspps2 +ssp2sspps2_bit +ssp2sspps3 +ssp2sspps3_bit +ssp2sspps4 +ssp2sspps4_bit +ssp2stat +sspen1 +sspen1_bit +sspen2 +sspen2_bit +sspm01 +sspm01_bit +sspm02 +sspm02_bit +sspm11 +sspm11_bit +sspm12 +sspm12_bit +sspm21 +sspm21_bit +sspm22 +sspm22_bit +sspm31 +sspm31_bit +sspm32 +sspm32_bit +sspov1 +sspov1_bit +sspov2 +sspov2_bit +start1 +start1_bit +start2 +start2_bit +state +state_bit +status +status_shad +step_cap +step_ind +stkovf +stkovf_bit +stkptr +stkunf +stkunf_bit +stop1 +stop1_bit +stop2 +stop2_bit +strtobyte +strtofloat +strtoint +strtolong +strtolongint +strtoshort +strtoword +sub_32x32_fp +sw +swap +swdten +swdten_bit +swr +swr_fixed_old +swr_ind +syscmd +syscmd_bit +t016bit +t016bit_bit +t0async +t0async_bit +t0ckipps +t0ckipps0 +t0ckipps0_bit +t0ckipps1 +t0ckipps1_bit +t0ckipps2 +t0ckipps2_bit +t0ckipps3 +t0ckipps3_bit +t0ckps0 +t0ckps0_bit +t0ckps1 +t0ckps1_bit +t0ckps2 +t0ckps2_bit +t0ckps3 +t0ckps3_bit +t0con0 +t0con1 +t0cs0 +t0cs0_bit +t0cs1 +t0cs1_bit +t0cs2 +t0cs2_bit +t0en +t0en_bit +t0out +t0out_bit +t0outps0 +t0outps0_bit +t0outps1 +t0outps1_bit +t0outps2 +t0outps2_bit +t0outps3 +t0outps3_bit +t0pr0 +t0pr0_bit +t0pr1 +t0pr1_bit +t0pr2 +t0pr2_bit +t0pr3 +t0pr3_bit +t0pr4 +t0pr4_bit +t0pr5 +t0pr5_bit +t0pr6 +t0pr6_bit +t0pr7 +t0pr7_bit +t0ps0 +t0ps0_bit +t0ps1 +t0ps1_bit +t0ps2 +t0ps2_bit +t0ps3 +t0ps3_bit +t1ckipps +t1ckipps0 +t1ckipps0_bit +t1ckipps1 +t1ckipps1_bit +t1ckipps2 +t1ckipps2_bit +t1ckipps3 +t1ckipps3_bit +t1ckipps4 +t1ckipps4_bit +t1ckps0 +t1ckps0_bit +t1ckps1 +t1ckps1_bit +t1clk +t1con +t1cs0 +t1cs0_bit +t1cs1 +t1cs1_bit +t1cs2 +t1cs2_bit +t1cs3 +t1cs3_bit +t1gate +t1gcon +t1ge +t1ge_bit +t1ggo +t1ggo_bit +t1ggo_ndone +t1ggo_ndone_bit +t1gpol +t1gpol_bit +t1gpps +t1gpps0 +t1gpps0_bit +t1gpps1 +t1gpps1_bit +t1gpps2 +t1gpps2_bit +t1gpps3 +t1gpps3_bit +t1gpps4 +t1gpps4_bit +t1gspm +t1gspm_bit +t1gss0 +t1gss0_bit +t1gss1 +t1gss1_bit +t1gss2 +t1gss2_bit +t1gss3 +t1gss3_bit +t1gss4 +t1gss4_bit +t1gtm +t1gtm_bit +t1gval +t1gval_bit +t1rd16 +t1rd16_bit +t2ainpps +t2ainpps0 +t2ainpps0_bit +t2ainpps1 +t2ainpps1_bit +t2ainpps2 +t2ainpps2_bit +t2ainpps3 +t2ainpps3_bit +t2ainpps4 +t2ainpps4_bit +t2ckpol +t2ckpol_bit +t2ckps0 +t2ckps0_bit +t2ckps1 +t2ckps1_bit +t2ckps2 +t2ckps2_bit +t2cksync +t2cksync_bit +t2clk +t2clkcon +t2con +t2cs0 +t2cs0_bit +t2cs1 +t2cs1_bit +t2cs2 +t2cs2_bit +t2cs3 +t2cs3_bit +t2hlt +t2mode0 +t2mode0_bit +t2mode1 +t2mode1_bit +t2mode2 +t2mode2_bit +t2mode3 +t2mode3_bit +t2mode4 +t2mode4_bit +t2on +t2on_bit +t2outps0 +t2outps0_bit +t2outps1 +t2outps1_bit +t2outps2 +t2outps2_bit +t2outps3 +t2outps3_bit +t2pr +t2psync +t2psync_bit +t2rsel0 +t2rsel0_bit +t2rsel1 +t2rsel1_bit +t2rsel2 +t2rsel2_bit +t2rsel3 +t2rsel3_bit +t2rsel4 +t2rsel4_bit +t2rst +t2tmr +t3ckipps +t3ckipps0 +t3ckipps0_bit +t3ckipps1 +t3ckipps1_bit +t3ckipps2 +t3ckipps2_bit +t3ckipps3 +t3ckipps3_bit +t3ckipps4 +t3ckipps4_bit +t3ckps0 +t3ckps0_bit +t3ckps1 +t3ckps1_bit +t3clk +t3con +t3cs0 +t3cs0_bit +t3cs1 +t3cs1_bit +t3cs2 +t3cs2_bit +t3cs3 +t3cs3_bit +t3gate +t3gcon +t3ge +t3ge_bit +t3ggo +t3ggo_bit +t3ggo_ndone +t3ggo_ndone_bit +t3gpol +t3gpol_bit +t3gpps +t3gpps0 +t3gpps0_bit +t3gpps1 +t3gpps1_bit +t3gpps2 +t3gpps2_bit +t3gpps3 +t3gpps3_bit +t3gpps4 +t3gpps4_bit +t3gspm +t3gspm_bit +t3gss0 +t3gss0_bit +t3gss1 +t3gss1_bit +t3gss2 +t3gss2_bit +t3gss3 +t3gss3_bit +t3gss4 +t3gss4_bit +t3gtm +t3gtm_bit +t3gval +t3gval_bit +t3rd16 +t3rd16_bit +t4ainpps +t4ainpps0 +t4ainpps0_bit +t4ainpps1 +t4ainpps1_bit +t4ainpps2 +t4ainpps2_bit +t4ainpps3 +t4ainpps3_bit +t4ainpps4 +t4ainpps4_bit +t4ckpol +t4ckpol_bit +t4ckps0 +t4ckps0_bit +t4ckps1 +t4ckps1_bit +t4ckps2 +t4ckps2_bit +t4cksync +t4cksync_bit +t4clk +t4clkcon +t4con +t4cs0 +t4cs0_bit +t4cs1 +t4cs1_bit +t4cs2 +t4cs2_bit +t4cs3 +t4cs3_bit +t4hlt +t4mode0 +t4mode0_bit +t4mode1 +t4mode1_bit +t4mode2 +t4mode2_bit +t4mode3 +t4mode3_bit +t4mode4 +t4mode4_bit +t4on +t4on_bit +t4outps0 +t4outps0_bit +t4outps1 +t4outps1_bit +t4outps2 +t4outps2_bit +t4outps3 +t4outps3_bit +t4pr +t4psync +t4psync_bit +t4rsel0 +t4rsel0_bit +t4rsel1 +t4rsel1_bit +t4rsel2 +t4rsel2_bit +t4rsel3 +t4rsel3_bit +t4rsel4 +t4rsel4_bit +t4rst +t4tmr +t5ckipps +t5ckipps0 +t5ckipps0_bit +t5ckipps1 +t5ckipps1_bit +t5ckipps2 +t5ckipps2_bit +t5ckipps3 +t5ckipps3_bit +t5ckipps4 +t5ckipps4_bit +t5ckps0 +t5ckps0_bit +t5ckps1 +t5ckps1_bit +t5clk +t5con +t5cs0 +t5cs0_bit +t5cs1 +t5cs1_bit +t5cs2 +t5cs2_bit +t5cs3 +t5cs3_bit +t5gate +t5gcon +t5ge +t5ge_bit +t5ggo +t5ggo_bit +t5ggo_ndone +t5ggo_ndone_bit +t5gpol +t5gpol_bit +t5gpps +t5gpps0 +t5gpps0_bit +t5gpps1 +t5gpps1_bit +t5gpps2 +t5gpps2_bit +t5gpps3 +t5gpps3_bit +t5gpps4 +t5gpps4_bit +t5gspm +t5gspm_bit +t5gss0 +t5gss0_bit +t5gss1 +t5gss1_bit +t5gss2 +t5gss2_bit +t5gss3 +t5gss3_bit +t5gss4 +t5gss4_bit +t5gtm +t5gtm_bit +t5gval +t5gval_bit +t5rd16 +t5rd16_bit +t6ainpps +t6ainpps0 +t6ainpps0_bit +t6ainpps1 +t6ainpps1_bit +t6ainpps2 +t6ainpps2_bit +t6ainpps3 +t6ainpps3_bit +t6ainpps4 +t6ainpps4_bit +t6ckpol +t6ckpol_bit +t6ckps0 +t6ckps0_bit +t6ckps1 +t6ckps1_bit +t6ckps2 +t6ckps2_bit +t6cksync +t6cksync_bit +t6clk +t6clkcon +t6con +t6cs0 +t6cs0_bit +t6cs1 +t6cs1_bit +t6cs2 +t6cs2_bit +t6cs3 +t6cs3_bit +t6hlt +t6mode0 +t6mode0_bit +t6mode1 +t6mode1_bit +t6mode2 +t6mode2_bit +t6mode3 +t6mode3_bit +t6mode4 +t6mode4_bit +t6on +t6on_bit +t6outps0 +t6outps0_bit +t6outps1 +t6outps1_bit +t6outps2 +t6outps2_bit +t6outps3 +t6outps3_bit +t6pr +t6psync +t6psync_bit +t6rsel0 +t6rsel0_bit +t6rsel1 +t6rsel1_bit +t6rsel2 +t6rsel2_bit +t6rsel3 +t6rsel3_bit +t6rsel4 +t6rsel4_bit +t6rst +t6tmr +tick +tmr0 +tmr0h +tmr0h0 +tmr0h0_bit +tmr0h1 +tmr0h1_bit +tmr0h2 +tmr0h2_bit +tmr0h3 +tmr0h3_bit +tmr0h4 +tmr0h4_bit +tmr0h5 +tmr0h5_bit +tmr0h6 +tmr0h6_bit +tmr0h7 +tmr0h7_bit +tmr0ie +tmr0ie_bit +tmr0if +tmr0if_bit +tmr0l +tmr0l0 +tmr0l0_bit +tmr0l1 +tmr0l1_bit +tmr0l2 +tmr0l2_bit +tmr0l3 +tmr0l3_bit +tmr0l4 +tmr0l4_bit +tmr0l5 +tmr0l5_bit +tmr0l6 +tmr0l6_bit +tmr0l7 +tmr0l7_bit +tmr0md +tmr0md_bit +tmr1 +tmr110 +tmr110_bit +tmr111 +tmr111_bit +tmr112 +tmr112_bit +tmr113 +tmr113_bit +tmr114 +tmr114_bit +tmr115 +tmr115_bit +tmr1clk +tmr1gate +tmr1gie +tmr1gie_bit +tmr1gif +tmr1gif_bit +tmr1h +tmr1h0 +tmr1h0_bit +tmr1h1 +tmr1h1_bit +tmr1h2 +tmr1h2_bit +tmr1h3 +tmr1h3_bit +tmr1h4 +tmr1h4_bit +tmr1h5 +tmr1h5_bit +tmr1h6 +tmr1h6_bit +tmr1h7 +tmr1h7_bit +tmr1ie +tmr1ie_bit +tmr1if +tmr1if_bit +tmr1l +tmr1l0 +tmr1l0_bit +tmr1l1 +tmr1l1_bit +tmr1l2 +tmr1l2_bit +tmr1l3 +tmr1l3_bit +tmr1l4 +tmr1l4_bit +tmr1l5 +tmr1l5_bit +tmr1l6 +tmr1l6_bit +tmr1l7 +tmr1l7_bit +tmr1md +tmr1md_bit +tmr1on +tmr1on_bit +tmr2 +tmr2ie +tmr2ie_bit +tmr2if +tmr2if_bit +tmr2md +tmr2md_bit +tmr2on +tmr2on_bit +tmr3 +tmr30 +tmr30_bit +tmr31 +tmr31_bit +tmr310 +tmr310_bit +tmr311 +tmr311_bit +tmr312 +tmr312_bit +tmr313 +tmr313_bit +tmr314 +tmr314_bit +tmr315 +tmr315_bit +tmr32 +tmr32_bit +tmr33 +tmr33_bit +tmr34 +tmr34_bit +tmr35 +tmr35_bit +tmr36 +tmr36_bit +tmr37 +tmr37_bit +tmr38 +tmr38_bit +tmr39 +tmr39_bit +tmr3clk +tmr3gate +tmr3gie +tmr3gie_bit +tmr3gif +tmr3gif_bit +tmr3h +tmr3h0 +tmr3h0_bit +tmr3h1 +tmr3h1_bit +tmr3h2 +tmr3h2_bit +tmr3h3 +tmr3h3_bit +tmr3h4 +tmr3h4_bit +tmr3h5 +tmr3h5_bit +tmr3h6 +tmr3h6_bit +tmr3h7 +tmr3h7_bit +tmr3ie +tmr3ie_bit +tmr3if +tmr3if_bit +tmr3l +tmr3l0 +tmr3l0_bit +tmr3l1 +tmr3l1_bit +tmr3l2 +tmr3l2_bit +tmr3l3 +tmr3l3_bit +tmr3l4 +tmr3l4_bit +tmr3l5 +tmr3l5_bit +tmr3l6 +tmr3l6_bit +tmr3l7 +tmr3l7_bit +tmr3md +tmr3md_bit +tmr3on +tmr3on_bit +tmr4 +tmr4ie +tmr4ie_bit +tmr4if +tmr4if_bit +tmr4md +tmr4md_bit +tmr4on +tmr4on_bit +tmr5 +tmr50 +tmr50_bit +tmr51 +tmr51_bit +tmr510 +tmr510_bit +tmr511 +tmr511_bit +tmr512 +tmr512_bit +tmr513 +tmr513_bit +tmr514 +tmr514_bit +tmr515 +tmr515_bit +tmr52 +tmr52_bit +tmr53 +tmr53_bit +tmr54 +tmr54_bit +tmr55 +tmr55_bit +tmr56 +tmr56_bit +tmr57 +tmr57_bit +tmr58 +tmr58_bit +tmr59 +tmr59_bit +tmr5clk +tmr5gate +tmr5gie +tmr5gie_bit +tmr5gif +tmr5gif_bit +tmr5h +tmr5h0 +tmr5h0_bit +tmr5h1 +tmr5h1_bit +tmr5h2 +tmr5h2_bit +tmr5h3 +tmr5h3_bit +tmr5h4 +tmr5h4_bit +tmr5h5 +tmr5h5_bit +tmr5h6 +tmr5h6_bit +tmr5h7 +tmr5h7_bit +tmr5ie +tmr5ie_bit +tmr5if +tmr5if_bit +tmr5l +tmr5l0 +tmr5l0_bit +tmr5l1 +tmr5l1_bit +tmr5l2 +tmr5l2_bit +tmr5l3 +tmr5l3_bit +tmr5l4 +tmr5l4_bit +tmr5l5 +tmr5l5_bit +tmr5l6 +tmr5l6_bit +tmr5l7 +tmr5l7_bit +tmr5md +tmr5md_bit +tmr5on +tmr5on_bit +tmr6 +tmr6ie +tmr6ie_bit +tmr6if +tmr6if_bit +tmr6md +tmr6md_bit +tmr6on +tmr6on_bit +tosh +tosl +trisa +trisa0 +trisa0_bit +trisa1 +trisa1_bit +trisa2 +trisa2_bit +trisa3 +trisa3_bit +trisa4 +trisa4_bit +trisa5 +trisa5_bit +trisa6 +trisa6_bit +trisa7 +trisa7_bit +trisb +trisb0 +trisb0_bit +trisb1 +trisb1_bit +trisb2 +trisb2_bit +trisb3 +trisb3_bit +trisb4 +trisb4_bit +trisb5 +trisb5_bit +trisb6 +trisb6_bit +trisb7 +trisb7_bit +trisc +trisc0 +trisc0_bit +trisc1 +trisc1_bit +trisc2 +trisc2_bit +trisc3 +trisc3_bit +trisc4 +trisc4_bit +trisc5 +trisc5_bit +trisc6 +trisc6_bit +trisc7 +trisc7_bit +trisd +trisd0 +trisd0_bit +trisd1 +trisd1_bit +trisd2 +trisd2_bit +trisd3 +trisd3_bit +trisd4 +trisd4_bit +trisd5 +trisd5_bit +trisd6 +trisd6_bit +trisd7 +trisd7_bit +trise +trise0 +trise0_bit +trise1 +trise1_bit +trise2 +trise2_bit +trmt +trmt_bit +tsel0 +tsel0_bit +tsel1 +tsel1_bit +tsel2 +tsel2_bit +tsel3 +tsel3_bit +tsen +tsen_bit +tsrng +tsrng_bit +tune +tx1reg +tx1sta +tx9 +tx9_bit +tx9d +tx9d_bit +txen +txen_bit +txie +txie_bit +txif +txif_bit +txpps +txpps0 +txpps0_bit +txpps1 +txpps1_bit +txpps2 +txpps2_bit +txpps3 +txpps3_bit +txpps4 +txpps4_bit +txreg +txreg1 +txsta +txsta1 +txt +txt_2 +ua1 +ua1_bit +ua2 +ua2_bit +uart1md +uart1md_bit +vdelay_advanced_ms +vdelay_ms +volt_cnt +voltage +voltage_old +voltage_show +vref_mask +w +watch_cnt +watch_swr +wcol1 +wcol1_bit +wcol2 +wcol2_bit +wdtcon0 +wdtcon1 +wdtcs0 +wdtcs0_bit +wdtcs1 +wdtcs1_bit +wdtcs2 +wdtcs2_bit +wdtps0 +wdtps0_bit +wdtps1 +wdtps1_bit +wdtps2 +wdtps2_bit +wdtps3 +wdtps3_bit +wdtps4 +wdtps4_bit +wdtpscnt0 +wdtpscnt0_bit +wdtpscnt1 +wdtpscnt1_bit +wdtpscnt10 +wdtpscnt10_bit +wdtpscnt11 +wdtpscnt11_bit +wdtpscnt12 +wdtpscnt12_bit +wdtpscnt13 +wdtpscnt13_bit +wdtpscnt14 +wdtpscnt14_bit +wdtpscnt15 +wdtpscnt15_bit +wdtpscnt16 +wdtpscnt16_bit +wdtpscnt17 +wdtpscnt17_bit +wdtpscnt2 +wdtpscnt2_bit +wdtpscnt3 +wdtpscnt3_bit +wdtpscnt4 +wdtpscnt4_bit +wdtpscnt5 +wdtpscnt5_bit +wdtpscnt6 +wdtpscnt6_bit +wdtpscnt7 +wdtpscnt7_bit +wdtpscnt8 +wdtpscnt8_bit +wdtpscnt9 +wdtpscnt9_bit +wdtpsh +wdtpsl +wdtsen +wdtsen_bit +wdtstate +wdtstate_bit +wdttmr +wdttmr0 +wdttmr0_bit +wdttmr1 +wdttmr1_bit +wdttmr2 +wdttmr2_bit +wdttmr3 +wdttmr3_bit +wdtwindow0 +wdtwindow0_bit +wdtwindow1 +wdtwindow1_bit +wdtwindow2 +wdtwindow2_bit +window0 +window0_bit +window1 +window1_bit +window2 +window2_bit +word2double +wordtohex +wordtostr +wordtostrwithzeros +wpua +wpua0 +wpua0_bit +wpua1 +wpua1_bit +wpua2 +wpua2_bit +wpua3 +wpua3_bit +wpua4 +wpua4_bit +wpua5 +wpua5_bit +wpua6 +wpua6_bit +wpua7 +wpua7_bit +wpub +wpub0 +wpub0_bit +wpub1 +wpub1_bit +wpub2 +wpub2_bit +wpub3 +wpub3_bit +wpub4 +wpub4_bit +wpub5 +wpub5_bit +wpub6 +wpub6_bit +wpub7 +wpub7_bit +wpuc +wpuc0 +wpuc0_bit +wpuc1 +wpuc1_bit +wpuc2 +wpuc2_bit +wpuc3 +wpuc3_bit +wpuc4 +wpuc4_bit +wpuc5 +wpuc5_bit +wpuc6 +wpuc6_bit +wpuc7 +wpuc7_bit +wpud +wpud0 +wpud0_bit +wpud1 +wpud1_bit +wpud2 +wpud2_bit +wpud3 +wpud3_bit +wpud4 +wpud4_bit +wpud5 +wpud5_bit +wpud6 +wpud6_bit +wpud7 +wpud7_bit +wpue +wpue0 +wpue0_bit +wpue1 +wpue1_bit +wpue2 +wpue2_bit +wpue3 +wpue3_bit +wr +wr_bit +wreg +wreg_shad +wren +wren_bit +wrerr +wrerr_bit +wue +wue_bit +x1 +x1_bit +x10 +x10_bit +x11 +x11_bit +x12 +x12_bit +x13 +x13_bit +x14 +x14_bit +x15 +x15_bit +x2 +x2_bit +x3 +x3_bit +x4 +x4_bit +x5 +x5_bit +x6 +x6_bit +x7 +x7_bit +x8 +x8_bit +x9 +x9_bit +z +z_bit +z_shad +z_shad_bit +zcdcon +zcdie +zcdie_bit +zcdif +zcdif_bit +zcdintn +zcdintn_bit +zcdintp +zcdintp_bit +zcdmd +zcdmd_bit +zcdout +zcdout_bit +zcdpol +zcdpol_bit +zcdsen +zcdsen_bit +zero +zero_bit diff --git a/Firmware/ATU-10_FW_13/ATU-10.dlt b/Firmware/ATU-10_FW_13/ATU-10.dlt new file mode 100644 index 0000000..f33c27e Binary files /dev/null and b/Firmware/ATU-10_FW_13/ATU-10.dlt differ diff --git a/Firmware/ATU-10_FW_13/ATU-10.hex b/Firmware/ATU-10_FW_13/ATU-10.hex new file mode 100644 index 0000000..e06f974 --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.hex @@ -0,0 +1,1133 @@ +:040000009831F82C0F +:1000080070084001AE007108AD007208AC007308BA +:10001800AB007408AA007508A9007608A80077083C +:10002800A7007808A6007908A5007A08A4007B082C +:10003800A3007C08A20080314E018C1E30288C124F +:1000480001304201CC070030CD3DCE3DCF3DC03020 +:1000580040019C00E0309D0042013E084F02031D14 +:100068003F283D084E02031D3F283C084D02031D52 +:100078003F283B084C02031C0E290A30BB070030FE +:10008800BC3DBD3DBE3D40018D1A4C2874144D2821 +:1000980074108F1851280314522803107418582804 +:1000A80003185828741059287414741C9C2840018B +:1000B8005308F0005408F1005508F2005608F30000 +:1000C800E830F4000330F500F601F701BE217008AE +:1000D80042014C074301BD00710842014D3D4301F7 +:1000E800BE00720842014E3D4301BF007308420141 +:1000F8004F3D4301C00040015708F0005808F10087 +:100108005908F2005A08F300E830F4000330F5000B +:10011800F601F701BE21700842014C07EC00710896 +:100128004D3DED0072084E3DEE0073084F3DEF0067 +:1001380040018D1AA1280314A2280310031CC1280A +:100148004001FA3064020318AA28E40A6408193A3C +:10015800031DB0284301A01640016408FA3A013093 +:10016800031D0030F100F001161AF00A7108F005BD +:100178000319C02843012016D82840016408023C0E +:10018800013003180030F1001930640201300318FF +:100198000030F0007108F0050319D7284301201733 +:1001A8004001E401D828E40140018F18DD28031438 +:1001B800DE280310031CF7281930410146020318F2 +:1001C800E628C60A4608143A0130031D0030F1003B +:1001D800F00140010F19F00A7108F0050319F6281B +:1001E8004301A0140E2941014608013C01300318BF +:1001F8000030F1000A304602013003180030F000E8 +:100208007108F00503190D29430120144101C601A5 +:100218000E29C60140012E08F0002D08F1002C0817 +:10022800F2002B08F3002A08F4002908F500280832 +:10023800F6002708F7002608F8002508F900240822 +:0C024800FA002308FB002208FC0009005B +:10025400F10108307102031849294401B41B3529FE +:10026400400116113729400116152730FD00FD0BFA +:1002740039290000000096152730FD00FD0B4029A8 +:100284000000000096114401B435F10A2B29400105 +:1002940016152730FD00FD0B4D29000000009615B2 +:1002A40000300C190130F2002730FD00FD0B5829F5 +:1002B4000000000096112730FD00FD0B5F290000AF +:0802C40000007208F0000800C0 +:1002CC004001F801F9011030FC00710DF80DF90D29 +:1002DC007408F8027508031C750FF90203187D29C0 +:1002EC007408F80775080318750FF9070310F00D5B +:0802FC00F10DFC0B6B29080059 +:10030400400196152730FD00FD0B862900000000F2 +:1003140016152730FD00FD0B8D2900000000161175 +:100324002730FD00FD0B94290000000096112730B2 +:0C033400FD00FD0B9B29000000000800EC +:0C0340003A30FD00FD0BA229000008006F +:10034C0040017008F100F0010830FC007108F40C59 +:10035C000318B429FC0BAD29F10100340310B929A1 +:10036C00F40C0318F107F10CF00CFC0BB629080087 +:10037C0040012230FC00F801F901FA01FB01FC03F9 +:10038C000319F3290310FB0CFA0CF90CF80CF30C01 +:10039C00F20CF10CF00C031CC529FC030319E52924 +:1003AC007408F80775080318750FF9077608031811 +:1003BC00760FFA0777080318770FFB07C92974081B +:1003CC00F80775080318750FF90776080318760FE8 +:0C03DC00FA0777080318770FFB070800EA +:1003E800400116112730FD00FD0BF8290000000020 +:1003F80096152730FD00FD0BFF290000000016159B +:0E0408002730FD00FD0B062A00000000080052 +:1004160040016F0844012E07B100822141014708BF +:100426004401B4002A214401B4012A2144012D08C3 +:10043600B03EB4002A21440131080F3C031C272A90 +:100446003108AF00B001382A3108F200F236F23630 +:10045600F236F2367208B0007208F000F035F03568 +:10046600F035F03570083102AF002F08B4002A21AC +:1004760044013008103EB4002A2182214101470878 +:100486004401B4002A2140304401B4002A21080066 +:100496004401B1010530310203185B2A31082F07E8 +:1004A60086000030303D870020308100B10A4D2A99 +:1004B60031082F0786000030303D87008101B103E7 +:1004C60031082F07B2000030303DB3000A30F40087 +:1004D600F5012D08F0002E08F10066217808F000DD +:1004E6007908F1003030F0074401320886003308FD +:1004F6008700700881000A30F400F5012D08F0002D +:100506002E08F100662170084401AD007108AE00A6 +:1005160000307106031D912A00307006031D942ACF +:08052600962AB103632A0800C4 +:10052E006C304301A1000330A2002330A30002303F +:10053E00A40041019301940195019601EC309A05B6 +:10054E00133044012305F000700841019A04C030B5 +:10055E0044012305F0000319CA2AC0302305F20016 +:10056E000630F1007208F00071080319C12AF03646 +:10057E00FF3EBC2A700852018C008C170C1BC92A36 +:10058E000000C52ACD2A5201FC308C0541011316FC +:06059E001315931708007D +:1005A4004001FB01FA01F9018030F800F10CF00C74 +:1005B400031CE52A7408F90775080318750FFA0770 +:1005C4000318FB0A0310F01FED2A7408FA077508D4 +:1005D4000318750FFB07FB0CFA0CF90CF80C031C41 +:1005E400D82A7B08F3007A08F2007908F100780829 +:0405F400F00008000B +:0805F800FA1FF21300300800A5 +:1006000040304401A5001F30A600A701A8014030DA +:10061000F0001F30F1000030F2000030F30023083A +:10062000F4002408F500F601F701BE21700844012A +:10063000A5007108A6007208A7007308A800003082 +:100640007302031D2D2B00307202031D2D2B02306F +:100650007102031D2D2BB23070020318302B5F2B5B +:10066000B230A5020230A63B0030A73BA83B0530C4 +:10067000F00070080319422BA836A70CA60CA50C95 +:10068000FF3E3A2B2508F0002608F1002708F2006B +:100690002808F3000130A5020030A63BA73BA83B89 +:1006A000700871047204730403195F2B00000000CA +:1006B000000000000000000000000000422B0800C5 +:1006C0007B15FB1F6A2B0130F300F201F101F001F1 +:0806D000FA0DF20CFF300800E6 +:1006D8003F304401230541019E00A021131400006E +:1006E800131C772B742B0C08F0000D08F100080080 +:1006F80044012308AD002408AE000B224401A801E0 +:10070800270828020318B12B280825078400003081 +:10071800263D850020300002AA00A90105302902E3 +:100728000318AC2B2A08F0000530F400A621440178 +:100738002908F0070030F13DFF30700784009D3034 +:10074800713D85000008B4002A214401A90A922BB2 +:0E075800B4012A214401A80A842BF4210800D0 +:100766004401A901AA012308AB002408AC0080308B +:100776002406F00080307002031DC32B00302302D4 +:100786000318D12B0130A9000030AA002308003C31 +:10079600AB002408031C013EAC01AC022B08AD00E3 +:1007A6002C08AE002508AF002608B0004B22063004 +:1007B600A7000030A8002808003C031DE42B2708EA +:1007C600003C0318FF2B2708250786002808263D2E +:1007D600870001302702F0000030283BF100700846 +:1007E600250784007108263D850000088100013038 +:1007F600A7020030A83BDE2B2508860026088700C6 +:100806002030810029082A040319252CA701A801F4 +:100816002708250784002808263D85000008203A79 +:10082600031D192CA70A0319A80A0B2C0130A702CD +:100836000030A83B2708250786002808263D8700A4 +:060846002D3081000800C6 +:0E084C00F201F101F001F801F30100300800A3 +:10085A008221410147084401B4002A218030440121 +:10086A00B4002A2144012308B4002A21F4210800F3 +:10087A00FB14FB1F472CFF30F300F200F100F000DD +:08088A00FA0DF20CFF3008002A +:100892008221410147084401B4002A214030440129 +:1008A200B4002A214401A4012408073C031C6B2C38 +:1008B2002408AD00AE010B224401A30144018030A3 +:1008C20023020318682CA30AB4012A215F2C4401D5 +:0808D200A40A552CF4210800D2 +:1008DA008221410147084401B4002A2140304401E1 +:1008EA00B4002A2144012308AD002408AE000B22DB +:1008FA004401A8012708280203180E2D28082507F5 +:10090A0084000030263D85000008003A031D8F2C24 +:10091A00AA01982C2808250784000030263D850066 +:10092A0020300002AA00A9012908043C031C062D54 +:10093A002A08F0000530F400A62144012908F0072E +:10094A000030F13DFF30700784009D30713D850015 +:10095A000008AB002308023A0319DC2CAB19B72CA8 +:10096A00AC13B82CAC17AB19BC2C2C13BD2C2C1700 +:10097A002B19C12CAC12C22CAC162B19C62C2C125A +:10098A00C72C2C16AB18CB2CAC11CC2CAC15AB1835 +:10099A00D02C2C11D12C2C152B18D52CAC10D62CD4 +:1009AA00AC142B18DA2C2C10DB2C2C14FC2C2B1945 +:1009BA00E02CAC13E12CAC172B19E52C2C13E62CEC +:1009CA002C17AB18EA2CAC12EB2CAC16AB18EF2C8C +:1009DA002C12F02C2C162B18F42CAC11F52CAC156F +:1009EA002B18F92C2C11FA2C2C15AC102C102C08C5 +:1009FA00B4002A2144012C08B4002A214401A90A7E +:100A0A00992CB4012A214401B4012A214401A80ADB +:100A1A007F2C230AAD002408AE000B224401A80152 +:100A2A00270828020318AC2D28082507840000305F +:100A3A00263D85000008003A031D252DAA012E2D0A +:100A4A002808250784000030263D85002030000252 +:100A5A00AA00A9012908043C031CA42D2A08F000B5 +:100A6A000530F400A62144012908F0070030F13DC1 +:100A7A00FF30700784009D30713D85000008AB008F +:100A8A002308023A0319722DAB1B4D2DAC134E2DC0 +:100A9A00AC17AB1B522D2C13532D2C172B1B572D78 +:100AAA00AC12582DAC162B1B5C2D2C125D2D2C165E +:100ABA00AB1A612DAC11622DAC15AB1A662D2C1137 +:100ACA00672D2C152B1A6B2DAC106C2DAC142B1A10 +:100ADA00702D2C10712D2C149A2D2B1B762DAC13E6 +:100AEA00772DAC172B1B7B2D2C137C2D2C17AB1AB7 +:100AFA00802DAC12812DAC16AB1A852D2C12862DA9 +:100B0A002C162B1A8A2DAC118B2DAC152B1A8F2D66 +:100B1A002C11902D2C15AB19942DAC10952DAC14CD +:100B2A00AB19992D2C109A2D2C142C08B4002A21BB +:100B3A0044012C08B4002A214401A90A2F2DB4012A +:100B4A002A214401B4012A214401A80A152DF421BD +:020B5A00080091 +:100B5C0040019711492401304401A300A401333012 +:100B6C00A5000030A6001230A7007C2303304401FE +:100B7C00A300A4014630A5000030A6000C30A7004D +:100B8C007C2303304401A3005430A4005B30A50047 +:100B9C000030A6000330A7007C237A30FB00C13064 +:100BAC00FC008130FD00FD0BD92DFC0BD92DFB0B6E +:100BBC00D92D000000008D1AE52D0314E62D03102D +:0C0BCC00031CEA2D0000E12D9715080025 +:100BD8008221410147084401B4002A2140304401E0 +:100BE800B4002A214401A1012108033C031C1F2E43 +:100BF8002108AD007330AE000B224401A00120088B +:100C08000A3C031C1D2E2108F0000B30F400A6211D +:100C180044012008F0070030F13D2D3070078400B2 +:100C2800A030713D85000008B4002A214401A00AC3 +:0A0C3800032EA10AF82DF421080094 +:100C420044012018272E40019917292E400199139B +:100C52004401A0182F2E40011917312E40011913FB +:100C620044012019372E40019916392E400199125C +:100C72004401A0193F2E40011916412E40011912BC +:100C82004401201A472E40019817492E400198131B +:100C92004401A01A4F2E40011817512E400118137B +:100CA2004401201B572E40019816592E40019812DC +:100CB200440121185F2E40019616612E40019612C2 +:100CC2004401A118672E40019A14692E40019A101E +:100CD200440121196F2E40019617712E400196137F +:100CE2004401A119772E40011617792E40011613DF +:100CF2004401211A7F2E40011814812E4001181040 +:100D02004401A11A872E40019814892E400198109F +:100D12004401211B8F2E40011815912E40011811FC +:100D220044012218972E40011A10992E40011A14DC +:100D32009915430125084401A300430126084401F3 +:100D4200A4000023400199111A30FD00FD0BA72ECB +:100D520000001812430125084401A300430126089C +:100D62004401A40000234001181643012508440150 +:100D7200A300430126084401A40000234001991363 +:100D820019139912191298131813981296129A108D +:0E0D9200961316131810981018111A10080056 +:040DA000F421080032 +:100DA400003044012106031DD92E00302006031D06 +:100DB400E72E0230A3003C30A4002A30A500013005 +:100DC400A6000430A7006D24062F44012008A300C8 +:100DD4002108A400AB30A5000130A600B3234301D1 +:100DE4002E08B3002E30B4002F08B5003008B6002A +:100DF40002304401A3003C30A400B330A50001300C +:0A0E0400A6000430A7006D240800CA +:100E0E0043304401A30097220230FC000830FD005D +:100E1E00FD0B0F2FFC0B0F2F000009304401A30018 +:100E2E006C230B30F4000030F500D2227008430121 +:080E3E00A9007108AA000800D8 +:060E4600FB15FF3008005F +:100E4C007C185C2FFC182D2F7C197B2F262FA101D1 +:100E5C007208031D4D2F7108F2007008F10078081C +:100E6C00F000F801A1157208031D4D2F7108F20056 +:100E7C007008F100F001A11121167208031D4D2F0D +:100E8C007108F200F101A115720803196F2F2108E6 +:100E9C00F302031D031C732F0310F21B5C2FF80DC0 +:100EAC00F00DF10DF20DF30B532F732F7B1B701CF8 +:100EBC00772FF81F772FF00A0319F10A0319F20A9A +:100ECC00031D772FF20CF10CF00CF30A03197B2F96 +:100EDC00772F0130FC0026247E2F0230FC0060238B +:100EEC007E2F0430FC00FC227E2F0830FC003D24B9 +:040EFC0000000800EA +:100F00007B14FB1F8B2FF201FA1FFF30F200F10060 +:0A0F1000F000FA0DF20CFF300800AB +:100F1A00FB09FA09F909F809F80A0319F90A031980 +:080F2A00FA0A0319FB0A080092 +:100F3200A1017208031DAE2F7108F2007008F100C2 +:100F4200F001A1157208031DAE2F7108F200F10124 +:100F5200A111211672080319BC2F2108F302031DE7 +:100F6200031CC02F0310F21BC42FF00DF10DF20D64 +:100F7200F30BB42FC02F0130FC002624C72F023000 +:0E0F8200FC006023C72F0430FC00FC22080096 +:100F90004201BF014101EF01EE014401A001A101A5 +:060FA000A2012126080059 +:100FA60040017008F8007108F000F101F201F30148 +:100FB600FB01FC019630F300FA01F01FE82FF80957 +:100FC600F009F80A0319F00AFA177008F100780810 +:0A0FD600F000F801F201992708006D +:100FE00012001E00F003031DF02FF103031DF02F6C +:020FF0000800F7 +:101000007408F8027508031C750FF9027608031CB2 +:10101000760FFA027708031C770FFB02F30D0730F7 +:10102000FC00730DF80DF90DFA0DFB0D7408731C1F +:101030002728F8027508031C750FF9027608031CAF +:10104000760FFA027708031C770FFB023428F807A3 +:1010500075080318750FF90776080318760FFA0755 +:1010600077080318770FFB07F30DFC0B1128720D9F +:10107000F80DF90DFA0DFB0D7408731C4D28F802DC +:101080007508031C750FF9027608031C760FFA0227 +:101090007708031C770FFB025A28F8077508031816 +:1010A000750FF90776080318760FFA077708031803 +:1010B000770FFB07F20D0730FC00720DF80DF90DEC +:1010C000FA0DFB0D7408721C7328F8027508031CD6 +:1010D000750FF9027608031C760FFA027708031CD5 +:1010E000770FFB028028F80775080318750FF907BA +:1010F00076080318760FFA0777080318770FFB07AF +:10110000F20DFC0B5D28710DF80DF90DFA0DFB0DBC +:101110007408721C9928F8027508031C750FF902EF +:101120007608031C760FFA027708031C770FFB0280 +:10113000A628F80775080318750FF907760803182D +:10114000760FFA0777080318770FFB07F10D0730C2 +:10115000FC00710DF80DF90DFA0DFB0D7408711CF2 +:10116000BF28F8027508031C750FF9027608031CE6 +:10117000760FFA027708031C770FFB02CC28F807DA +:1011800075080318750FF90776080318760FFA0724 +:1011900077080318770FFB07F10DFC0BA928700DDA +:1011A000F80DF90DFA0DFB0D7408711CE528F80215 +:1011B0007508031C750FF9027608031C760FFA02F6 +:1011C0007708031C770FFB02F228F807750803184D +:1011D000750FF90776080318760FFA0777080318D2 +:1011E000770FFB07F00D0730FC00700DF80DF90DBF +:1011F000FA0DFB0D7408701C0B29F8027508031C0E +:10120000750FF9027608031C760FFA027708031CA3 +:10121000770FFB021829F80775080318750FF907EF +:1012200076080318760FFA0777080318770FFB077D +:10123000F00DFC0BF52870182B297408F8077508B9 +:101240000318750FF90776080318760FFA07770861 +:081250000318770FFB070800EB +:101258004401A0010A302002031855298031822157 +:101268008831410147084401B40080312A2188317E +:101278007008003A031D412955298031F42188312D +:101288000D30FB002D30FC00D730FD00FD0B4A2946 +:10129800FC0B4A29FB0B4A29000000004401A00A64 +:1012A8002E294401B40180312A218831AE3044010D +:1012B800B40080312A218831D5304401B40080310E +:1012C8002A21883180304401B40080312A218831B4 +:1012D800A8304401B40080312A2188313F304401CC +:1012E800B40080312A218831D3304401B4008031E0 +:1012F8002A218831410149084401B40080312A215A +:10130800883140304401B40080312A2188318D3041 +:101318004401B40080312A21883114304401B400DA +:1013280080312A21883181304401B40080312A215A +:101338008831FF304401B40080312A218831D93006 +:101348004401B40080312A218831F1304401B400CD +:1013580080312A21883120304401B40080312A218B +:10136800883102304401B40080312A21883121308B +:101378004401B40080312A2188314401B40180310C +:101388002A2188317F304401B40080312A218831F4 +:101398002E304401B40080312A21883141014A08A5 +:1013A8000319E329A0304401B40080312A2188318F +:1013B800C0304401B40080312A218831EF29A1309E +:1013C8004401B40080312A218831C8304401B40076 +:1013D80080312A218831DA304401B40080312A2151 +:1013E800883102304401B40080312A218831DB3051 +:1013F8004401B40080312A21883140304401B400CE +:1014080080312A218831A4304401B40080312A2156 +:101418008831A6304401B40080312A2188318031D6 +:10142800F4218831803149248831AF304401A30048 +:0814380080312D2488310800E9 +:101440007408003A031D392A7508003A031D392A29 +:101450007608003A031D392A7708003A031D392A15 +:10146000FF30F000FF30F100FF30F2007F30F3007A +:10147000D32A4001FC01F71BFC0AFD01FB01FA0124 +:10148000F901F80173087204710470040319CC2A7D +:1014900073087706A000A01BFD09F71F5A2AF4095C +:1014A000F509F609F709F40A0319F50A0319F60A0A +:1014B0000319F70AF31F672AF009F109F209F30982 +:1014C000F00A0319F10A0319F20A0319F30A73085F +:1014D0007704A000A01B882A0020FC1BA52AFD1F62 +:1014E000CC2AF009F109F209F309F00A0319F10A0B +:1014F0000319F20A0319F30AF809F909FA09FB09B1 +:10150000F80A0319F90A0319FA0A0319FB0ACC2A83 +:10151000F71F9F2AF31B992A7308FB007208FA0031 +:101520007108F9007008F800F301F201F101F0010F +:101530006F2AF301F201F101F001F00A0034F3091E +:10154000F209F109F009FC176C2AF80A0319F90AE3 +:101550000319FA0A0319FB0A74087802031D6F2A9B +:1015600075087902031D6F2A76087A02031D6F2A17 +:1015700077087B02031D6F2AFB01FA01F901F801CC +:10158000F00A0319F10A0319F20A0319F30AF31F07 +:101590006F2AA0012016FF34A0017C1CD22A8031C2 +:0815A0008D278831003E080090 +:1015A800400116160930FB001E30FC00E430FD0037 +:1015B800FD0BDC2AFC0BDC2AFB0BDC2A000080314B +:1015C800D02688316830FC00E430FD00FD0BEA2AA3 +:1015D800FC0BEA2A00002C214301A01DFB2A8031C4 +:1015E800AE2588314301A011803149248831440156 +:1015F800A301A4016030A5000130A6000930A700AE +:1016080080316D2488318031EC25883102304401E5 +:10161800A300A4015630A5000130A6000930A70098 +:1016280080316D2488314401A3012A30A40054304C +:10163800A5000130A6000130A70080316D24883153 +:1016480002304401A3002A30A4006A30A50001300A +:10165800A6000130A70080316D2488310F30420187 +:10166800C8002730C9006430CA000030CB000F30F2 +:10167800C6002730C700C001C1014401A001A10173 +:101688008031D2268831013042014C07C200003037 +:101698004D3DC30000304E3DC40000304F3DC500F5 +:1016A8004C08D0004D08D1004E08D2004F08D30096 +:1016B80043012013A012201240015308F0005408DF +:1016C800F1005508F2005608F300E830F400033042 +:1016D800F500F601F7018031BE218831700842011A +:1016E8004C074301BD00710842014D3D4301BE0056 +:1016F800720842014E3D4301BF00730842014F3D4D +:101708004301C00040015708F0005808F10059088B +:10171800F2005A08F300E830F4000330F500F6014F +:10172800F7018031BE218831700842014C07EC0076 +:1017380071084D3DED0072084E3DEE0073084F3DB7 +:04174800EF000800A6 +:10174C004001FB0173080319E22B7208FA00F2172F +:10175C008E30F302F31FE52BF309F30A0830730202 +:10176C00031CC82BF300F10D7208F100F2010830D4 +:10177C007302031CC82BF300F10DF1017308031D58 +:10178C000310D02B73080319D02B0310F20CF10C9F +:10179C00F30BCB2B7B1B711CDA2B031CDA2BF10A02 +:1017AC000319F20AF21BF12BFA1FF42BF209F109BF +:1017BC00F10A0319F20AF42BF201F101F42B7B1458 +:1017CC00FB1FF72BF201FA1FF72BFF30F200F10091 +:1017DC00FA0DF20CF72B0130FC00F92B0030FC0059 +:1017EC00F92BFF30FC00FC080319FF2B80318027FC +:0C17FC0088317108F0007208F10008004C +:10180800400172087606A100F801F9017308770211 +:10181800031C262C7708FD007308F7007D08F300E9 +:101828007608FD007208F6007D08F2007508FD00D4 +:101838007108F5007D08F1007408FD007008F400D7 +:101848007D08F00077080319A72C7208FA00F21730 +:10185800F61777087302F7000319592C0830770236 +:10186800031C4F2CF7007408F9007508F40076087B +:10187800F500F60108307702031C4F2CF7007408B6 +:10188800F9007508F400F50108307702031C4F2CA5 +:101898007A08F200A72C77080319592C0310F60CC4 +:1018A800F50CF40CF90CF70B522CA11F662CF90956 +:1018B800F409F509F609F90A0319F40A0319F50AEE +:1018C8000319F60A7908F80774080318740FF00763 +:1018D80075080318750FF10776080318760FF207D5 +:1018E800A11B7F2C031C8F2CF20CF10CF00CF80CB4 +:1018F800F30F8F2CA12C0318952CF809F009F10986 +:10190800F209F80A0319F00A0319F10A0319F20A8D +:101918008030FA069B2C0130FC0080312627883164 +:10192800A92C0230FC00803126278831A92C0430EC +:10193800FC00803199278831A92C0830FC008031BF +:0E1948003D248831A92C0030FC00000008006E +:1019560043304401A3008031972288310230FC00D5 +:101966000830FD00FD0BB52CFC0BB52C0000083033 +:101976004401A30080316C23883170084301EE00D6 +:101986007108EF007108033A031DCB2CFF30700677 +:10199600031DE92C83304401A3008031972288314E +:1019A6000230FC000830FD00FD0BD72CFC0BD72CB9 +:1019B600000008304401A30080316C238831700890 +:1019C6004301EE007108EF00EE35EF0D6F08073AA0 +:1019D600031DEF2CFE306E06031D402D4401A301AE +:1019E6008031972288310230FC000830FD00FD0B63 +:1019F600FA2CFC0BFA2C000008304401A3008031BD +:101A06006C23883170084301EE007108EF007108FD +:101A1600033A031D102DFF307006031D132D2015EC +:101A26008031072788316E08F4006F08F500F6014B +:101A3600F7012908F0002A08F1000030F11BFF30F9 +:101A4600F200F3008031BE2188310A30F8007008B8 +:101A5600F4007108F5007208F6007308F7007808BC +:101A660003193B2DF736F60CF50CF40CFF3E332D1F +:101A760074084301EE007508EF006E08F0006F0869 +:041A8600F100080063 +:101A8A004001FB017308031D770803199B2D720897 +:101A9A007606FA007708F3077E30031C582DF30206 +:101AAA000318A02D5B2DF302031CA52D7208F80064 +:101ABA007108FC007008FD00F817F6170310F20110 +:101ACA00F101F0011830A1007D1C752D7408F00792 +:101ADA0075080318750FF10776080318760FF207D1 +:101AEA00F20CF10CF00CF80CFC0CFD0C0310A10B21 +:101AFA00692DF21B852DF80DF00DF10DF20DF30392 +:101B0A007B1B701C972DF81F972DF00A0319F10AF9 +:101B1A000319F20A031D972DF20CF10CF00CF30ACB +:101B2A000319A02DFA1FF2130030A92D01308031BC +:101B3A0026248831A92D023080313D248831A92DEF +:0C1B4A0004308031602388310000080066 +:101B56007408003A031DC42D7508003A031DC42DF0 +:101B66007608003A031DC42D7708003A031DC42DDC +:101B7600FF30F000FF30F1007F30F200FF30F3005D +:101B8600662E400177080319522E73080319572E43 +:101B9600720876068039FA00F217F617A101720864 +:101BA600F8007108FC007008FD007408FD02750855 +:101BB600031C750FFC027608031C760FF802F80169 +:101BC600FC01FD01031CEE2D0310F20CF10CF00CD0 +:101BD600F80C0130A1007708F302031CF82D7E30C3 +:101BE6002107F30703185C2EFD2D7E302107F3072E +:101BF600031C612E1830FA07FD0DFC0DF80DF00DD3 +:101C0600F10DF20DA10D7408F0027508031C750F95 +:101C1600F1027608031C760FF202760DA104211C50 +:101C2600162E7D14212E7408F00775080318750FFB +:101C3600F10776080318760AF2077D10FA031F30BB +:101C46007A05031DFF2D7B1B7D1C482E0310F00D0E +:101C5600F10DF20DA10D7408F0027508031C750F45 +:101C6600F1027608031C760FF202760D2104013983 +:101C7600FD070318FC0A0319F80A031D482EF80C81 +:101C8600FC0CFD0CF30A03195C2EFA1FF8137808F6 +:101C9600F2007C08F1007D08F0000030652E01306E +:101CA600803123278831652E023080312624883101 +:101CB600652E043080313D248831652E0830803110 +:081CC6006023883100000800D2 +:101CCE0043304401A3008031972288310230FC005A +:101CDE000830FD00FD0B712EFC0B712E00000A303A +:101CEE004401A30080316C23883170084301EE005B +:101CFE007108EF007108033A031D872EFF3070063E +:101D0E00031DA52E83304401A30080319722883114 +:101D1E000230FC000830FD00FD0B932EFC0B932EC1 +:101D2E0000000A304401A30080316C238831700812 +:101D3E004301EE007108EF00EE35EF0D6F08073A24 +:101D4E00031DAB2EFE306E06031DFC2E4401A301B7 +:101D5E008031972288310230FC000830FD00FD0BE7 +:101D6E00B62EFC0BB62E00000A304401A3008031C3 +:101D7E006C23883170084301EE007108EF00710882 +:101D8E00033A031DCC2EFF307006031DCF2E2015F7 +:101D9E008031072788316E08F4006F08F500F601D0 +:101DAE00F7012908F0002A08F1000030F11BFF307E +:101DBE00F200F3008031BE2188310A30F80070083D +:101DCE00F4007108F5007208F6007308F700780841 +:101DDE000319F72EF736F60CF50CF40CFF3EEF2E2A +:101DEE0074084301EE007508EF006E08F0006F08EE +:041DFE00F1000800E8 +:101E020043016E08F1006F08F200F135F20D71081E +:101E1200EE007208EF008030023AF0008030720665 +:101E22007002031D162F71081F3C031C1D2F00306A +:101E3200EE070130EF3D872F8030033AF00080300B +:101E42006F067002031D272F6E08173C031C2E2FEE +:101E52001230EE070130EF3D872F8030043AF00058 +:101E620080306F067002031D382F6E08C93C031CB8 +:101E72003F2F2030EE070130EF3D872F8030073AA9 +:101E8200F00080306F067002031D492F6E08C73CB8 +:101E9200031C502F1E30EE070130EF3D872F80309C +:101EA2000A3AF00080306F067002031D5A2F6E0846 +:101EB200CE3C031C612F2030EE070130EF3D872F0F +:101EC20080300F3AF00080306F067002031D6B2FD6 +:101ED2006E08823C031C722F0430EE070130EF3D86 +:101EE200872F8030133AF00080306F067002031D96 +:101EF2007C2F6E08EC3C031C832FFA30EE07003077 +:101F0200EF3D872FF030EE070030EF3D6E08F00016 +:061F12006F08F100080059 +:101F1800710DF80DF90D7408F8027508031C750F9A +:101F2800F902F00DF10D0F30FC00710DF80DF90DEF +:101F38007408701CA52FF8027508031C750FF902A8 +:101F4800AA2FF80775080318750FF907F00DF10D9A +:101F5800FC0B992F7018B62F7408F807750803182A +:081F6800750FF90700000800E5 +:101F7000430120124201BB01BC01BD01BE01803101 +:101F80004924883101304401A300A4012F30A50069 +:101F90000130A6000B30A70080316D24883152300B +:101FA000FB002B30FC000030FD00FD0BD52FFC0B9F +:101FB000D52FFB0BD52F00009831822188310800E6 +:101FC00040019711161690319D25883143013B0839 +:101FD0004201C00043013C084201C1004001971585 +:061FE0004301A0100800FF +:10200000400197118031C827903102304401A3006C +:10201000A4016530A5000030A6000930A70080317A +:102020006D2490311930FB005A30FC00B130FD00B6 +:10203000FD0B1828FC0B1828FB0B182800000000CB +:1020400002304401A300A401A030A5000030A60086 +:102050000530A70080316D24903102304401A30087 +:102060002A30A400A630A5000030A6000130A70049 +:1020700080316D24903102304401A3003C30A40033 +:102080005F30A5000030A6000430A70080316D2429 +:10209000903164304201CA000030CB000D30FB00AB +:1020A0002D30FC00D730FD00FD0B5428FC0B5428CC +:1020B000FB0B54280000000040019715430120133A +:1020C00020104001E40142014C08C2004D08C30049 +:1020D0004E08C4004F08C5004C08D0004D08D10080 +:0A20E0004E08D2004F08D30008009C +:1020EA00003043016706031D7C2800306606031D85 +:1020FA008C284401A3013C30A4002F30A5000030F5 +:10210A00A6000330A70080316D249031F3280030F7 +:10211A0043016702031D93280A3066020318AB289D +:10212A0066084401A300430167084401A400AB30D8 +:10213A00A5000130A6008031B3239031303043012D +:10214A00B3002E30B4003008B500E628003067022C +:10215A00031DB128643066020318C92866084401C1 +:10216A00A300430167084401A400AB30A500013075 +:10217A00A6008031B323903143012F08B3002E30DB +:10218A00B4003008B500E62805306607F0000030D4 +:10219A00673DF1007008E6007108E7007008440125 +:1021AA00A3007108A400AB30A5000130A60080315D +:1021BA00B323903120304301B3002E08B4002F0816 +:1021CA00B5004401A3013C30A400B330A50001309E +:0E21DA00A6000330A70080316D24903108006C +:1021E8008831AB2490317008E6007108E7000030B0 +:1021F800E71BFF30E800E900883167269031700856 +:10220800EA007108EB000030EB1BFF30EC00ED003A +:102218006608EE006708EF008831012790318031A9 +:10222800D32790310030F4000030F5002030F6005C +:102238008130F7008831452590310030F4000030B6 +:10224800F5007A30F6008830F7008831AB259031F8 +:10225800F430F400FD30F5003430F6007F30F7003C +:102268008831AB2590317008F4007108F5007208C8 +:10227800F6007308F7008831452590310030F400E6 +:102288000030F5002030F6008130F7008831AB25AA +:1022980090310030F4000030F5000030F6007E3058 +:1022A800F7008831042490318831A62390317008D2 +:1022B8004301A7007108A8008030F2008030710641 +:1022C8007202031D69297008003C0318B6294001F1 +:1022D800161EB3295308F0005408F1005508F200FF +:1022E8005608F300E830F4000330F500F601F70172 +:1022F8008031BE219031700842014C074301BD0076 +:10230800710842014D3D4301BE00720842014E3D35 +:102318004301BF00730842014F3D4301C000400123 +:102328005708F0005808F1005908F2005A08F3005D +:10233800E830F4000330F500F601F7018031BE21E2 +:102348009031700842014C07EC0071084D3DED00DA +:1023580072084E3DEE0073084F3DEF00B6298831F4 +:10236800D4229031803043016D06F0008030690638 +:102378007002031DC92968086C02031DC929670872 +:102388006B02031DC92966086A02031CD229E730BB +:10239800E6000330E700E801E9011C2A6A0866073D +:1023A800F0006B08673DF1006C08683DF2006D08AD +:1023B800693DF3006430F400F501F601F70180315E +:1023C800BE21903143016608F4006708F5006808EB +:1023D800F6006908F7006A08F4026B08F53B6C0818 +:1023E800F63B6D08F73B8831202290317008430195 +:1023F800E6007108E7007208E8007308E900803019 +:10240800F400803073067402031D142A7208003C1D +:10241800031D142A7108033C031D142A7008E73CA5 +:1024280003181C2AE730E6000330E700E801E90159 +:0A2438006608BB006708BC0008003E +:102442002C304301E2000130E300E401E501F42015 +:1024520080302806F0008030410143067002031DDF +:10246200352A420843012702031C472A80304101D2 +:102472002906F0008030430128067002031D442A19 +:10248200270841012802031C472A842A4301201FEE +:102492004F2A00204301BB01BC01842A201E542A7A +:1024A200BB01BC01842AF4206308003C031D5B2AA3 +:1024B2006208003C03186E2A0130E2020030E33B5E +:1024C20028086502031D672A2708640203186D2A7B +:1024D2002708E4002808E500832A6408E600650866 +:1024E200E70075204301E401E5012C30E2000130F0 +:1024F200E3000B30FC006230FD00FD0B7E2AFC0B7A +:082502007E2A0000292A0800CE +:10250A007408003A031D922A7508003A031D922A9C +:10251A00FF30F0007F30F100EC2A4001FD01F901A3 +:10252A00F801710870040319003471087506FA007D +:10253A00FA1BFD09FB01F51FA72AF409F509F40A9C +:10254A000319F50AF11FAE2AF009F109F00A031975 +:10255A00F10A71087504FA00FA1BC32A88318C271C +:10256A0090317B18D82AFD1F0034F009F109F00ACE +:10257A000319F10AF809F909F80A0319F90A0034E2 +:10258A00F51FD42AF11BD02A7108F9007008F80047 +:10259A00F101F001B82AF101F001F00A0034F10961 +:1025AA00F009FB0AB52AF80A0319F90A740878022D +:1025BA00031DB82A75087902031DB82AF901F80122 +:1025CA00F00A0319F10AF11FB82A0000FF340800C3 +:1025DA0003304301E1004101EF0142013F08440198 +:1025EA00A000A10141016E084401A2008031212608 +:1025FA00903121221430F4000030F50043013B08E9 +:10260A00F0003C08F1008522700843013B07DF0017 +:10261A0071083C3DE0006108DE005E081F3C031CB7 +:10262A006E2B42013F084401A00043015E084401A9 +:10263A00A10041016E084401A20080312126903197 +:10264A002122803043013C06F0008030600670028F +:10265A00031D312B5F083B0203186C2B1430F40066 +:10266A000030F5003B08F0003C08F10085227008B4 +:10267A0043013B07DF0071083C3DE0005E08410171 +:10268A00EF00430161084101ED00803043013C063F +:10269A00F00080307002031D542B78303B0203187F +:1026AA00572B6E2B61085E07F1007108DE00710876 +:1026BA00093A031D632B0830DE006B2B5E08113AC2 +:1026CA00031D6B2B1030DE000430E1006D2B6E2BE6 +:1026DA00122B42013F084401A00041016F08440146 +:1026EA00A10041016E084401A200803121269031E7 +:0226FA000800D6 +:1026FC0041016D084301D80041016D086F07F100DD +:10270C0071084301DA0071081F3C03188F2B1F302E +:10271C00DA0041016F084301580203189B2B58083B +:10272C0041016F024301DB009C2BDB015B08410183 +:10273C00EF0042013F084401A00043015B08440143 +:10274C00A10041016E084401A20080312126903184 +:10275C002122003043013C06031DB62B00303B0602 +:10276C00031DB92B3E2C3B08DC003C08DD005B0A4A +:10277C00D90059085A02031C2F2C42013F0844016E +:10278C00A000430159084401A10041016E08440115 +:10279C00A2008031212690312122003043013C06D9 +:1027AC00031DDA2B00303B06031DDD2B3E2C803045 +:1027BC003C06F00080305D067002031DE72B5C08C0 +:1027CC003B02031CF32B6830FC00E430FD00FD0BD6 +:1027DC00ED2BFC0BED2B00002122803043013C063D +:1027EC00F00080305D067002031DFE2B5C083B027E +:1027FC00031C0A2C6830FC00E430FD00FD0B042C9B +:10280C00FC0B042C00002122803043013C06F0001C +:10281C0080305D067002031D152C5C083B0203180A +:10282C002C2C3B08DC003C08DD0059084101EF0072 +:10283C00803043013C06F00080307002031D282CD0 +:10284C0078303B0203182B2C2F2C2D2C2F2CD90A33 +:10285C00BF2B42013F084401A00041016F08440115 +:10286C00A10041016E084401A20080312126903163 +:02287C00080052 +:10287E0003304301DD00D9015D084101EC00033056 +:10288E004301DA001430F4000030F5003B08F0008C +:10289E003C08F1008522700843013B07DB007108FC +:1028AE003C3DDC005D08D80058081F3C031CBC2CC6 +:1028BE0058084401A00041016F084401A1004101E4 +:1028CE006E084401A200803121269031ED22212292 +:1028DE00803043013C06F00080305C067002031D20 +:1028EE007A2C5B083B020318BA2C1430F40000302B +:1028FE00F5003B08F0003C08F1008522700843010A +:10290E003B07DB0071083C3DDC0058084201BF006C +:10291E0041016F084301D9005D084101EC006D08CB +:10292E004301DA0080303C06F00080307002031D57 +:10293E00A22C78303B020318A52CBC2C5D0858073E +:10294E00F1007108D8007108093A031DB12C083046 +:10295E00D800B92C5808113A031DB92C1030D800E4 +:10296E000430DD00BB2CBC2C5B2C59084101EF0060 +:10297E0042013F084401A000430159084401A1004F +:10298E0041016E084401A20080312126903143019D +:10299E005A084101ED006830FC00E430FD00FD0BEB +:0A29AE00D62CFC0BD62C000008000C +:1029B80041016C084301D80041016C0842013F07FE +:1029C800F10071084301DA0071081F3C0318EE2C6E +:1029D8001F30DA0042013F08430158020318FA2C5D +:1029E800580842013F024301DB00FB2CDB015B0876 +:1029F8004201BF0043015B084401A00041016F0888 +:102A08004401A10041016E084401A2008031212641 +:102A180090312122003043013C06031D152D003062 +:102A28003B06031D182D9C2D3B08DC003C08DD00EF +:102A38005B0AD90059085A02031C8D2D5908440114 +:102A4800A00041016F084401A10041016E08440142 +:102A5800A2008031212690312122003043013C061A +:102A6800031D382D00303B06031D3B2D9C2D803067 +:102A78003C06F00080305D067002031D452D5C08A1 +:102A88003B02031C512D6830FC00E430FD00FD0BB7 +:102A98004B2DFC0B4B2D00002122803043013C06BE +:102AA800F00080305D067002031D5C2D5C083B025F +:102AB800031C682D6830FC00E430FD00FD0B622D1E +:102AC800FC0B622D00002122803043013C06F000FF +:102AD80080305D067002031D732D5C083B020318ED +:102AE8008A2D3B08DC003C08DD0059084201BF0084 +:102AF800803043013C06F00080307002031D862DB3 +:102B080078303B020318892D8D2D8B2D8D2DD90AF8 +:102B18001E2D42013F084401A00041016F084401F5 +:102B2800A10041016E084401A200803121269031A4 +:022B3800080093 +:102B3A006400400119110530FB000F30FC00F13030 +:102B4A00FD00FD0BA62DFC0BA62DFB0BA62D2122AD +:102B5A00803043013C06F00080307002031DB72D1F +:102B6A006E303B020318BC2D400119154A2F8031E3 +:102B7A00C82790310330FB000830FC007730FD0095 +:102B8A00FD0BC52DFC0BC52DFB0BC52D212280305D +:102B9A0043013C06F00080307002031DD62D6E30D2 +:102BAA003B020318DB2D400119154A2F43013B084C +:102BBA00D2003C08D3003F24003043013C06031DE9 +:102BCA00E82D00303B06031DEF2D8031C8279031D8 +:102BDA0019154A2F2122803043013C06F00080302B +:102BEA007002031DFA2D78303B020318FF2D4001B5 +:102BFA0019154A2FDC24003043013C06031D072E19 +:102C0A0000303B06031D0E2E8031C827903119155E +:102C1A004A2F2122803043013C06F00080307002A6 +:102C2A00031D192E78303B0203181E2E4001191578 +:102C3A004A2F7E23003043013C06031D262E003016 +:102C4A003B06031D2D2E8031C827903119154A2FB6 +:102C5A002122803043013C06F00080307002031DBF +:102C6A00382E78303B0203183D2E400119154A2FA1 +:102C7A00803043013C06F10080307102031D472E6B +:102C8A00C8303B02013003180030F10080303C06A6 +:102C9A00F000803053067002031D552E52083B0285 +:102CAA00013003180030F00070087105F3003B088A +:102CBA005202F1003C08533BF2008030F0008030B1 +:102CCA0072067002031D6B2E7108643C01300318F2 +:102CDA000030F0007308F0050319762E400119152B +:102CEA004A2F43013B08D2003C08D30042013F0867 +:102CFA004301D400D50141016F084301D600D70131 +:102D0A0041016E08013A031D8C2EEE018E2E013010 +:102D1A00EE008031C827903142013F084401A000EB +:102D2A0041016F084401A10041016E084401A2005B +:102D3A008031212690310330FB000830FC007730C7 +:102D4A00FD00FD0BA62EFC0BA62EFB0BA62E2122A8 +:102D5A00803043013C06F00080307002031DB72E1C +:102D6A0078303B020318BC2E400119154A2F3F2424 +:102D7A00003043013C06031DC42E00303B06031DF0 +:102D8A00CB2E8031C827903119154A2F2122803045 +:102D9A0043013C06F00080307002031DD62E7830C5 +:102DAA003B020318DB2E400119154A2FDC240030A0 +:102DBA0043013C06031DE32E00303B06031DEA2EA9 +:102DCA008031C827903119154A2F212280304301BA +:102DDA003C06F00080307002031DF52E78303B026D +:102DEA000318FA2E400119154A2F7E230030430199 +:102DFA003C06031D022F00303B06031D092F8031BC +:102E0A00C827903119154A2F2122803043013C06E8 +:102E1A00F00080307002031D142F78303B02031833 +:102E2A00192F400119154A2F803043015306F0002B +:102E3A0080303C067002031D242F3B0852020318FF +:102E4A00462F41016E08013A031D2D2FEE012F2F47 +:102E5A000130EE00430154084201BF004301560805 +:102E6A004101EF00430154084401A0004301560800 +:102E7A004401A10041016E084401A20080312126CB +:0C2E8A009031640021224001191508005D +:102E96004001971102304401A300A401D530A500DA +:102EA6000030A6000930A70080316D2490319D25A1 +:102EB60043013B084201C00043013C084201C100F6 +:102EC60043013B084201CA0043013C084201CB00D2 +:102ED60002304401A300A401DF30A5000030A600A3 +:102EE6000430A70080316D24903102304401A300E4 +:102EF6002A30A400E430A5000030A6000130A70067 +:102F060080316D249031420140084401A000420105 +:102F160041084401A1008031D22690319715430122 +:102F2600A012A0104001E40142014C08C2004D0865 +:102F3600C3004E08C4004F08C5004C08D0004D0819 +:0C2F4600D1004E08D2004F08D300080054 +:102F52006C304301A1000330A2002330A3000230F1 +:102F6200A40041019301940195019601EC309A0568 +:082F7200131613159317080054 +:10300000803182219831410147084401B400803168 +:103010002A21983140304401B40080312A2198316E +:103020000A30F4000030F50043014908F0004A0876 +:10303000F10090318522983170084301C900710870 +:10304000CA0080307106F2008030013A7202031D1E +:103050002B282C307002031832282C30C900013084 +:10306000CA0042288030013AF00080304A067002DF +:10307000031D3C284908A43C03184228A430C90079 +:103080000130CA002C304902F30001304A3BF40001 +:103090007308C9007408CA000530F2007308F00014 +:1030A0007408F100720803195928F035F10DFF3E3C +:1030B00053287008C9007108CA007830F400003045 +:1030C000F50090318522983170084301CC00193009 +:1030D0007002031C752818304C02CD000830CE0059 +:1030E0000830CF000830D000932811304C02031C68 +:1030F0008228CD0110304C02CE000830CF000830BD +:10310000D000932809304C02031C8E28CD01CE013B +:1031100008304C02CF000830D0009328CD01CE01FA +:10312000CF014C08D0008030D10001304D02F000BA +:10313000F1010030F13B7008F1005108F000710816 +:103140000319A528F036FF3EA0287008FF3CD100E7 +:10315000D10A0330D1044401AD017730AE00803193 +:103160000B229831430151084401B40080312A21D7 +:103170009831430151084401B40080312A2198312B +:10318000430151084401B40080312A2198311F3095 +:103190004301D1044401AD017530AE0080310B22F2 +:1031A0009831430151084401B40080312A219831FB +:1031B000430151084401B40080312A21983144016F +:1031C000AD017A30AE0080310B22983143015108B5 +:1031D0004401B40080312A2198314301510844014F +:1031E000B40080312A21983180304301D100013070 +:1031F0004E02F000F1010030F13B7008F10051087F +:10320000F000710803190729F036FF3E0229700803 +:10321000FF3CD100D10A01304401AD007530AE0051 +:1032200080310B2298314301CB014B08063C031C33 +:10323000222951084401B40080312A2198314301E8 +:10324000CB0A15298030D10001304F02F000F10186 +:103250000030F13B7008F1005108F00071080319CB +:103260003429F036FF3E2F297008FF3CD100D10AE7 +:1032700002304401AD007530AE0080310B22983130 +:103280004301CB014B08063C031C4F295108440164 +:10329000B40080312A2198314301CB0A4229803081 +:1032A000D10001305002F000F1010030F13B700814 +:1032B000F1005108F000710803196129F036FF3E52 +:1032C0005C297008FF3CD100D10AC030D104033022 +:1032D0004401AD007530AE0080310B2298314301BE +:1032E000CB014B08063C031C7E2951084401B40065 +:1032F00080312A2198314301CB0A71298031F42190 +:0433000098310800F8 +:103304008B1340019E134E018C1216167E01CA12B5 +:10331400C91640011612171697151A104F01961761 +:103324004301C9014908003A031DA7290530FB00E0 +:103334000F30FC00F130FD00FD0B9E29FC0B9E2993 +:10334400FB0B9E297E01CA12630000000530FB00BE +:103354000F30FC00F130FD00FD0BAE29FC0BAE2953 +:10336400FB0BAE2940018D1AB9290314BA290310A5 +:10337400031CBF294301C90AC1294301C9014908E2 +:103384000F3C0318C629C72994294F0196134E01EF +:1033940016127E01C912CA1240019E178B174301EF +:1033A400A0158831D422983140018D1ADB290314E9 +:1033B400DC290310031CE0290000D6294301201353 +:1033C400A0122012A0104001E40142014C08430164 +:0433D400C900080024 +:1033D800643041016A024301C300003041016B3B84 +:1033E8004301C4000330FB000830FC007730FD00C7 +:1033F800FD0BFC29FC0BFC29FB0BFC295830C200F7 +:10340800C501C601C701C801C1014208410203182C +:103418002F2A9031F420983180304606F000803011 +:1034280028067002031D1A2A270845020318242AB1 +:103438002708C5002808C6003B08C7003C08C80084 +:103448000B30FC006230FD00FD0B282AFC0B282AFB +:103458000000C10A092A8030F00080304606700258 +:10346800031D382A4508003C0318852A4001161E0A +:10347800822A5308F0005408F1005508F200560853 +:10348800F300E830F4000330F500F601F70180316D +:10349800BE219831700842014C074301BD007108F4 +:1034A80042014D3D4301BE00720842014E3D4301B9 +:1034B800BF00730842014F3D4301C0004001570857 +:1034C800F0005808F1005908F2005A08F300E830F3 +:1034D800F4000330F500F601F7018031BE21983180 +:1034E800700842014C07EC0071084D3DED00720870 +:1034F8004E3DEE0073084F3DEF00852A8831D422F7 +:1035080098314301460842014706031D8E2A4608A2 +:10351800430145060319BE2A4301201DA12A44017F +:10352800A3012A30A400E630A5000030A60001302F +:10353800A70080316D249831AE2A4401A3012A30B6 +:10354800A400E830A5000030A6000130A7008031B3 +:103558006D249831430145084201C60043014608DD +:103568004201C70043014508E6004608E7009031DC +:1035780075209831803043014606F0008030700293 +:10358800031DC82A0A3045020318D82AC701C801F2 +:10359800420140084401A000420141084401A10041 +:1035A8008031D2269831122C4301201D4F2B033035 +:1035B800C2004208003A0319192B02304401A30043 +:1035C8000630A4002030A5000130A6000930A7006D +:1035D80080316D2498311530FB004B30FC00BE3033 +:1035E800FD00FD0BF52AFC0BF52AFB0BF52A000064 +:1035F80002304401A300A401CB30A5000030A6008E +:103608000930A70080316D2498311530FB004B300C +:10361800FC00BE30FD00FD0B0F2BFC0B0F2BFB0B32 +:103628000F2B00004301C203DD2A02304401A3002E +:10363800A401B630A5000030A6000930A7008031EB +:103648006D24983102304401A3002A30A400C03010 +:10365800A5000030A6000130A70080316D24983104 +:10366800430147084401A000430148084401A10060 +:103678008031D22698311530FB004B30FC00BE302B +:10368800FD00FD0B452BFC0B452BFB0B452B0000D0 +:1036980043012011E92B80304606F00080304101BB +:1036A80043067002031D5B2B420843014502031CBD +:1036B8007C2B430180304606F0008030410129060A +:1036C8007002031D6A2B28084301450203187C2B4E +:1036D800430180304806F000803041016B067002DB +:1036E800031D792B6A0843014702031C7C2B8A2B94 +:1036F80043018030033AF000803048067002031D11 +:10370800872B4708843C031C8A2BE92B8030420115 +:103718004B06F0008030430148067002031D972BCA +:10372800470842014A020318B02B42014A084301E4 +:103738004702F10042014B084301483BF200803048 +:103748004406F000803072067002031DAD2B71082C +:1037580043020318B02BE52B430180304806F000E4 +:10376800803042014B067002031DBD2B4A084301FD +:1037780047020318D72B4301470842014A02F100C8 +:103788004301480842014B3BF200803043014406A4 +:10379800F000803072067002031DD42B71084302BA +:1037A8000318D72BE52B43018030033AF000803013 +:1037B80048067002031DE22B4708843C031CE52BD6 +:1037C800E92B90314B279831122C8030F000803053 +:1037D800430148067002031DF32B4708633C031896 +:1037E800122C480842014106031DFD2B40084301E5 +:1037F80047060319122C430147084201C000430140 +:1038080048084201C100430147084401A0004301A0 +:0E38180048084401A1008031D22698310800F2 +:103826008031072798312A0842014906031D1E2CBC +:1038360048084301290603192E2C43012908420191 +:10384600C80043012A084201C90043012908C900EA +:103856002A08CA00002080300E3AF000803043016A +:103866002A067002031D392C2908743C03184D2CB6 +:103876004001971117160230FB003830FC00AD30BE +:10388600FD00FD0B442CFC0B442CFB0B442C971524 +:1038960017167D2C80300E3AF000803043012A0640 +:1038A6007002031D582C2908063C03186C2C400195 +:1038B600971117120230FB003830FC00AD30FD00C6 +:1038C600FD0B632CFC0B632CFB0B632C9715171657 +:1038D6007D2C4001171297150230FB003830FC0092 +:1038E600AD30FD00FD0B752CFC0B752CFB0B752C00 +:1038F60017169715803043012A06F00080300D3ADE +:103906007002031D882C483029020318A92C803127 +:103916004924983101304401A300A401AA30A5002E +:103926000030A6000B30A70080316D24983152304C +:10393600FB002B30FC000030FD00FD0BA02CFC0B27 +:0E394600A02CFB0BA02C000016128221080002 +:103954007E01B801C3014314C3144315CE01E4012D +:10396400D90153019013941340018C018D018E01F0 +:103974008F0190019601970110309800063099004C +:103984009A019101273092009301940195017E01DF +:103994003A15BA15DB145B1540019F121F179F13CC +:1039A4001E16C0309C00E0309D004E018C12400178 +:1039B4009E174E0196161E304F019600FE3097005A +:1039C400473098007F30990077309A00DF309B00B1 +:1039D4008B170530FB000F30FC00F130FD00FD0BB0 +:0C39E400F12CFC0BF12CFB0BF12C08006B +:1039F000A031A4209831AA244001171619154301BB +:103A0000A0158831D42298319031A92798314301EB +:103A100020112013A01220122010A01040015308E2 +:103A2000F0005408F1005508F2005608F300E830A1 +:103A3000F4000330F500F601F7018031BE21983122 +:103A4000700842014C074301BD00710842014D3D21 +:103A50004301BE00720842014E3D4301BF0073089E +:103A600042014F3D4301C00040015708F000580893 +:103A7000F1005908F2005A08F300E830F40003306E +:103A8000F500F601F7018031BE219831700842013E +:103A90004C07EC0071084D3DED0072084E3DEE0004 +:103AA00073084F3DEF00410144084301A500410167 +:103AB00045084301A600420145084F02031D6A2D37 +:103AC00044084E02031D6A2D43084D02031D6A2D52 +:103AD00042084C02031C742DB830C2070B30C33DA2 +:103AE0000030C43DC53D1324420153084F02031D5D +:103AF000832D52084E02031D832D51084D02031DD4 +:103B0000832D50084C02031C8D2D2C30D007013022 +:103B1000D13D0030D23DD33DEC214301400842016C +:103B20004F02031DA32D43013F0842014E02031D16 +:103B3000A32D43013E0842014D02031DA32D430165 +:103B40003D0842014C02031CA72D40011612420100 +:103B50006F084F02031DB62D6E084E02031DB62DD1 +:103B60006D084D02031DB62D6C084C02031CB92DC7 +:103B700082214301201FC62D4001161EC32D903106 +:103B800000209831C62D8831D42298314301A01EDF +:103B9000D32D4001161ED02D90314B279831D32DB7 +:103BA0008831D42298314301201EE02D4001161E99 +:103BB000DD2D8831B8279831E02D8831D422983115 +:103BC0004301201CEC2D4001161AE92D8831D42226 +:103BD00098319031002098314301A01CFC2D400108 +:103BE000161AF92D8831E02798318831D42298317E +:0C3BF000FC2D90314B2798315B2DFD2DF2 +:10414800BD308400973085004030F0000130F10028 +:104158002F308600003087008031F027A031593099 +:104168008400A03085002630F0000130F100A03036 +:104178008600003087008031F027A03103308400AA +:10418800803085000130F0000130F1006F3086008A +:10419800003087008031F027A0317F308400A030C4 +:1041A80085002430F0000130F100C6308600003070 +:1041B80087008031F027A031DF3084009F308500F0 +:1041C8000A30F0000130F10020308600013087000D +:1041D8008031F027A031FD3084009730850002300F +:1041E800F0000130F100EA308600003087008031AD +:1041F800F027A031F9308400873085000530F000C1 +:104208000130F1002A308600013087008031F02724 +:10421800A031FF308400973085000130F000013074 +:10422800F100EC308600003087008031F027A031A3 +:10423800F33084008F3085000C30F0000130F1003D +:104248002F308600013087008031F027A031FF3001 +:1042580084008F3085000130F0000130F100ED302E +:104268008600003087008031F027A031E9308400D3 +:104278009F3085000430F0000130F1003B308600AB +:10428800013087008031F027A031FE30840087306C +:1042980085000230F0000130F100EE308600003079 +:1042A80087008031F027A03100308400A0308500DD +:1042B8002D30F0000130F1003F30860001308700DA +:0842C8008031F027A03108004D +:020006000234C2 +:0A0FF20030342E3430343034003433 +:020FFC000034BF +:020FFE000034BD +:101FE600203450344F3457344534523420344F342F +:081FF600463446342034003467 +:021FFE000034AD +:082F7A0030342E3430340034F1 +:102F82002034443445345334493447344E34453480 +:102F9200443420344234593420344E3437344434A7 +:062FA20044344334003406 +:102FA800203446345734203456344534523453345C +:0A2FB80049344F344E342034003405 +:082FC2002C340134003400340A +:082FCA00083407340034003420 +:082FD20031342E343334003495 +:0A2FDA0030342E343034303400342B +:022FE4000034B7 +:102FE6005234453453344534543420342034203458 +:042FF600203400344F +:042FFA0082340034E9 +:022FFE0000349D +:103BFE0000340034003400340034003400345F34B8 +:103C0E0000340034003407340034073400341434E4 +:103C1E007F3414347F34143424342A347F342A34D9 +:103C2E001234233413340834643462343634493451 +:103C3E005534223450340034053403340034003407 +:103C4E0000341C34223441340034003441342234E4 +:103C5E001C34003408342A341C342A340834083412 +:103C6E0008343E34083408340034503430340034D0 +:103C7E00003408340834083408340834003430343E +:103C8E003034003400342034103408340434023418 +:103C9E003E345134493445343E34003442347F345A +:103CAE004034003442346134513449344634213482 +:103CBE00413445344B3431341834143412347F3497 +:103CCE001034273445344534453439343C344A3481 +:103CDE0049344934303401347134093405340334F1 +:103CEE003634493449344934363406344934493447 +:103CFE0029341E3400343634363400340034003463 +:103D0E00563436340034003400340834143422343B +:103D1E0041341434143414341434143441342234ED +:103D2E001434083400340234013451340934063466 +:103D3E0032344934793441343E347E3411341134C2 +:103D4E0011347E347F3449344934493436343E3468 +:103D5E0041344134413422347F34413441342234AD +:103D6E001C347F3449344934493441347F34093466 +:103D7E000934013401343E34413441345134323447 +:103D8E007F340834083408347F34003441347F34AF +:103D9E00413400342034403441343F3401347F34D4 +:103DAE0008341434223441347F34403440344034A7 +:103DBE0040347F340234043402347F347F3404348C +:103DCE00083410347F343E344134413441343E346F +:103DDE007F3409340934093406343E3441345134C5 +:103DEE0021345E347F340934193429344634463450 +:103DFE004934493449343134013401347F34013487 +:103E0E0001343F344034403440343F341F34203486 +:103E1E00403420341F347F342034183420347F341F +:103E2E00633414340834143463340334043478346F +:103E3E00043403346134513449344534433400344A +:103E4E0000347F34413441340234043408341034A5 +:103E5E002034413441347F3400340034043402348D +:103E6E00013402340434403440344034403440345D +:103E7E0000340134023404340034203454345434C5 +:103E8E00543478347F3448344434443438343834F9 +:103E9E004434443444342034383444344434483480 +:103EAE007F343834543454345434183408347E3413 +:103EBE0009340134023408341434543454343C3448 +:103ECE007F340834043404347834003444347D347C +:103EDE00403400342034403444343D340034003413 +:103EEE007F34103428344434003441347F34403429 +:103EFE0000347C3404341834043478347C3408347C +:103F0E000434043478343834443444344434383447 +:103F1E007C34143414341434083408341434143403 +:103F2E0018347C347C340834043404340834483473 +:103F3E00543454345434203404343F3444344034F0 +:103F4E0020343C344034403420347C341C3420340F +:103F5E00403420341C343C344034303440343C340F +:103F6E00443428341034283444340C34503450340F +:103F7E0050343C344434643454344C34443400347B +:103F8E000834363441340034003400347F34003485 +:103F9E0000340034413436340834003408340834E4 +:103FAE002A341C34083408341C342A3408340834B7 +:103FBE004F345634453452344C344F3441344434F7 +:043FCE002034003467 +:083FD200003400340034003417 +:0240000000348A +:044002000034003452 +:084006000034003400340034E2 +:04400E000F34273410 +:044012000034003442 +:0440160064340034DA +:08401A000034003400340034CE +:084022000034003400340034C6 +:04402A003D340034ED +:10402E005334573452342034203420342034203446 +:04403E0020340034F6 +:104042005034573452342034203420342034203435 +:0440520057340034AB +:044056003D340034C1 +:10405A00F834F8341F341F340334033403341F3460 +:10406A001F34F834F834FF34FF3400340034003499 +:10407A000034003400340034FF34FF34FF34FF349A +:10408A000034003400340034003400340034FF3487 +:10409A00FF34FF34FF34C034C034C034C034C034B9 +:0840AA00C034C034FF34FF34C0 +:0C40B2005334573452342034203400348E +:0440BE003D34003459 +:0440C20096340034FC +:1040C600203420344C344F34573420344234413475 +:0840D60054345434203400344A +:1040DE005334573452342034203420342034203496 +:0440EE002034003446 +:0440F2003D34003425 +:0440F6000A34003454 +:0440FA000734003453 +:0240FE0000348C +:0441000078340034DB +:02410400403445 +:02410600013482 +:104108002034203420342034203420342034203407 +:04411800203400341B +:10411C00543455344E344534203420342034203437 +:04412C002034003407 +:0A4130005334573452342034003465 +:04413A003D340034DC +:04413E003E340034D7 +:044142003D340034D4 +:020000040001F9 +:0A000E000429213E1F3F03300300C8 +:00000001FF diff --git a/Firmware/ATU-10_FW_13/ATU-10.log b/Firmware/ATU-10_FW_13/ATU-10.log new file mode 100644 index 0000000..d5c78db --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.log @@ -0,0 +1,21 @@ +0 1 mikroCPIC1618.exe -MSF -DBG -pP16LF18877 -DL -O11111114 -fo32 -N"D:\Projects\ATU-10\Firmware_1.3\ATU-10.mcppi" -SP"C:\Program Files (x86)\mikroC PRO for PIC\Defs\" -SP"C:\Program Files (x86)\mikroC PRO for PIC\Uses\P16_Enh\" -SP"D:\Projects\ATU-10\Firmware_1.3\" -IP"C:\Program Files (x86)\mikroC PRO for PIC\Uses\P16_Enh\" "pic_init.c" "oled_control.c" "Soft_I2C.c" "main.c" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_Conversions.mcl" "__Lib_Button.mcl" "__Lib_ADC_18xxx.mcl" +hint: 0 1139 Available RAM: 4080 [bytes], Available ROM: 32768 [bytes] +diagnostics: 0 122 Compilation Started pic_init.c +diagnostics: 63 123 Compiled Successfully pic_init.c +diagnostics: 0 122 Compilation Started font_5x8.h +diagnostics: 278 123 Compiled Successfully oled_control.c +diagnostics: 0 122 Compilation Started soft_i2c.h +diagnostics: 92 123 Compiled Successfully Soft_I2C.c +diagnostics: 0 122 Compilation Started pic_init.h +hint: 0 1004 interrupt handler (interupt at 0x0004) main.c +diagnostics: 818 123 Compiled Successfully main.c +hint: 528 1164 Variable 'd' has been eliminated by optimizer main.c +hint: 552 1164 Variable 'd' has been eliminated by optimizer main.c +hint: 577 1164 Variable 'p' has been eliminated by optimizer main.c +diagnostics: 0 127 All files Compiled in 188 ms +hint: 0 1144 Used RAM (bytes): 327 (8%) Free RAM (bytes): 3753 (92%) Used RAM (bytes): 327 (8%) Free RAM (bytes): 3753 (92%) +hint: 0 1144 Used ROM (program words): 8525 (26%) Free ROM (program words): 24243 (74%) Used ROM (program words): 8525 (26%) Free ROM (program words): 24243 (74%) +diagnostics: 0 125 Project Linked Successfully ATU-10.mcppi +diagnostics: 0 128 Linked in 62 ms +diagnostics: 0 129 Project 'ATU-10.mcppi' completed: 281 ms +diagnostics: 0 103 Finished successfully: 02 Sep 2021, 21:16:41 ATU-10.mcppi diff --git a/Firmware/ATU-10_FW_13/ATU-10.lst b/Firmware/ATU-10_FW_13/ATU-10.lst new file mode 100644 index 0000000..d657312 --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.lst @@ -0,0 +1,12561 @@ +; LST file generated by mikroListExporter - v.2.0 +; Date/Time: 9/2/2021 9:16:41 PM +;---------------------------------------------- + +;Address Opcode ASM +0x0000 0x3198 MOVLP 24 +0x0001 0x2CF8 GOTO 7416 +_interupt: +;main.c,30 :: void interupt() iv 0x0004 { +0x0004 0x0870 MOVF R0, 0 +0x0005 0x0140 MOVLB 0 +0x0006 0x00AE MOVWF 46 +0x0007 0x0871 MOVF R1, 0 +0x0008 0x00AD MOVWF 45 +0x0009 0x0872 MOVF R2, 0 +0x000A 0x00AC MOVWF 44 +0x000B 0x0873 MOVF R3, 0 +0x000C 0x00AB MOVWF 43 +0x000D 0x0874 MOVF R4, 0 +0x000E 0x00AA MOVWF 42 +0x000F 0x0875 MOVF R5, 0 +0x0010 0x00A9 MOVWF 41 +0x0011 0x0876 MOVF R6, 0 +0x0012 0x00A8 MOVWF 40 +0x0013 0x0877 MOVF R7, 0 +0x0014 0x00A7 MOVWF 39 +0x0015 0x0878 MOVF R8, 0 +0x0016 0x00A6 MOVWF 38 +0x0017 0x0879 MOVF R9, 0 +0x0018 0x00A5 MOVWF 37 +0x0019 0x087A MOVF R10, 0 +0x001A 0x00A4 MOVWF 36 +0x001B 0x087B MOVF R11, 0 +0x001C 0x00A3 MOVWF 35 +0x001D 0x087C MOVF R12, 0 +0x001E 0x00A2 MOVWF 34 +;main.c,32 :: if(TMR0IF_bit) { // Timer0 +0x001F 0x3180 MOVLP 0 +0x0020 0x014E MOVLB 14 +0x0021 0x1E8C BTFSS TMR0IF_bit, BitPos(TMR0IF_bit+0) +0x0022 0x2830 GOTO L_interupt0 +;main.c,33 :: TMR0IF_bit = 0; +0x0023 0x128C BCF TMR0IF_bit, BitPos(TMR0IF_bit+0) +;main.c,34 :: Tick++; +0x0024 0x3001 MOVLW 1 +0x0025 0x0142 MOVLB 2 +0x0026 0x07CC ADDWF _Tick, 1 +0x0027 0x3000 MOVLW 0 +0x0028 0x3DCD ADDWFC _Tick+1, 1 +0x0029 0x3DCE ADDWFC _Tick+2, 1 +0x002A 0x3DCF ADDWFC _Tick+3, 1 +;main.c,35 :: TMR0L = 0xC0; // 80_000 cycles to OF +0x002B 0x30C0 MOVLW 192 +0x002C 0x0140 MOVLB 0 +0x002D 0x009C MOVWF TMR0L +;main.c,36 :: TMR0H = 0xE0; +0x002E 0x30E0 MOVLW 224 +0x002F 0x009D MOVWF TMR0H +;main.c,37 :: } +L_interupt0: +;main.c,39 :: if(Tick>=btn_cnt){ // every 10ms +0x0030 0x0142 MOVLB 2 +0x0031 0x083E MOVF _btn_cnt+3, 0 +0x0032 0x024F SUBWF _Tick+3, 0 +0x0033 0x1D03 BTFSS STATUS, 2 +0x0034 0x283F GOTO L__interupt242 +0x0035 0x083D MOVF _btn_cnt+2, 0 +0x0036 0x024E SUBWF _Tick+2, 0 +0x0037 0x1D03 BTFSS STATUS, 2 +0x0038 0x283F GOTO L__interupt242 +0x0039 0x083C MOVF _btn_cnt+1, 0 +0x003A 0x024D SUBWF _Tick+1, 0 +0x003B 0x1D03 BTFSS STATUS, 2 +0x003C 0x283F GOTO L__interupt242 +0x003D 0x083B MOVF _btn_cnt, 0 +0x003E 0x024C SUBWF _Tick, 0 +L__interupt242: +0x003F 0x1C03 BTFSS STATUS, 0 +0x0040 0x290E GOTO L_interupt1 +;main.c,40 :: btn_cnt += 10; +0x0041 0x300A MOVLW 10 +0x0042 0x07BB ADDWF _btn_cnt, 1 +0x0043 0x3000 MOVLW 0 +0x0044 0x3DBC ADDWFC _btn_cnt+1, 1 +0x0045 0x3DBD ADDWFC _btn_cnt+2, 1 +0x0046 0x3DBE ADDWFC _btn_cnt+3, 1 +;main.c,42 :: if(GetButton | Start){ +0x0047 0x0140 MOVLB 0 +0x0048 0x1A8D BTFSC PORTB, 5 +0x0049 0x284C GOTO L__interupt243 +0x004A 0x1474 BSF R4, 0 +0x004B 0x284D GOTO L__interupt244 +L__interupt243: +0x004C 0x1074 BCF R4, 0 +L__interupt244: +0x004D 0x188F BTFSC PORTD, 1 +0x004E 0x2851 GOTO L__interupt245 +0x004F 0x1403 BSF STATUS, 0 +0x0050 0x2852 GOTO L__interupt246 +L__interupt245: +0x0051 0x1003 BCF STATUS, 0 +L__interupt246: +0x0052 0x1874 BTFSC R4, 0 +0x0053 0x2858 GOTO L__interupt247 +0x0054 0x1803 BTFSC STATUS, 0 +0x0055 0x2858 GOTO L__interupt247 +0x0056 0x1074 BCF R4, 0 +0x0057 0x2859 GOTO L__interupt248 +L__interupt247: +0x0058 0x1474 BSF R4, 0 +L__interupt248: +0x0059 0x1C74 BTFSS R4, 0 +0x005A 0x289C GOTO L_interupt2 +;main.c,43 :: disp_cnt = Tick + Disp_time*1000; +0x005B 0x0140 MOVLB 0 +0x005C 0x0853 MOVF _Disp_time, 0 +0x005D 0x00F0 MOVWF R0 +0x005E 0x0854 MOVF _Disp_time+1, 0 +0x005F 0x00F1 MOVWF R1 +0x0060 0x0855 MOVF _Disp_time+2, 0 +0x0061 0x00F2 MOVWF R2 +0x0062 0x0856 MOVF _Disp_time+3, 0 +0x0063 0x00F3 MOVWF R3 +0x0064 0x30E8 MOVLW 232 +0x0065 0x00F4 MOVWF R4 +0x0066 0x3003 MOVLW 3 +0x0067 0x00F5 MOVWF R5 +0x0068 0x01F6 CLRF R6 +0x0069 0x01F7 CLRF R7 +0x006A 0x21BE CALL _Mul_32x32_U +0x006B 0x0870 MOVF R0, 0 +0x006C 0x0142 MOVLB 2 +0x006D 0x074C ADDWF _Tick, 0 +0x006E 0x0143 MOVLB 3 +0x006F 0x00BD MOVWF _disp_cnt +0x0070 0x0871 MOVF R1, 0 +0x0071 0x0142 MOVLB 2 +0x0072 0x3D4D ADDWFC _Tick+1, 0 +0x0073 0x0143 MOVLB 3 +0x0074 0x00BE MOVWF _disp_cnt+1 +0x0075 0x0872 MOVF R2, 0 +0x0076 0x0142 MOVLB 2 +0x0077 0x3D4E ADDWFC _Tick+2, 0 +0x0078 0x0143 MOVLB 3 +0x0079 0x00BF MOVWF _disp_cnt+2 +0x007A 0x0873 MOVF R3, 0 +0x007B 0x0142 MOVLB 2 +0x007C 0x3D4F ADDWFC _Tick+3, 0 +0x007D 0x0143 MOVLB 3 +0x007E 0x00C0 MOVWF _disp_cnt+3 +;main.c,44 :: off_cnt = Tick + Off_time*1000; +0x007F 0x0140 MOVLB 0 +0x0080 0x0857 MOVF _Off_time, 0 +0x0081 0x00F0 MOVWF R0 +0x0082 0x0858 MOVF _Off_time+1, 0 +0x0083 0x00F1 MOVWF R1 +0x0084 0x0859 MOVF _Off_time+2, 0 +0x0085 0x00F2 MOVWF R2 +0x0086 0x085A MOVF _Off_time+3, 0 +0x0087 0x00F3 MOVWF R3 +0x0088 0x30E8 MOVLW 232 +0x0089 0x00F4 MOVWF R4 +0x008A 0x3003 MOVLW 3 +0x008B 0x00F5 MOVWF R5 +0x008C 0x01F6 CLRF R6 +0x008D 0x01F7 CLRF R7 +0x008E 0x21BE CALL _Mul_32x32_U +0x008F 0x0870 MOVF R0, 0 +0x0090 0x0142 MOVLB 2 +0x0091 0x074C ADDWF _Tick, 0 +0x0092 0x00EC MOVWF _off_cnt +0x0093 0x0871 MOVF R1, 0 +0x0094 0x3D4D ADDWFC _Tick+1, 0 +0x0095 0x00ED MOVWF _off_cnt+1 +0x0096 0x0872 MOVF R2, 0 +0x0097 0x3D4E ADDWFC _Tick+2, 0 +0x0098 0x00EE MOVWF _off_cnt+2 +0x0099 0x0873 MOVF R3, 0 +0x009A 0x3D4F ADDWFC _Tick+3, 0 +0x009B 0x00EF MOVWF _off_cnt+3 +;main.c,45 :: } +L_interupt2: +;main.c,47 :: if(GetButton){ // +0x009C 0x0140 MOVLB 0 +0x009D 0x1A8D BTFSC PORTB, 5 +0x009E 0x28A1 GOTO L__interupt249 +0x009F 0x1403 BSF STATUS, 0 +0x00A0 0x28A2 GOTO L__interupt250 +L__interupt249: +0x00A1 0x1003 BCF STATUS, 0 +L__interupt250: +0x00A2 0x1C03 BTFSS STATUS, 0 +0x00A3 0x28C1 GOTO L_interupt3 +;main.c,48 :: if(btn_1_cnt<250) btn_1_cnt++; +0x00A4 0x0140 MOVLB 0 +0x00A5 0x30FA MOVLW 250 +0x00A6 0x0264 SUBWF _btn_1_cnt, 0 +0x00A7 0x1803 BTFSC STATUS, 0 +0x00A8 0x28AA GOTO L_interupt4 +0x00A9 0x0AE4 INCF _btn_1_cnt, 1 +L_interupt4: +;main.c,49 :: if(btn_1_cnt==25) B_long = 1; // long pressing detected +0x00AA 0x0864 MOVF _btn_1_cnt, 0 +0x00AB 0x3A19 XORLW 25 +0x00AC 0x1D03 BTFSS STATUS, 2 +0x00AD 0x28B0 GOTO L_interupt5 +0x00AE 0x0143 MOVLB 3 +0x00AF 0x16A0 BSF _B_long, BitPos(_B_long+0) +L_interupt5: +;main.c,50 :: if(btn_1_cnt==250 & OLED_PWD) B_xlong = 1; // Xtra long pressing detected +0x00B0 0x0140 MOVLB 0 +0x00B1 0x0864 MOVF _btn_1_cnt, 0 +0x00B2 0x3AFA XORLW 250 +0x00B3 0x3001 MOVLW 1 +0x00B4 0x1D03 BTFSS STATUS, 2 +0x00B5 0x3000 MOVLW 0 +0x00B6 0x00F1 MOVWF R1 +0x00B7 0x01F0 CLRF R0 +0x00B8 0x1A16 BTFSC LATA4_bit, BitPos(LATA4_bit+0) +0x00B9 0x0AF0 INCF R0, 1 +0x00BA 0x0871 MOVF R1, 0 +0x00BB 0x05F0 ANDWF R0, 1 +0x00BC 0x1903 BTFSC STATUS, 2 +0x00BD 0x28C0 GOTO L_interupt6 +0x00BE 0x0143 MOVLB 3 +0x00BF 0x1620 BSF _B_xlong, BitPos(_B_xlong+0) +L_interupt6: +;main.c,51 :: } +0x00C0 0x28D8 GOTO L_interupt7 +L_interupt3: +;main.c,52 :: else if(btn_1_cnt>2 & btn_1_cnt<25){ +0x00C1 0x0140 MOVLB 0 +0x00C2 0x0864 MOVF _btn_1_cnt, 0 +0x00C3 0x3C02 SUBLW 2 +0x00C4 0x3001 MOVLW 1 +0x00C5 0x1803 BTFSC STATUS, 0 +0x00C6 0x3000 MOVLW 0 +0x00C7 0x00F1 MOVWF R1 +0x00C8 0x3019 MOVLW 25 +0x00C9 0x0264 SUBWF _btn_1_cnt, 0 +0x00CA 0x3001 MOVLW 1 +0x00CB 0x1803 BTFSC STATUS, 0 +0x00CC 0x3000 MOVLW 0 +0x00CD 0x00F0 MOVWF R0 +0x00CE 0x0871 MOVF R1, 0 +0x00CF 0x05F0 ANDWF R0, 1 +0x00D0 0x1903 BTFSC STATUS, 2 +0x00D1 0x28D7 GOTO L_interupt8 +;main.c,53 :: B_short = 1; // short pressing detected +0x00D2 0x0143 MOVLB 3 +0x00D3 0x1720 BSF _B_short, BitPos(_B_short+0) +;main.c,54 :: btn_1_cnt = 0; +0x00D4 0x0140 MOVLB 0 +0x00D5 0x01E4 CLRF _btn_1_cnt +;main.c,55 :: } +0x00D6 0x28D8 GOTO L_interupt9 +L_interupt8: +;main.c,57 :: btn_1_cnt = 0; +0x00D7 0x01E4 CLRF _btn_1_cnt +L_interupt9: +L_interupt7: +0x00D8 0x0140 MOVLB 0 +;main.c,59 :: if(Start){ +0x00D9 0x188F BTFSC PORTD, 1 +0x00DA 0x28DD GOTO L__interupt251 +0x00DB 0x1403 BSF STATUS, 0 +0x00DC 0x28DE GOTO L__interupt252 +L__interupt251: +0x00DD 0x1003 BCF STATUS, 0 +L__interupt252: +0x00DE 0x1C03 BTFSS STATUS, 0 +0x00DF 0x28F7 GOTO L_interupt10 +;main.c,60 :: if(btn_2_cnt<25) btn_2_cnt++; +0x00E0 0x3019 MOVLW 25 +0x00E1 0x0141 MOVLB 1 +0x00E2 0x0246 SUBWF _btn_2_cnt, 0 +0x00E3 0x1803 BTFSC STATUS, 0 +0x00E4 0x28E6 GOTO L_interupt11 +0x00E5 0x0AC6 INCF _btn_2_cnt, 1 +L_interupt11: +;main.c,61 :: if(btn_2_cnt==20 & Key_in) E_long = 1; +0x00E6 0x0846 MOVF _btn_2_cnt, 0 +0x00E7 0x3A14 XORLW 20 +0x00E8 0x3001 MOVLW 1 +0x00E9 0x1D03 BTFSS STATUS, 2 +0x00EA 0x3000 MOVLW 0 +0x00EB 0x00F1 MOVWF R1 +0x00EC 0x01F0 CLRF R0 +0x00ED 0x0140 MOVLB 0 +0x00EE 0x190F BTFSC PORTD, 2 +0x00EF 0x0AF0 INCF R0, 1 +0x00F0 0x0871 MOVF R1, 0 +0x00F1 0x05F0 ANDWF R0, 1 +0x00F2 0x1903 BTFSC STATUS, 2 +0x00F3 0x28F6 GOTO L_interupt12 +0x00F4 0x0143 MOVLB 3 +0x00F5 0x14A0 BSF _E_long, BitPos(_E_long+0) +L_interupt12: +;main.c,62 :: } +0x00F6 0x290E GOTO L_interupt13 +L_interupt10: +;main.c,63 :: else if(btn_2_cnt>1 & btn_2_cnt<10){ +0x00F7 0x0141 MOVLB 1 +0x00F8 0x0846 MOVF _btn_2_cnt, 0 +0x00F9 0x3C01 SUBLW 1 +0x00FA 0x3001 MOVLW 1 +0x00FB 0x1803 BTFSC STATUS, 0 +0x00FC 0x3000 MOVLW 0 +0x00FD 0x00F1 MOVWF R1 +0x00FE 0x300A MOVLW 10 +0x00FF 0x0246 SUBWF _btn_2_cnt, 0 +0x0100 0x3001 MOVLW 1 +0x0101 0x1803 BTFSC STATUS, 0 +0x0102 0x3000 MOVLW 0 +0x0103 0x00F0 MOVWF R0 +0x0104 0x0871 MOVF R1, 0 +0x0105 0x05F0 ANDWF R0, 1 +0x0106 0x1903 BTFSC STATUS, 2 +0x0107 0x290D GOTO L_interupt14 +;main.c,64 :: E_short = 1; +0x0108 0x0143 MOVLB 3 +0x0109 0x1420 BSF _E_short, BitPos(_E_short+0) +;main.c,65 :: btn_2_cnt = 0; +0x010A 0x0141 MOVLB 1 +0x010B 0x01C6 CLRF _btn_2_cnt +;main.c,66 :: } +0x010C 0x290E GOTO L_interupt15 +L_interupt14: +;main.c,68 :: btn_2_cnt = 0; +0x010D 0x01C6 CLRF _btn_2_cnt +L_interupt15: +L_interupt13: +;main.c,69 :: } +L_interupt1: +;main.c,70 :: return; +;main.c,71 :: } +L_end_interupt: +L__interupt241: +0x010E 0x0140 MOVLB 0 +0x010F 0x082E MOVF 46, 0 +0x0110 0x00F0 MOVWF R0 +0x0111 0x082D MOVF 45, 0 +0x0112 0x00F1 MOVWF R1 +0x0113 0x082C MOVF 44, 0 +0x0114 0x00F2 MOVWF R2 +0x0115 0x082B MOVF 43, 0 +0x0116 0x00F3 MOVWF R3 +0x0117 0x082A MOVF 42, 0 +0x0118 0x00F4 MOVWF R4 +0x0119 0x0829 MOVF 41, 0 +0x011A 0x00F5 MOVWF R5 +0x011B 0x0828 MOVF 40, 0 +0x011C 0x00F6 MOVWF R6 +0x011D 0x0827 MOVF 39, 0 +0x011E 0x00F7 MOVWF R7 +0x011F 0x0826 MOVF 38, 0 +0x0120 0x00F8 MOVWF R8 +0x0121 0x0825 MOVF 37, 0 +0x0122 0x00F9 MOVWF R9 +0x0123 0x0824 MOVF 36, 0 +0x0124 0x00FA MOVWF R10 +0x0125 0x0823 MOVF 35, 0 +0x0126 0x00FB MOVWF R11 +0x0127 0x0822 MOVF 34, 0 +0x0128 0x00FC MOVWF R12 +0x0129 0x0009 RETFIE %s +; end of _interupt +_Soft_I2C_Write: +;Soft_I2C.c,29 :: char Soft_I2C_Write(char d) { +;Soft_I2C.c,31 :: for(i=0; i<8; i++) { +0x012A 0x01F1 CLRF R1 +L_Soft_I2C_Write4: +0x012B 0x3008 MOVLW 8 +0x012C 0x0271 SUBWF R1, 0 +0x012D 0x1803 BTFSC STATUS, 0 +0x012E 0x2949 GOTO L_Soft_I2C_Write5 +;Soft_I2C.c,32 :: Soft_I2C_Sda = d.B7; +0x012F 0x0144 MOVLB 4 +0x0130 0x1BB4 BTFSC FARG_Soft_I2C_Write_d, 7 +0x0131 0x2935 GOTO L__Soft_I2C_Write29 +0x0132 0x0140 MOVLB 0 +0x0133 0x1116 BCF LATA2_bit, BitPos(LATA2_bit+0) +0x0134 0x2937 GOTO L__Soft_I2C_Write30 +L__Soft_I2C_Write29: +0x0135 0x0140 MOVLB 0 +0x0136 0x1516 BSF LATA2_bit, BitPos(LATA2_bit+0) +L__Soft_I2C_Write30: +;Soft_I2C.c,33 :: Delay_I2C; +0x0137 0x3027 MOVLW 39 +0x0138 0x00FD MOVWF R13 +L_Soft_I2C_Write7: +0x0139 0x0BFD DECFSZ R13, 1 +0x013A 0x2939 GOTO L_Soft_I2C_Write7 +0x013B 0x0000 NOP +0x013C 0x0000 NOP +;Soft_I2C.c,34 :: Soft_I2C_Scl = 1; +0x013D 0x1596 BSF LATA3_bit, BitPos(LATA3_bit+0) +;Soft_I2C.c,35 :: Delay_I2C; +0x013E 0x3027 MOVLW 39 +0x013F 0x00FD MOVWF R13 +L_Soft_I2C_Write8: +0x0140 0x0BFD DECFSZ R13, 1 +0x0141 0x2940 GOTO L_Soft_I2C_Write8 +0x0142 0x0000 NOP +0x0143 0x0000 NOP +;Soft_I2C.c,36 :: Soft_I2C_Scl = 0; +0x0144 0x1196 BCF LATA3_bit, BitPos(LATA3_bit+0) +;Soft_I2C.c,37 :: d = d << 1; +0x0145 0x0144 MOVLB 4 +0x0146 0x35B4 LSLF FARG_Soft_I2C_Write_d, 1 +;Soft_I2C.c,31 :: for(i=0; i<8; i++) { +0x0147 0x0AF1 INCF R1, 1 +;Soft_I2C.c,38 :: } +0x0148 0x292B GOTO L_Soft_I2C_Write4 +L_Soft_I2C_Write5: +;Soft_I2C.c,40 :: Soft_I2C_Sda = 1; //ACK +0x0149 0x0140 MOVLB 0 +0x014A 0x1516 BSF LATA2_bit, BitPos(LATA2_bit+0) +;Soft_I2C.c,41 :: Delay_I2C; +0x014B 0x3027 MOVLW 39 +0x014C 0x00FD MOVWF R13 +L_Soft_I2C_Write9: +0x014D 0x0BFD DECFSZ R13, 1 +0x014E 0x294D GOTO L_Soft_I2C_Write9 +0x014F 0x0000 NOP +0x0150 0x0000 NOP +;Soft_I2C.c,42 :: Soft_I2C_Scl = 1; +0x0151 0x1596 BSF LATA3_bit, BitPos(LATA3_bit+0) +;Soft_I2C.c,43 :: ack = Soft_I2C_Sda_in; +0x0152 0x3000 MOVLW 0 +0x0153 0x190C BTFSC PORTA, 2 +0x0154 0x3001 MOVLW 1 +0x0155 0x00F2 MOVWF R2 +;Soft_I2C.c,44 :: Delay_I2C; +0x0156 0x3027 MOVLW 39 +0x0157 0x00FD MOVWF R13 +L_Soft_I2C_Write10: +0x0158 0x0BFD DECFSZ R13, 1 +0x0159 0x2958 GOTO L_Soft_I2C_Write10 +0x015A 0x0000 NOP +0x015B 0x0000 NOP +;Soft_I2C.c,45 :: Soft_I2C_Scl = 0; +0x015C 0x1196 BCF LATA3_bit, BitPos(LATA3_bit+0) +;Soft_I2C.c,46 :: Delay_I2C; +0x015D 0x3027 MOVLW 39 +0x015E 0x00FD MOVWF R13 +L_Soft_I2C_Write11: +0x015F 0x0BFD DECFSZ R13, 1 +0x0160 0x295F GOTO L_Soft_I2C_Write11 +0x0161 0x0000 NOP +0x0162 0x0000 NOP +;Soft_I2C.c,47 :: return ack; +0x0163 0x0872 MOVF R2, 0 +0x0164 0x00F0 MOVWF R0 +;Soft_I2C.c,48 :: } +L_end_Soft_I2C_Write: +0x0165 0x0008 RETURN +; end of _Soft_I2C_Write +_Div_16X16_U: +;__Lib_Math.c,213 :: +;__Lib_Math.c,220 :: +0x0166 0x0140 MOVLB 0 +;__Lib_Math.c,221 :: +0x0167 0x01F8 CLRF R8 +;__Lib_Math.c,222 :: +0x0168 0x01F9 CLRF R9 +;__Lib_Math.c,223 :: +0x0169 0x3010 MOVLW 16 +;__Lib_Math.c,224 :: +0x016A 0x00FC MOVWF R12 +;__Lib_Math.c,225 :: +0x016B 0x0D71 RLF R1, 0 +;__Lib_Math.c,226 :: +0x016C 0x0DF8 RLF R8, 1 +;__Lib_Math.c,227 :: +0x016D 0x0DF9 RLF R9, 1 +;__Lib_Math.c,228 :: +0x016E 0x0874 MOVF R4, 0 +;__Lib_Math.c,229 :: +0x016F 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,230 :: +0x0170 0x0875 MOVF R5, 0 +;__Lib_Math.c,231 :: +0x0171 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,232 :: +0x0172 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,233 :: +0x0173 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,234 :: +0x0174 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,235 :: +0x0175 0x297D GOTO $+8 +;__Lib_Math.c,236 :: +0x0176 0x0874 MOVF R4, 0 +;__Lib_Math.c,237 :: +0x0177 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,238 :: +0x0178 0x0875 MOVF R5, 0 +;__Lib_Math.c,239 :: +0x0179 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,240 :: +0x017A 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,241 :: +0x017B 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,242 :: +0x017C 0x1003 BCF STATUS, 0 +;__Lib_Math.c,243 :: +0x017D 0x0DF0 RLF R0, 1 +;__Lib_Math.c,244 :: +0x017E 0x0DF1 RLF R1, 1 +;__Lib_Math.c,245 :: +0x017F 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,246 :: +0x0180 0x296B GOTO $-21 +;__Lib_Math.c,248 :: +L_end_Div_16X16_U: +0x0181 0x0008 RETURN +; end of _Div_16X16_U +_Soft_I2C_Start: +;Soft_I2C.c,17 :: void Soft_I2C_Start() { +;Soft_I2C.c,18 :: Soft_I2C_Scl = 1; +0x0182 0x0140 MOVLB 0 +0x0183 0x1596 BSF LATA3_bit, BitPos(LATA3_bit+0) +;Soft_I2C.c,19 :: Delay_I2C; +0x0184 0x3027 MOVLW 39 +0x0185 0x00FD MOVWF R13 +L_Soft_I2C_Start0: +0x0186 0x0BFD DECFSZ R13, 1 +0x0187 0x2986 GOTO L_Soft_I2C_Start0 +0x0188 0x0000 NOP +0x0189 0x0000 NOP +;Soft_I2C.c,20 :: Soft_I2C_Sda = 1; +0x018A 0x1516 BSF LATA2_bit, BitPos(LATA2_bit+0) +;Soft_I2C.c,21 :: Delay_I2C; +0x018B 0x3027 MOVLW 39 +0x018C 0x00FD MOVWF R13 +L_Soft_I2C_Start1: +0x018D 0x0BFD DECFSZ R13, 1 +0x018E 0x298D GOTO L_Soft_I2C_Start1 +0x018F 0x0000 NOP +0x0190 0x0000 NOP +;Soft_I2C.c,22 :: Soft_I2C_Sda = 0; +0x0191 0x1116 BCF LATA2_bit, BitPos(LATA2_bit+0) +;Soft_I2C.c,23 :: Delay_I2C; +0x0192 0x3027 MOVLW 39 +0x0193 0x00FD MOVWF R13 +L_Soft_I2C_Start2: +0x0194 0x0BFD DECFSZ R13, 1 +0x0195 0x2994 GOTO L_Soft_I2C_Start2 +0x0196 0x0000 NOP +0x0197 0x0000 NOP +;Soft_I2C.c,24 :: Soft_I2C_Scl = 0; +0x0198 0x1196 BCF LATA3_bit, BitPos(LATA3_bit+0) +;Soft_I2C.c,25 :: Delay_I2C; +0x0199 0x3027 MOVLW 39 +0x019A 0x00FD MOVWF R13 +L_Soft_I2C_Start3: +0x019B 0x0BFD DECFSZ R13, 1 +0x019C 0x299B GOTO L_Soft_I2C_Start3 +0x019D 0x0000 NOP +0x019E 0x0000 NOP +;Soft_I2C.c,26 :: return; +;Soft_I2C.c,27 :: } +L_end_Soft_I2C_Start: +0x019F 0x0008 RETURN +; end of _Soft_I2C_Start +_Delay_22us: +;__Lib_Delays.c,15 :: void Delay_22us() { +;__Lib_Delays.c,16 :: Delay_us(22); +0x01A0 0x303A MOVLW 58 +0x01A1 0x00FD MOVWF R13 +L_Delay_22us2: +0x01A2 0x0BFD DECFSZ R13, 1 +0x01A3 0x29A2 GOTO L_Delay_22us2 +0x01A4 0x0000 NOP +;__Lib_Delays.c,17 :: } +L_end_Delay_22us: +0x01A5 0x0008 RETURN +; end of _Delay_22us +_Mul_8X8_U: +;__Lib_Math.c,103 :: +;__Lib_Math.c,109 :: +0x01A6 0x0140 MOVLB 0 +;__Lib_Math.c,110 :: +0x01A7 0x0870 MOVF R0, 0 +;__Lib_Math.c,111 :: +0x01A8 0x00F1 MOVWF R1 +;__Lib_Math.c,112 :: +0x01A9 0x01F0 CLRF R0 +;__Lib_Math.c,113 :: +0x01AA 0x3008 MOVLW 8 +;__Lib_Math.c,114 :: +0x01AB 0x00FC MOVWF R12 +;__Lib_Math.c,115 :: +0x01AC 0x0871 MOVF R1, 0 +;__Lib_Math.c,116 :: +0x01AD 0x0CF4 RRF R4, 1 +;__Lib_Math.c,117 :: +0x01AE 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,118 :: +0x01AF 0x29B4 GOTO $+5 +;__Lib_Math.c,119 :: +0x01B0 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,120 :: +0x01B1 0x29AD GOTO $-4 +;__Lib_Math.c,121 :: +0x01B2 0x01F1 CLRF R1 +;__Lib_Math.c,122 :: +0x01B3 0x3400 RETLW 0 +;__Lib_Math.c,123 :: +0x01B4 0x1003 BCF STATUS, 0 +;__Lib_Math.c,124 :: +0x01B5 0x29B9 GOTO $+4 +;__Lib_Math.c,125 :: +0x01B6 0x0CF4 RRF R4, 1 +;__Lib_Math.c,126 :: +0x01B7 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,127 :: +0x01B8 0x07F1 ADDWF R1, 1 +;__Lib_Math.c,128 :: +0x01B9 0x0CF1 RRF R1, 1 +;__Lib_Math.c,129 :: +0x01BA 0x0CF0 RRF R0, 1 +;__Lib_Math.c,130 :: +0x01BB 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,131 :: +0x01BC 0x29B6 GOTO $-6 +;__Lib_Math.c,133 :: +;__Lib_Math.c,134 :: +L_end_Mul_8X8_U: +0x01BD 0x0008 RETURN +; end of _Mul_8X8_U +_Mul_32x32_U: +;__Lib_Math.c,1766 :: +;__Lib_Math.c,1781 :: +0x01BE 0x0140 MOVLB 0 +;__Lib_Math.c,1782 :: +0x01BF 0x3022 MOVLW 34 +;__Lib_Math.c,1783 :: +0x01C0 0x00FC MOVWF R12 +;__Lib_Math.c,1784 :: +0x01C1 0x01F8 CLRF R8 +;__Lib_Math.c,1785 :: +0x01C2 0x01F9 CLRF R9 +;__Lib_Math.c,1786 :: +0x01C3 0x01FA CLRF R10 +;__Lib_Math.c,1787 :: +0x01C4 0x01FB CLRF R11 +;__Lib_Math.c,1789 :: +_NEXT: +;__Lib_Math.c,1793 :: +0x01C5 0x03FC DECF R12, 1 +;__Lib_Math.c,1794 :: +0x01C6 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1795 :: +0x01C7 0x29F3 GOTO _EXIT2 +;__Lib_Math.c,1796 :: +0x01C8 0x1003 BCF STATUS, 0 +;__Lib_Math.c,1798 :: +_LOOP: +;__Lib_Math.c,1807 :: +0x01C9 0x0CFB RRF R11, 1 +;__Lib_Math.c,1808 :: +0x01CA 0x0CFA RRF R10, 1 +;__Lib_Math.c,1809 :: +0x01CB 0x0CF9 RRF R9, 1 +;__Lib_Math.c,1810 :: +0x01CC 0x0CF8 RRF R8, 1 +;__Lib_Math.c,1811 :: +0x01CD 0x0CF3 RRF R3, 1 +;__Lib_Math.c,1812 :: +0x01CE 0x0CF2 RRF R2, 1 +;__Lib_Math.c,1813 :: +0x01CF 0x0CF1 RRF R1, 1 +;__Lib_Math.c,1814 :: +0x01D0 0x0CF0 RRF R0, 1 +;__Lib_Math.c,1819 :: +0x01D1 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,1820 :: +0x01D2 0x29C5 GOTO _NEXT +;__Lib_Math.c,1821 :: +0x01D3 0x03FC DECF R12, 1 +;__Lib_Math.c,1822 :: +0x01D4 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1823 :: +0x01D5 0x29E5 GOTO _EXIT1 +;__Lib_Math.c,1830 :: +0x01D6 0x0874 MOVF R4, 0 +;__Lib_Math.c,1831 :: +0x01D7 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,1832 :: +0x01D8 0x0875 MOVF R5, 0 +;__Lib_Math.c,1833 :: +0x01D9 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1834 :: +0x01DA 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,1835 :: +0x01DB 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,1836 :: +0x01DC 0x0876 MOVF R6, 0 +;__Lib_Math.c,1837 :: +0x01DD 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1838 :: +0x01DE 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,1839 :: +0x01DF 0x07FA ADDWF R10, 1 +;__Lib_Math.c,1840 :: +0x01E0 0x0877 MOVF R7, 0 +;__Lib_Math.c,1841 :: +0x01E1 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1842 :: +0x01E2 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,1843 :: +0x01E3 0x07FB ADDWF R11, 1 +;__Lib_Math.c,1845 :: +0x01E4 0x29C9 GOTO _LOOP +;__Lib_Math.c,1847 :: +_EXIT1: +;__Lib_Math.c,1852 :: +0x01E5 0x0874 MOVF R4, 0 +;__Lib_Math.c,1853 :: +0x01E6 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,1854 :: +0x01E7 0x0875 MOVF R5, 0 +;__Lib_Math.c,1855 :: +0x01E8 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1856 :: +0x01E9 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,1857 :: +0x01EA 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,1858 :: +0x01EB 0x0876 MOVF R6, 0 +;__Lib_Math.c,1859 :: +0x01EC 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1860 :: +0x01ED 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,1861 :: +0x01EE 0x07FA ADDWF R10, 1 +;__Lib_Math.c,1862 :: +0x01EF 0x0877 MOVF R7, 0 +;__Lib_Math.c,1863 :: +0x01F0 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1864 :: +0x01F1 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,1865 :: +0x01F2 0x07FB ADDWF R11, 1 +;__Lib_Math.c,1868 :: +_EXIT2: +;__Lib_Math.c,1870 :: +L_end_Mul_32x32_U: +0x01F3 0x0008 RETURN +; end of _Mul_32x32_U +_Soft_I2C_Stop: +;Soft_I2C.c,84 :: void Soft_I2C_Stop() { +;Soft_I2C.c,85 :: Soft_I2C_Sda = 0; +0x01F4 0x0140 MOVLB 0 +0x01F5 0x1116 BCF LATA2_bit, BitPos(LATA2_bit+0) +;Soft_I2C.c,86 :: Delay_I2C; +0x01F6 0x3027 MOVLW 39 +0x01F7 0x00FD MOVWF R13 +L_Soft_I2C_Stop23: +0x01F8 0x0BFD DECFSZ R13, 1 +0x01F9 0x29F8 GOTO L_Soft_I2C_Stop23 +0x01FA 0x0000 NOP +0x01FB 0x0000 NOP +;Soft_I2C.c,87 :: Soft_I2C_Scl = 1; +0x01FC 0x1596 BSF LATA3_bit, BitPos(LATA3_bit+0) +;Soft_I2C.c,88 :: Delay_I2C; +0x01FD 0x3027 MOVLW 39 +0x01FE 0x00FD MOVWF R13 +L_Soft_I2C_Stop24: +0x01FF 0x0BFD DECFSZ R13, 1 +0x0200 0x29FF GOTO L_Soft_I2C_Stop24 +0x0201 0x0000 NOP +0x0202 0x0000 NOP +;Soft_I2C.c,89 :: Soft_I2C_Sda = 1; +0x0203 0x1516 BSF LATA2_bit, BitPos(LATA2_bit+0) +;Soft_I2C.c,90 :: Delay_I2C; +0x0204 0x3027 MOVLW 39 +0x0205 0x00FD MOVWF R13 +L_Soft_I2C_Stop25: +0x0206 0x0BFD DECFSZ R13, 1 +0x0207 0x2A06 GOTO L_Soft_I2C_Stop25 +0x0208 0x0000 NOP +0x0209 0x0000 NOP +;Soft_I2C.c,91 :: return; +;Soft_I2C.c,92 :: } +L_end_Soft_I2C_Stop: +0x020A 0x0008 RETURN +; end of _Soft_I2C_Stop +_set_addressing: +;oled_control.c,103 :: void set_addressing (char pagenum, char c_start) { +;oled_control.c,105 :: c = c_start + oled_shift; +0x020B 0x0140 MOVLB 0 +0x020C 0x086F MOVF oled_control_oled_shift, 0 +0x020D 0x0144 MOVLB 4 +0x020E 0x072E ADDWF FARG_set_addressing_c_start, 0 +0x020F 0x00B1 MOVWF set_addressing_c_L0 +;oled_control.c,106 :: Soft_I2C_Start(); +0x0210 0x2182 CALL _Soft_I2C_Start +;oled_control.c,107 :: Soft_I2C_Write(oled_addr); // device addres +0x0211 0x0141 MOVLB 1 +0x0212 0x0847 MOVF oled_control_oled_addr, 0 +0x0213 0x0144 MOVLB 4 +0x0214 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0215 0x212A CALL _Soft_I2C_Write +;oled_control.c,108 :: Soft_I2C_Write(0); // 0 - continious mode, command; 64 - Co, data +0x0216 0x0144 MOVLB 4 +0x0217 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x0218 0x212A CALL _Soft_I2C_Write +;oled_control.c,109 :: Soft_I2C_Write(0xB0 + pagenum); // set page number +0x0219 0x0144 MOVLB 4 +0x021A 0x082D MOVF FARG_set_addressing_pagenum, 0 +0x021B 0x3EB0 ADDLW 176 +0x021C 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x021D 0x212A CALL _Soft_I2C_Write +;oled_control.c,111 :: if (c <= 15) { a = c; b = 0; } +0x021E 0x0144 MOVLB 4 +0x021F 0x0831 MOVF set_addressing_c_L0, 0 +0x0220 0x3C0F SUBLW 15 +0x0221 0x1C03 BTFSS STATUS, 0 +0x0222 0x2A27 GOTO L_set_addressing14 +0x0223 0x0831 MOVF set_addressing_c_L0, 0 +0x0224 0x00AF MOVWF set_addressing_a_L0 +0x0225 0x01B0 CLRF set_addressing_b_L0 +0x0226 0x2A38 GOTO L_set_addressing15 +L_set_addressing14: +;oled_control.c,112 :: else { b = c / 16; a = c - b * 16; } +0x0227 0x0831 MOVF set_addressing_c_L0, 0 +0x0228 0x00F2 MOVWF R2 +0x0229 0x36F2 LSRF R2, 1 +0x022A 0x36F2 LSRF R2, 1 +0x022B 0x36F2 LSRF R2, 1 +0x022C 0x36F2 LSRF R2, 1 +0x022D 0x0872 MOVF R2, 0 +0x022E 0x00B0 MOVWF set_addressing_b_L0 +0x022F 0x0872 MOVF R2, 0 +0x0230 0x00F0 MOVWF R0 +0x0231 0x35F0 LSLF R0, 1 +0x0232 0x35F0 LSLF R0, 1 +0x0233 0x35F0 LSLF R0, 1 +0x0234 0x35F0 LSLF R0, 1 +0x0235 0x0870 MOVF R0, 0 +0x0236 0x0231 SUBWF set_addressing_c_L0, 0 +0x0237 0x00AF MOVWF set_addressing_a_L0 +L_set_addressing15: +;oled_control.c,113 :: Soft_I2C_Write (a); // set lower nibble of start address +0x0238 0x082F MOVF set_addressing_a_L0, 0 +0x0239 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x023A 0x212A CALL _Soft_I2C_Write +;oled_control.c,114 :: Soft_I2C_Write (0x10 + b); // set higher nibble of start address +0x023B 0x0144 MOVLB 4 +0x023C 0x0830 MOVF set_addressing_b_L0, 0 +0x023D 0x3E10 ADDLW 16 +0x023E 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x023F 0x212A CALL _Soft_I2C_Write +;oled_control.c,116 :: Soft_I2C_Start(); +0x0240 0x2182 CALL _Soft_I2C_Start +;oled_control.c,117 :: Soft_I2C_Write(oled_addr); // device addres +0x0241 0x0141 MOVLB 1 +0x0242 0x0847 MOVF oled_control_oled_addr, 0 +0x0243 0x0144 MOVLB 4 +0x0244 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0245 0x212A CALL _Soft_I2C_Write +;oled_control.c,118 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data +0x0246 0x3040 MOVLW 64 +0x0247 0x0144 MOVLB 4 +0x0248 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0249 0x212A CALL _Soft_I2C_Write +;oled_control.c,119 :: return; +;oled_control.c,120 :: } +L_end_set_addressing: +0x024A 0x0008 RETURN +; end of _set_addressing +_WordToStr: +;__Lib_Conversions.c,98 :: +;__Lib_Conversions.c,103 :: +0x024B 0x0144 MOVLB 4 +0x024C 0x01B1 CLRF WordToStr_len_L0 +L_WordToStr11: +0x024D 0x3005 MOVLW 5 +0x024E 0x0231 SUBWF WordToStr_len_L0, 0 +0x024F 0x1803 BTFSC STATUS, 0 +0x0250 0x2A5B GOTO L_WordToStr12 +;__Lib_Conversions.c,104 :: +0x0251 0x0831 MOVF WordToStr_len_L0, 0 +0x0252 0x072F ADDWF FARG_WordToStr_output, 0 +0x0253 0x0086 MOVWF FSR1 +0x0254 0x3000 MOVLW 0 +0x0255 0x3D30 ADDWFC FARG_WordToStr_output+1, 0 +0x0256 0x0087 MOVWF FSR1H +0x0257 0x3020 MOVLW 32 +0x0258 0x0081 MOVWF INDF1 +;__Lib_Conversions.c,103 :: +0x0259 0x0AB1 INCF WordToStr_len_L0, 1 +;__Lib_Conversions.c,104 :: +0x025A 0x2A4D GOTO L_WordToStr11 +L_WordToStr12: +;__Lib_Conversions.c,105 :: +0x025B 0x0831 MOVF WordToStr_len_L0, 0 +0x025C 0x072F ADDWF FARG_WordToStr_output, 0 +0x025D 0x0086 MOVWF FSR1 +0x025E 0x3000 MOVLW 0 +0x025F 0x3D30 ADDWFC FARG_WordToStr_output+1, 0 +0x0260 0x0087 MOVWF FSR1H +0x0261 0x0181 CLRF INDF1 +0x0262 0x03B1 DECF WordToStr_len_L0, 1 +;__Lib_Conversions.c,107 :: +L_WordToStr14: +;__Lib_Conversions.c,108 :: +0x0263 0x0831 MOVF WordToStr_len_L0, 0 +0x0264 0x072F ADDWF FARG_WordToStr_output, 0 +0x0265 0x00B2 MOVWF FLOC__WordToStr +0x0266 0x3000 MOVLW 0 +0x0267 0x3D30 ADDWFC FARG_WordToStr_output+1, 0 +0x0268 0x00B3 MOVWF FLOC__WordToStr+1 +0x0269 0x300A MOVLW 10 +0x026A 0x00F4 MOVWF R4 +0x026B 0x01F5 CLRF R5 +0x026C 0x082D MOVF FARG_WordToStr_input, 0 +0x026D 0x00F0 MOVWF R0 +0x026E 0x082E MOVF FARG_WordToStr_input+1, 0 +0x026F 0x00F1 MOVWF R1 +0x0270 0x2166 CALL _Div_16X16_U +0x0271 0x0878 MOVF R8, 0 +0x0272 0x00F0 MOVWF R0 +0x0273 0x0879 MOVF R9, 0 +0x0274 0x00F1 MOVWF R1 +0x0275 0x3030 MOVLW 48 +0x0276 0x07F0 ADDWF R0, 1 +0x0277 0x0144 MOVLB 4 +0x0278 0x0832 MOVF FLOC__WordToStr, 0 +0x0279 0x0086 MOVWF FSR1 +0x027A 0x0833 MOVF FLOC__WordToStr+1, 0 +0x027B 0x0087 MOVWF FSR1H +0x027C 0x0870 MOVF R0, 0 +0x027D 0x0081 MOVWF INDF1 +;__Lib_Conversions.c,109 :: +0x027E 0x300A MOVLW 10 +0x027F 0x00F4 MOVWF R4 +0x0280 0x01F5 CLRF R5 +0x0281 0x082D MOVF FARG_WordToStr_input, 0 +0x0282 0x00F0 MOVWF R0 +0x0283 0x082E MOVF FARG_WordToStr_input+1, 0 +0x0284 0x00F1 MOVWF R1 +0x0285 0x2166 CALL _Div_16X16_U +0x0286 0x0870 MOVF R0, 0 +0x0287 0x0144 MOVLB 4 +0x0288 0x00AD MOVWF FARG_WordToStr_input +0x0289 0x0871 MOVF R1, 0 +0x028A 0x00AE MOVWF FARG_WordToStr_input+1 +;__Lib_Conversions.c,110 :: +0x028B 0x3000 MOVLW 0 +0x028C 0x0671 XORWF R1, 0 +0x028D 0x1D03 BTFSS STATUS, 2 +0x028E 0x2A91 GOTO L__WordToStr379 +0x028F 0x3000 MOVLW 0 +0x0290 0x0670 XORWF R0, 0 +L__WordToStr379: +0x0291 0x1D03 BTFSS STATUS, 2 +0x0292 0x2A94 GOTO L_WordToStr16 +;__Lib_Conversions.c,111 :: +0x0293 0x2A96 GOTO L_WordToStr15 +L_WordToStr16: +;__Lib_Conversions.c,112 :: +0x0294 0x03B1 DECF WordToStr_len_L0, 1 +;__Lib_Conversions.c,113 :: +0x0295 0x2A63 GOTO L_WordToStr14 +L_WordToStr15: +;__Lib_Conversions.c,114 :: +L_end_WordToStr: +0x0296 0x0008 RETURN +; end of _WordToStr +_ADC_Init_Advanced: +;__Lib_ADC_18xxx.c,39 :: +;__Lib_ADC_18xxx.c,40 :: +0x0297 0x306C MOVLW _ADC_Get_Sample +0x0298 0x0143 MOVLB 3 +0x0299 0x00A1 MOVWF _ADC_Get_Sample_Ptr +0x029A 0x3003 MOVLW hi_addr(_ADC_Get_Sample) +0x029B 0x00A2 MOVWF _ADC_Get_Sample_Ptr+1 +0x029C 0x3023 MOVLW FARG_ADC_Get_Sample_channel +0x029D 0x00A3 MOVWF _ADC_Get_Sample_Ptr+2 +0x029E 0x3002 MOVLW hi_addr(FARG_ADC_Get_Sample_channel) +0x029F 0x00A4 MOVWF _ADC_Get_Sample_Ptr+3 +;__Lib_ADC_18xxx.c,42 :: +0x02A0 0x0141 MOVLB 1 +0x02A1 0x0193 CLRF ADCON0 +;__Lib_ADC_18xxx.c,43 :: +0x02A2 0x0194 CLRF ADCON1 +;__Lib_ADC_18xxx.c,44 :: +0x02A3 0x0195 CLRF ADCON2 +;__Lib_ADC_18xxx.c,45 :: +0x02A4 0x0196 CLRF ADCON3 +;__Lib_ADC_18xxx.c,47 :: +0x02A5 0x30EC MOVLW 236 +0x02A6 0x059A ANDWF ADREF, 1 +;__Lib_ADC_18xxx.c,48 :: +0x02A7 0x3013 MOVLW 19 +0x02A8 0x0144 MOVLB 4 +0x02A9 0x0523 ANDWF FARG_ADC_Init_Advanced_reference, 0 +0x02AA 0x00F0 MOVWF R0 +0x02AB 0x0870 MOVF R0, 0 +0x02AC 0x0141 MOVLB 1 +0x02AD 0x049A IORWF ADREF, 1 +;__Lib_ADC_18xxx.c,50 :: +0x02AE 0x30C0 MOVLW 192 +0x02AF 0x0144 MOVLB 4 +0x02B0 0x0523 ANDWF FARG_ADC_Init_Advanced_reference, 0 +0x02B1 0x00F0 MOVWF R0 +0x02B2 0x1903 BTFSC STATUS, 2 +0x02B3 0x2ACA GOTO L_ADC_Init_Advanced0 +;__Lib_ADC_18xxx.c,51 :: +0x02B4 0x30C0 MOVLW 192 +0x02B5 0x0523 ANDWF FARG_ADC_Init_Advanced_reference, 0 +0x02B6 0x00F2 MOVWF R2 +0x02B7 0x3006 MOVLW 6 +0x02B8 0x00F1 MOVWF R1 +0x02B9 0x0872 MOVF R2, 0 +0x02BA 0x00F0 MOVWF R0 +0x02BB 0x0871 MOVF R1, 0 +L__ADC_Init_Advanced8: +0x02BC 0x1903 BTFSC STATUS, 2 +0x02BD 0x2AC1 GOTO L__ADC_Init_Advanced9 +0x02BE 0x36F0 LSRF R0, 1 +0x02BF 0x3EFF ADDLW 255 +0x02C0 0x2ABC GOTO L__ADC_Init_Advanced8 +L__ADC_Init_Advanced9: +0x02C1 0x0870 MOVF R0, 0 +0x02C2 0x0152 MOVLB 18 +0x02C3 0x008C MOVWF FVRCON +;__Lib_ADC_18xxx.c,52 :: +0x02C4 0x178C BSF FVRCON, 7 +;__Lib_ADC_18xxx.c,53 :: +L_ADC_Init_Advanced1: +0x02C5 0x1B0C BTFSC FVRCON, 6 +0x02C6 0x2AC9 GOTO L_ADC_Init_Advanced2 +;__Lib_ADC_18xxx.c,54 :: +0x02C7 0x0000 NOP +0x02C8 0x2AC5 GOTO L_ADC_Init_Advanced1 +L_ADC_Init_Advanced2: +;__Lib_ADC_18xxx.c,55 :: +0x02C9 0x2ACD GOTO L_ADC_Init_Advanced3 +L_ADC_Init_Advanced0: +0x02CA 0x0152 MOVLB 18 +;__Lib_ADC_18xxx.c,57 :: +0x02CB 0x30FC MOVLW 252 +0x02CC 0x058C ANDWF FVRCON, 1 +L_ADC_Init_Advanced3: +;__Lib_ADC_18xxx.c,59 :: +0x02CD 0x0141 MOVLB 1 +0x02CE 0x1613 BSF ADCON0, 4 +;__Lib_ADC_18xxx.c,60 :: +0x02CF 0x1513 BSF ADCON0, 2 +;__Lib_ADC_18xxx.c,61 :: +0x02D0 0x1793 BSF ADCON0, 7 +;__Lib_ADC_18xxx.c,62 :: +L_end_ADC_Init_Advanced: +0x02D1 0x0008 RETURN +; end of _ADC_Init_Advanced +_Mul_16X16_U: +;__Lib_Math.c,136 :: +;__Lib_Math.c,143 :: +0x02D2 0x0140 MOVLB 0 +;__Lib_Math.c,144 :: +0x02D3 0x01FB CLRF R11 +;__Lib_Math.c,145 :: +0x02D4 0x01FA CLRF R10 +;__Lib_Math.c,146 :: +0x02D5 0x01F9 CLRF R9 +;__Lib_Math.c,147 :: +0x02D6 0x3080 MOVLW 128 +;__Lib_Math.c,148 :: +0x02D7 0x00F8 MOVWF R8 +;__Lib_Math.c,149 :: +0x02D8 0x0CF1 RRF R1, 1 +;__Lib_Math.c,150 :: +0x02D9 0x0CF0 RRF R0, 1 +;__Lib_Math.c,151 :: +0x02DA 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,152 :: +0x02DB 0x2AE5 GOTO $+10 +;__Lib_Math.c,153 :: +0x02DC 0x0874 MOVF R4, 0 +;__Lib_Math.c,154 :: +0x02DD 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,155 :: +0x02DE 0x0875 MOVF R5, 0 +;__Lib_Math.c,156 :: +0x02DF 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,157 :: +0x02E0 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,158 :: +0x02E1 0x07FA ADDWF R10, 1 +;__Lib_Math.c,159 :: +0x02E2 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,160 :: +0x02E3 0x0AFB INCF R11, 1 +;__Lib_Math.c,161 :: +0x02E4 0x1003 BCF STATUS, 0 +;__Lib_Math.c,162 :: +0x02E5 0x1FF0 BTFSS R0, 7 +;__Lib_Math.c,163 :: +0x02E6 0x2AED GOTO $+7 +;__Lib_Math.c,164 :: +0x02E7 0x0874 MOVF R4, 0 +;__Lib_Math.c,165 :: +0x02E8 0x07FA ADDWF R10, 1 +;__Lib_Math.c,166 :: +0x02E9 0x0875 MOVF R5, 0 +;__Lib_Math.c,167 :: +0x02EA 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,168 :: +0x02EB 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,169 :: +0x02EC 0x07FB ADDWF R11, 1 +;__Lib_Math.c,170 :: +0x02ED 0x0CFB RRF R11, 1 +;__Lib_Math.c,171 :: +0x02EE 0x0CFA RRF R10, 1 +;__Lib_Math.c,172 :: +0x02EF 0x0CF9 RRF R9, 1 +;__Lib_Math.c,173 :: +0x02F0 0x0CF8 RRF R8, 1 +;__Lib_Math.c,174 :: +0x02F1 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,175 :: +0x02F2 0x2AD8 GOTO $-26 +;__Lib_Math.c,176 :: +0x02F3 0x087B MOVF R11, 0 +;__Lib_Math.c,177 :: +0x02F4 0x00F3 MOVWF R3 +;__Lib_Math.c,178 :: +0x02F5 0x087A MOVF R10, 0 +;__Lib_Math.c,179 :: +0x02F6 0x00F2 MOVWF R2 +;__Lib_Math.c,180 :: +0x02F7 0x0879 MOVF R9, 0 +;__Lib_Math.c,181 :: +0x02F8 0x00F1 MOVWF R1 +;__Lib_Math.c,182 :: +0x02F9 0x0878 MOVF R8, 0 +;__Lib_Math.c,183 :: +0x02FA 0x00F0 MOVWF R0 +;__Lib_Math.c,186 :: +L_end_Mul_16X16_U: +0x02FB 0x0008 RETURN +; end of _Mul_16X16_U +_FIXSIGN32: +;__Lib_MathDouble.c,112 :: +;__Lib_MathDouble.c,116 :: +0x02FC 0x1FFA BTFSS R10, 7 +;__Lib_MathDouble.c,117 :: +0x02FD 0x13F2 BCF R2, 7 +;__Lib_MathDouble.c,118 :: +0x02FE 0x3000 MOVLW 0 +;__Lib_MathDouble.c,120 :: +L_end_FIXSIGN32: +0x02FF 0x0008 RETURN +; end of _FIXSIGN32 +_VDelay_ms: +;__Lib_Delays.c,82 :: void VDelay_ms(unsigned Time_ms){ +;__Lib_Delays.c,84 :: NumberOfCyc = Clock_kHz()>>2; // this will be done by compiler, no asm will be genereated except that for assignment; +0x0300 0x3040 MOVLW 64 +0x0301 0x0144 MOVLB 4 +0x0302 0x00A5 MOVWF VDelay_ms_NumberOfCyc_L0 +0x0303 0x301F MOVLW 31 +0x0304 0x00A6 MOVWF VDelay_ms_NumberOfCyc_L0+1 +0x0305 0x01A7 CLRF VDelay_ms_NumberOfCyc_L0+2 +0x0306 0x01A8 CLRF VDelay_ms_NumberOfCyc_L0+3 +;__Lib_Delays.c,85 :: NumberOfCyc *= Time_ms; +0x0307 0x3040 MOVLW 64 +0x0308 0x00F0 MOVWF R0 +0x0309 0x301F MOVLW 31 +0x030A 0x00F1 MOVWF R1 +0x030B 0x3000 MOVLW 0 +0x030C 0x00F2 MOVWF R2 +0x030D 0x3000 MOVLW 0 +0x030E 0x00F3 MOVWF R3 +0x030F 0x0823 MOVF FARG_VDelay_ms_Time_ms, 0 +0x0310 0x00F4 MOVWF R4 +0x0311 0x0824 MOVF FARG_VDelay_ms_Time_ms+1, 0 +0x0312 0x00F5 MOVWF R5 +0x0313 0x01F6 CLRF R6 +0x0314 0x01F7 CLRF R7 +0x0315 0x21BE CALL _Mul_32x32_U +0x0316 0x0870 MOVF R0, 0 +0x0317 0x0144 MOVLB 4 +0x0318 0x00A5 MOVWF VDelay_ms_NumberOfCyc_L0 +0x0319 0x0871 MOVF R1, 0 +0x031A 0x00A6 MOVWF VDelay_ms_NumberOfCyc_L0+1 +0x031B 0x0872 MOVF R2, 0 +0x031C 0x00A7 MOVWF VDelay_ms_NumberOfCyc_L0+2 +0x031D 0x0873 MOVF R3, 0 +0x031E 0x00A8 MOVWF VDelay_ms_NumberOfCyc_L0+3 +;__Lib_Delays.c,86 :: if (NumberOfCyc < 690) +0x031F 0x3000 MOVLW 0 +0x0320 0x0273 SUBWF R3, 0 +0x0321 0x1D03 BTFSS STATUS, 2 +0x0322 0x2B2D GOTO L__VDelay_ms39 +0x0323 0x3000 MOVLW 0 +0x0324 0x0272 SUBWF R2, 0 +0x0325 0x1D03 BTFSS STATUS, 2 +0x0326 0x2B2D GOTO L__VDelay_ms39 +0x0327 0x3002 MOVLW 2 +0x0328 0x0271 SUBWF R1, 0 +0x0329 0x1D03 BTFSS STATUS, 2 +0x032A 0x2B2D GOTO L__VDelay_ms39 +0x032B 0x30B2 MOVLW 178 +0x032C 0x0270 SUBWF R0, 0 +L__VDelay_ms39: +0x032D 0x1803 BTFSC STATUS, 0 +0x032E 0x2B30 GOTO L_VDelay_ms16 +;__Lib_Delays.c,87 :: return; +0x032F 0x2B5F GOTO L_end_VDelay_ms +L_VDelay_ms16: +;__Lib_Delays.c,88 :: NumberOfCyc -= 690; +0x0330 0x30B2 MOVLW 178 +0x0331 0x02A5 SUBWF VDelay_ms_NumberOfCyc_L0, 1 +0x0332 0x3002 MOVLW 2 +0x0333 0x3BA6 SUBWFB VDelay_ms_NumberOfCyc_L0+1, 1 +0x0334 0x3000 MOVLW 0 +0x0335 0x3BA7 SUBWFB VDelay_ms_NumberOfCyc_L0+2, 1 +0x0336 0x3BA8 SUBWFB VDelay_ms_NumberOfCyc_L0+3, 1 +;__Lib_Delays.c,89 :: NumberOfCyc = NumberOfCyc >> 5; // Dec and While below take around 32 instructions +0x0337 0x3005 MOVLW 5 +0x0338 0x00F0 MOVWF R0 +0x0339 0x0870 MOVF R0, 0 +L__VDelay_ms40: +0x033A 0x1903 BTFSC STATUS, 2 +0x033B 0x2B42 GOTO L__VDelay_ms41 +0x033C 0x36A8 LSRF VDelay_ms_NumberOfCyc_L0+3, 1 +0x033D 0x0CA7 RRF VDelay_ms_NumberOfCyc_L0+2, 1 +0x033E 0x0CA6 RRF VDelay_ms_NumberOfCyc_L0+1, 1 +0x033F 0x0CA5 RRF VDelay_ms_NumberOfCyc_L0, 1 +0x0340 0x3EFF ADDLW 255 +0x0341 0x2B3A GOTO L__VDelay_ms40 +L__VDelay_ms41: +;__Lib_Delays.c,90 :: while (NumberOfCyc--) +L_VDelay_ms17: +0x0342 0x0825 MOVF VDelay_ms_NumberOfCyc_L0, 0 +0x0343 0x00F0 MOVWF R0 +0x0344 0x0826 MOVF VDelay_ms_NumberOfCyc_L0+1, 0 +0x0345 0x00F1 MOVWF R1 +0x0346 0x0827 MOVF VDelay_ms_NumberOfCyc_L0+2, 0 +0x0347 0x00F2 MOVWF R2 +0x0348 0x0828 MOVF VDelay_ms_NumberOfCyc_L0+3, 0 +0x0349 0x00F3 MOVWF R3 +0x034A 0x3001 MOVLW 1 +0x034B 0x02A5 SUBWF VDelay_ms_NumberOfCyc_L0, 1 +0x034C 0x3000 MOVLW 0 +0x034D 0x3BA6 SUBWFB VDelay_ms_NumberOfCyc_L0+1, 1 +0x034E 0x3BA7 SUBWFB VDelay_ms_NumberOfCyc_L0+2, 1 +0x034F 0x3BA8 SUBWFB VDelay_ms_NumberOfCyc_L0+3, 1 +0x0350 0x0870 MOVF R0, 0 +0x0351 0x0471 IORWF R1, 0 +0x0352 0x0472 IORWF R2, 0 +0x0353 0x0473 IORWF R3, 0 +0x0354 0x1903 BTFSC STATUS, 2 +0x0355 0x2B5F GOTO L_VDelay_ms18 +;__Lib_Delays.c,92 :: asm nop; +0x0356 0x0000 NOP +;__Lib_Delays.c,93 :: asm nop; +0x0357 0x0000 NOP +;__Lib_Delays.c,94 :: asm nop; +0x0358 0x0000 NOP +;__Lib_Delays.c,95 :: asm nop; +0x0359 0x0000 NOP +;__Lib_Delays.c,96 :: asm nop; +0x035A 0x0000 NOP +;__Lib_Delays.c,97 :: asm nop; +0x035B 0x0000 NOP +;__Lib_Delays.c,98 :: asm nop; +0x035C 0x0000 NOP +;__Lib_Delays.c,99 :: asm nop; +0x035D 0x0000 NOP +;__Lib_Delays.c,100 :: } +0x035E 0x2B42 GOTO L_VDelay_ms17 +L_VDelay_ms18: +;__Lib_Delays.c,101 :: } +L_end_VDelay_ms: +0x035F 0x0008 RETURN +; end of _VDelay_ms +_SETFUN32: +;__Lib_MathDouble.c,138 :: +;__Lib_MathDouble.c,145 :: +0x0360 0x157B BSF R11, 2 +;__Lib_MathDouble.c,146 :: +0x0361 0x1FFB BTFSS R11, 7 +;__Lib_MathDouble.c,147 :: +0x0362 0x2B6A GOTO SETFUN32EEE +;__Lib_MathDouble.c,148 :: +0x0363 0x3001 MOVLW 1 +;__Lib_MathDouble.c,149 :: +0x0364 0x00F3 MOVWF R3 +;__Lib_MathDouble.c,150 :: +0x0365 0x01F2 CLRF R2 +;__Lib_MathDouble.c,151 :: +0x0366 0x01F1 CLRF R1 +;__Lib_MathDouble.c,152 :: +0x0367 0x01F0 CLRF R0 +;__Lib_MathDouble.c,153 :: +0x0368 0x0DFA RLF R10, 1 +;__Lib_MathDouble.c,154 :: +0x0369 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,155 :: +SETFUN32EEE: +;__Lib_MathDouble.c,156 :: +0x036A 0x30FF MOVLW 255 +;__Lib_MathDouble.c,158 :: +L_end_SETFUN32: +0x036B 0x0008 RETURN +; end of _SETFUN32 +_ADC_Get_Sample: +;__Lib_ADC_18xxx.c,64 :: +;__Lib_ADC_18xxx.c,65 :: +0x036C 0x303F MOVLW 63 +0x036D 0x0144 MOVLB 4 +0x036E 0x0523 ANDWF FARG_ADC_Get_Sample_channel, 0 +0x036F 0x0141 MOVLB 1 +0x0370 0x009E MOVWF ADPCH +;__Lib_ADC_18xxx.c,66 :: +0x0371 0x21A0 CALL _Delay_22us +;__Lib_ADC_18xxx.c,68 :: +0x0372 0x1413 BSF ADCON0, 0 +;__Lib_ADC_18xxx.c,69 :: +0x0373 0x0000 NOP +;__Lib_ADC_18xxx.c,70 :: +L_ADC_Get_Sample4: +0x0374 0x1C13 BTFSS ADCON0, 0 +0x0375 0x2B77 GOTO L_ADC_Get_Sample5 +;__Lib_ADC_18xxx.c,71 :: +0x0376 0x2B74 GOTO L_ADC_Get_Sample4 +L_ADC_Get_Sample5: +;__Lib_ADC_18xxx.c,73 :: +0x0377 0x080C MOVF ADRES, 0 +0x0378 0x00F0 MOVWF R0 +0x0379 0x080D MOVF ADRES+1, 0 +0x037A 0x00F1 MOVWF R1 +;__Lib_ADC_18xxx.c,74 :: +L_end_ADC_Get_Sample: +0x037B 0x0008 RETURN +; end of _ADC_Get_Sample +_oled_wr_str_s: +;oled_control.c,122 :: void oled_wr_str_s(char page, char col, char str[], char len) { // 128*64 OLED +;oled_control.c,124 :: set_addressing (page, col); +0x037C 0x0144 MOVLB 4 +0x037D 0x0823 MOVF FARG_oled_wr_str_s_page, 0 +0x037E 0x00AD MOVWF FARG_set_addressing_pagenum +0x037F 0x0824 MOVF FARG_oled_wr_str_s_col, 0 +0x0380 0x00AE MOVWF FARG_set_addressing_c_start +0x0381 0x220B CALL _set_addressing +;oled_control.c,126 :: for (i = 0; i < len; i++) { // write string +0x0382 0x0144 MOVLB 4 +0x0383 0x01A8 CLRF oled_wr_str_s_i_L0 +L_oled_wr_str_s16: +0x0384 0x0827 MOVF FARG_oled_wr_str_s_len, 0 +0x0385 0x0228 SUBWF oled_wr_str_s_i_L0, 0 +0x0386 0x1803 BTFSC STATUS, 0 +0x0387 0x2BB1 GOTO L_oled_wr_str_s17 +;oled_control.c,127 :: g = str[i] - 32; // table shift +0x0388 0x0828 MOVF oled_wr_str_s_i_L0, 0 +0x0389 0x0725 ADDWF FARG_oled_wr_str_s_str, 0 +0x038A 0x0084 MOVWF FSR0 +0x038B 0x3000 MOVLW 0 +0x038C 0x3D26 ADDWFC FARG_oled_wr_str_s_str+1, 0 +0x038D 0x0085 MOVWF FSR0H +0x038E 0x3020 MOVLW 32 +0x038F 0x0200 SUBWF INDF0, 0 +0x0390 0x00AA MOVWF oled_wr_str_s_g_L0 +;oled_control.c,128 :: for (h = 0; h < 5; h++) { // write letter +0x0391 0x01A9 CLRF oled_wr_str_s_h_L0 +L_oled_wr_str_s19: +0x0392 0x3005 MOVLW 5 +0x0393 0x0229 SUBWF oled_wr_str_s_h_L0, 0 +0x0394 0x1803 BTFSC STATUS, 0 +0x0395 0x2BAC GOTO L_oled_wr_str_s20 +;oled_control.c,129 :: Soft_I2C_Write(font_5x8[g*5+h]); +0x0396 0x082A MOVF oled_wr_str_s_g_L0, 0 +0x0397 0x00F0 MOVWF R0 +0x0398 0x3005 MOVLW 5 +0x0399 0x00F4 MOVWF R4 +0x039A 0x21A6 CALL _Mul_8X8_U +0x039B 0x0144 MOVLB 4 +0x039C 0x0829 MOVF oled_wr_str_s_h_L0, 0 +0x039D 0x07F0 ADDWF R0, 1 +0x039E 0x3000 MOVLW 0 +0x039F 0x3DF1 ADDWFC R1, 1 +0x03A0 0x30FF MOVLW oled_control_font_5x8 +0x03A1 0x0770 ADDWF R0, 0 +0x03A2 0x0084 MOVWF FSR0 +0x03A3 0x309D MOVLW hi_addr(oled_control_font_5x8) +0x03A4 0x3D71 ADDWFC R1, 0 +0x03A5 0x0085 MOVWF FSR0H +0x03A6 0x0800 MOVF INDF0, 0 +0x03A7 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x03A8 0x212A CALL _Soft_I2C_Write +;oled_control.c,128 :: for (h = 0; h < 5; h++) { // write letter +0x03A9 0x0144 MOVLB 4 +0x03AA 0x0AA9 INCF oled_wr_str_s_h_L0, 1 +;oled_control.c,130 :: } +0x03AB 0x2B92 GOTO L_oled_wr_str_s19 +L_oled_wr_str_s20: +;oled_control.c,131 :: Soft_I2C_Write (0); +0x03AC 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x03AD 0x212A CALL _Soft_I2C_Write +;oled_control.c,126 :: for (i = 0; i < len; i++) { // write string +0x03AE 0x0144 MOVLB 4 +0x03AF 0x0AA8 INCF oled_wr_str_s_i_L0, 1 +;oled_control.c,132 :: } +0x03B0 0x2B84 GOTO L_oled_wr_str_s16 +L_oled_wr_str_s17: +;oled_control.c,133 :: Soft_I2C_Stop (); +0x03B1 0x21F4 CALL _Soft_I2C_Stop +;oled_control.c,134 :: return; +;oled_control.c,135 :: } +L_end_oled_wr_str_s: +0x03B2 0x0008 RETURN +; end of _oled_wr_str_s +_IntToStr: +;__Lib_Conversions.c,195 :: +;__Lib_Conversions.c,201 :: +0x03B3 0x0144 MOVLB 4 +0x03B4 0x01A9 CLRF IntToStr_negative_L0 +0x03B5 0x01AA CLRF IntToStr_negative_L0+1 +;__Lib_Conversions.c,202 :: +0x03B6 0x0823 MOVF FARG_IntToStr_input, 0 +0x03B7 0x00AB MOVWF IntToStr_inword_L0 +0x03B8 0x0824 MOVF FARG_IntToStr_input+1, 0 +0x03B9 0x00AC MOVWF IntToStr_inword_L0+1 +;__Lib_Conversions.c,203 :: +0x03BA 0x3080 MOVLW 128 +0x03BB 0x0624 XORWF FARG_IntToStr_input+1, 0 +0x03BC 0x00F0 MOVWF R0 +0x03BD 0x3080 MOVLW 128 +0x03BE 0x0270 SUBWF R0, 0 +0x03BF 0x1D03 BTFSS STATUS, 2 +0x03C0 0x2BC3 GOTO L__IntToStr387 +0x03C1 0x3000 MOVLW 0 +0x03C2 0x0223 SUBWF FARG_IntToStr_input, 0 +L__IntToStr387: +0x03C3 0x1803 BTFSC STATUS, 0 +0x03C4 0x2BD1 GOTO L_IntToStr37 +;__Lib_Conversions.c,204 :: +0x03C5 0x3001 MOVLW 1 +0x03C6 0x00A9 MOVWF IntToStr_negative_L0 +0x03C7 0x3000 MOVLW 0 +0x03C8 0x00AA MOVWF IntToStr_negative_L0+1 +;__Lib_Conversions.c,205 :: +0x03C9 0x0823 MOVF FARG_IntToStr_input, 0 +0x03CA 0x3C00 SUBLW 0 +0x03CB 0x00AB MOVWF IntToStr_inword_L0 +0x03CC 0x0824 MOVF FARG_IntToStr_input+1, 0 +0x03CD 0x1C03 BTFSS STATUS, 0 +0x03CE 0x3E01 ADDLW 1 +0x03CF 0x01AC CLRF IntToStr_inword_L0+1 +0x03D0 0x02AC SUBWF IntToStr_inword_L0+1, 1 +;__Lib_Conversions.c,206 :: +L_IntToStr37: +;__Lib_Conversions.c,207 :: +0x03D1 0x082B MOVF IntToStr_inword_L0, 0 +0x03D2 0x00AD MOVWF FARG_WordToStr_input +0x03D3 0x082C MOVF IntToStr_inword_L0+1, 0 +0x03D4 0x00AE MOVWF FARG_WordToStr_input+1 +0x03D5 0x0825 MOVF FARG_IntToStr_output, 0 +0x03D6 0x00AF MOVWF FARG_WordToStr_output +0x03D7 0x0826 MOVF FARG_IntToStr_output+1, 0 +0x03D8 0x00B0 MOVWF FARG_WordToStr_output+1 +0x03D9 0x224B CALL _WordToStr +;__Lib_Conversions.c,209 :: +0x03DA 0x3006 MOVLW 6 +0x03DB 0x00A7 MOVWF IntToStr_i_L0 +0x03DC 0x3000 MOVLW 0 +0x03DD 0x00A8 MOVWF IntToStr_i_L0+1 +;__Lib_Conversions.c,210 :: +L_IntToStr38: +0x03DE 0x0828 MOVF IntToStr_i_L0+1, 0 +0x03DF 0x3C00 SUBLW 0 +0x03E0 0x1D03 BTFSS STATUS, 2 +0x03E1 0x2BE4 GOTO L__IntToStr388 +0x03E2 0x0827 MOVF IntToStr_i_L0, 0 +0x03E3 0x3C00 SUBLW 0 +L__IntToStr388: +0x03E4 0x1803 BTFSC STATUS, 0 +0x03E5 0x2BFF GOTO L_IntToStr39 +;__Lib_Conversions.c,211 :: +0x03E6 0x0827 MOVF IntToStr_i_L0, 0 +0x03E7 0x0725 ADDWF FARG_IntToStr_output, 0 +0x03E8 0x0086 MOVWF FSR1 +0x03E9 0x0828 MOVF IntToStr_i_L0+1, 0 +0x03EA 0x3D26 ADDWFC FARG_IntToStr_output+1, 0 +0x03EB 0x0087 MOVWF FSR1H +0x03EC 0x3001 MOVLW 1 +0x03ED 0x0227 SUBWF IntToStr_i_L0, 0 +0x03EE 0x00F0 MOVWF R0 +0x03EF 0x3000 MOVLW 0 +0x03F0 0x3B28 SUBWFB IntToStr_i_L0+1, 0 +0x03F1 0x00F1 MOVWF R1 +0x03F2 0x0870 MOVF R0, 0 +0x03F3 0x0725 ADDWF FARG_IntToStr_output, 0 +0x03F4 0x0084 MOVWF FSR0 +0x03F5 0x0871 MOVF R1, 0 +0x03F6 0x3D26 ADDWFC FARG_IntToStr_output+1, 0 +0x03F7 0x0085 MOVWF FSR0H +0x03F8 0x0800 MOVF INDF0, 0 +0x03F9 0x0081 MOVWF INDF1 +;__Lib_Conversions.c,212 :: +0x03FA 0x3001 MOVLW 1 +0x03FB 0x02A7 SUBWF IntToStr_i_L0, 1 +0x03FC 0x3000 MOVLW 0 +0x03FD 0x3BA8 SUBWFB IntToStr_i_L0+1, 1 +;__Lib_Conversions.c,213 :: +0x03FE 0x2BDE GOTO L_IntToStr38 +L_IntToStr39: +;__Lib_Conversions.c,214 :: +0x03FF 0x0825 MOVF FARG_IntToStr_output, 0 +0x0400 0x0086 MOVWF FSR1 +0x0401 0x0826 MOVF FARG_IntToStr_output+1, 0 +0x0402 0x0087 MOVWF FSR1H +0x0403 0x3020 MOVLW 32 +0x0404 0x0081 MOVWF INDF1 +;__Lib_Conversions.c,215 :: +0x0405 0x0829 MOVF IntToStr_negative_L0, 0 +0x0406 0x042A IORWF IntToStr_negative_L0+1, 0 +0x0407 0x1903 BTFSC STATUS, 2 +0x0408 0x2C25 GOTO L_IntToStr40 +;__Lib_Conversions.c,216 :: +0x0409 0x01A7 CLRF IntToStr_i_L0 +0x040A 0x01A8 CLRF IntToStr_i_L0+1 +;__Lib_Conversions.c,217 :: +L_IntToStr41: +0x040B 0x0827 MOVF IntToStr_i_L0, 0 +0x040C 0x0725 ADDWF FARG_IntToStr_output, 0 +0x040D 0x0084 MOVWF FSR0 +0x040E 0x0828 MOVF IntToStr_i_L0+1, 0 +0x040F 0x3D26 ADDWFC FARG_IntToStr_output+1, 0 +0x0410 0x0085 MOVWF FSR0H +0x0411 0x0800 MOVF INDF0, 0 +0x0412 0x3A20 XORLW 32 +0x0413 0x1D03 BTFSS STATUS, 2 +0x0414 0x2C19 GOTO L_IntToStr42 +0x0415 0x0AA7 INCF IntToStr_i_L0, 1 +0x0416 0x1903 BTFSC STATUS, 2 +0x0417 0x0AA8 INCF IntToStr_i_L0+1, 1 +0x0418 0x2C0B GOTO L_IntToStr41 +L_IntToStr42: +;__Lib_Conversions.c,218 :: +0x0419 0x3001 MOVLW 1 +0x041A 0x02A7 SUBWF IntToStr_i_L0, 1 +0x041B 0x3000 MOVLW 0 +0x041C 0x3BA8 SUBWFB IntToStr_i_L0+1, 1 +;__Lib_Conversions.c,219 :: +0x041D 0x0827 MOVF IntToStr_i_L0, 0 +0x041E 0x0725 ADDWF FARG_IntToStr_output, 0 +0x041F 0x0086 MOVWF FSR1 +0x0420 0x0828 MOVF IntToStr_i_L0+1, 0 +0x0421 0x3D26 ADDWFC FARG_IntToStr_output+1, 0 +0x0422 0x0087 MOVWF FSR1H +0x0423 0x302D MOVLW 45 +0x0424 0x0081 MOVWF INDF1 +L_IntToStr40: +;__Lib_Conversions.c,220 :: +L_end_IntToStr: +0x0425 0x0008 RETURN +; end of _IntToStr +_RES032: +;__Lib_MathDouble.c,123 :: +;__Lib_MathDouble.c,128 :: +0x0426 0x01F2 CLRF R2 +;__Lib_MathDouble.c,129 :: +0x0427 0x01F1 CLRF R1 +;__Lib_MathDouble.c,130 :: +0x0428 0x01F0 CLRF R0 +;__Lib_MathDouble.c,131 :: +0x0429 0x01F8 CLRF R8 +;__Lib_MathDouble.c,132 :: +0x042A 0x01F3 CLRF R3 +;__Lib_MathDouble.c,133 :: +0x042B 0x3000 MOVLW 0 +;__Lib_MathDouble.c,135 :: +L_end_RES032: +0x042C 0x0008 RETURN +; end of _RES032 +_send_command: +;oled_control.c,94 :: void send_command (char oled_command) { +;oled_control.c,95 :: Soft_I2C_Start(); +0x042D 0x2182 CALL _Soft_I2C_Start +;oled_control.c,96 :: Soft_I2C_Write(oled_addr); // device addres +0x042E 0x0141 MOVLB 1 +0x042F 0x0847 MOVF oled_control_oled_addr, 0 +0x0430 0x0144 MOVLB 4 +0x0431 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0432 0x212A CALL _Soft_I2C_Write +;oled_control.c,97 :: Soft_I2C_Write(128); // 128 - command, 192 - data +0x0433 0x3080 MOVLW 128 +0x0434 0x0144 MOVLB 4 +0x0435 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0436 0x212A CALL _Soft_I2C_Write +;oled_control.c,98 :: Soft_I2C_Write(oled_command); +0x0437 0x0144 MOVLB 4 +0x0438 0x0823 MOVF FARG_send_command_oled_command, 0 +0x0439 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x043A 0x212A CALL _Soft_I2C_Write +;oled_control.c,99 :: Soft_I2C_Stop(); +0x043B 0x21F4 CALL _Soft_I2C_Stop +;oled_control.c,100 :: return; +;oled_control.c,101 :: } +L_end_send_command: +0x043C 0x0008 RETURN +; end of _send_command +_SETFOV32: +;__Lib_MathDouble.c,79 :: +;__Lib_MathDouble.c,86 :: +0x043D 0x14FB BSF R11, 1 +;__Lib_MathDouble.c,87 :: +0x043E 0x1FFB BTFSS R11, 7 +;__Lib_MathDouble.c,88 :: +0x043F 0x2C47 GOTO SETFOV32EEE +;__Lib_MathDouble.c,89 :: +0x0440 0x30FF MOVLW 255 +;__Lib_MathDouble.c,90 :: +0x0441 0x00F3 MOVWF R3 +;__Lib_MathDouble.c,91 :: +0x0442 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,92 :: +0x0443 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,93 :: +0x0444 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,94 :: +0x0445 0x0DFA RLF R10, 1 +;__Lib_MathDouble.c,95 :: +0x0446 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,96 :: +SETFOV32EEE: +;__Lib_MathDouble.c,97 :: +0x0447 0x30FF MOVLW 255 +;__Lib_MathDouble.c,99 :: +L_end_SETFOV32: +0x0448 0x0008 RETURN +; end of _SETFOV32 +_oled_clear: +;oled_control.c,78 :: void oled_clear(void){ +;oled_control.c,81 :: Soft_I2C_Start(); +0x0449 0x2182 CALL _Soft_I2C_Start +;oled_control.c,82 :: Soft_I2C_Write(oled_addr); // device addres +0x044A 0x0141 MOVLB 1 +0x044B 0x0847 MOVF oled_control_oled_addr, 0 +0x044C 0x0144 MOVLB 4 +0x044D 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x044E 0x212A CALL _Soft_I2C_Write +;oled_control.c,83 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data +0x044F 0x3040 MOVLW 64 +0x0450 0x0144 MOVLB 4 +0x0451 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0452 0x212A CALL _Soft_I2C_Write +;oled_control.c,85 :: for (r = 0; r <=7; r++) { +0x0453 0x0144 MOVLB 4 +0x0454 0x01A4 CLRF oled_clear_r_L0 +L_oled_clear8: +0x0455 0x0824 MOVF oled_clear_r_L0, 0 +0x0456 0x3C07 SUBLW 7 +0x0457 0x1C03 BTFSS STATUS, 0 +0x0458 0x2C6B GOTO L_oled_clear9 +;oled_control.c,86 :: set_addressing (r, 0); // clear all 8 pages +0x0459 0x0824 MOVF oled_clear_r_L0, 0 +0x045A 0x00AD MOVWF FARG_set_addressing_pagenum +0x045B 0x01AE CLRF FARG_set_addressing_c_start +0x045C 0x220B CALL _set_addressing +;oled_control.c,87 :: for (i = 0; i < 128; i++, Soft_I2C_Write(0x00)); // clear one page pixels +0x045D 0x0144 MOVLB 4 +0x045E 0x01A3 CLRF oled_clear_i_L0 +L_oled_clear11: +0x045F 0x0144 MOVLB 4 +0x0460 0x3080 MOVLW 128 +0x0461 0x0223 SUBWF oled_clear_i_L0, 0 +0x0462 0x1803 BTFSC STATUS, 0 +0x0463 0x2C68 GOTO L_oled_clear12 +0x0464 0x0AA3 INCF oled_clear_i_L0, 1 +0x0465 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x0466 0x212A CALL _Soft_I2C_Write +0x0467 0x2C5F GOTO L_oled_clear11 +L_oled_clear12: +;oled_control.c,85 :: for (r = 0; r <=7; r++) { +0x0468 0x0144 MOVLB 4 +0x0469 0x0AA4 INCF oled_clear_r_L0, 1 +;oled_control.c,88 :: } +0x046A 0x2C55 GOTO L_oled_clear8 +L_oled_clear9: +;oled_control.c,89 :: Soft_I2C_Stop (); +0x046B 0x21F4 CALL _Soft_I2C_Stop +;oled_control.c,91 :: return; +;oled_control.c,92 :: } +L_end_oled_clear: +0x046C 0x0008 RETURN +; end of _oled_clear +_oled_wr_str: +;oled_control.c,138 :: void oled_wr_str (char page, char col, char str[], char leng ) { // +;oled_control.c,140 :: Soft_I2C_Start(); +0x046D 0x2182 CALL _Soft_I2C_Start +;oled_control.c,141 :: Soft_I2C_Write(oled_addr); // device addres +0x046E 0x0141 MOVLB 1 +0x046F 0x0847 MOVF oled_control_oled_addr, 0 +0x0470 0x0144 MOVLB 4 +0x0471 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0472 0x212A CALL _Soft_I2C_Write +;oled_control.c,142 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data +0x0473 0x3040 MOVLW 64 +0x0474 0x0144 MOVLB 4 +0x0475 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0476 0x212A CALL _Soft_I2C_Write +;oled_control.c,144 :: set_addressing (page, col); +0x0477 0x0144 MOVLB 4 +0x0478 0x0823 MOVF FARG_oled_wr_str_page, 0 +0x0479 0x00AD MOVWF FARG_set_addressing_pagenum +0x047A 0x0824 MOVF FARG_oled_wr_str_col, 0 +0x047B 0x00AE MOVWF FARG_set_addressing_c_start +0x047C 0x220B CALL _set_addressing +;oled_control.c,146 :: for (i = 0; i < leng; i++) { // write string +0x047D 0x0144 MOVLB 4 +0x047E 0x01A8 CLRF oled_wr_str_i_L0 +L_oled_wr_str22: +0x047F 0x0827 MOVF FARG_oled_wr_str_leng, 0 +0x0480 0x0228 SUBWF oled_wr_str_i_L0, 0 +0x0481 0x1803 BTFSC STATUS, 0 +0x0482 0x2D0E GOTO L_oled_wr_str23 +;oled_control.c,147 :: if (str[i] == 0) g = 0; else g = str[i] - 32; // NULL detection +0x0483 0x0828 MOVF oled_wr_str_i_L0, 0 +0x0484 0x0725 ADDWF FARG_oled_wr_str_str, 0 +0x0485 0x0084 MOVWF FSR0 +0x0486 0x3000 MOVLW 0 +0x0487 0x3D26 ADDWFC FARG_oled_wr_str_str+1, 0 +0x0488 0x0085 MOVWF FSR0H +0x0489 0x0800 MOVF INDF0, 0 +0x048A 0x3A00 XORLW 0 +0x048B 0x1D03 BTFSS STATUS, 2 +0x048C 0x2C8F GOTO L_oled_wr_str25 +0x048D 0x01AA CLRF oled_wr_str_g_L0 +0x048E 0x2C98 GOTO L_oled_wr_str26 +L_oled_wr_str25: +0x048F 0x0828 MOVF oled_wr_str_i_L0, 0 +0x0490 0x0725 ADDWF FARG_oled_wr_str_str, 0 +0x0491 0x0084 MOVWF FSR0 +0x0492 0x3000 MOVLW 0 +0x0493 0x3D26 ADDWFC FARG_oled_wr_str_str+1, 0 +0x0494 0x0085 MOVWF FSR0H +0x0495 0x3020 MOVLW 32 +0x0496 0x0200 SUBWF INDF0, 0 +0x0497 0x00AA MOVWF oled_wr_str_g_L0 +L_oled_wr_str26: +;oled_control.c,148 :: for (h = 0; h <= 4; h++) { // write letter +0x0498 0x01A9 CLRF oled_wr_str_h_L0 +L_oled_wr_str27: +0x0499 0x0829 MOVF oled_wr_str_h_L0, 0 +0x049A 0x3C04 SUBLW 4 +0x049B 0x1C03 BTFSS STATUS, 0 +0x049C 0x2D06 GOTO L_oled_wr_str28 +;oled_control.c,149 :: w1 = font_5x8[g*5+h]; +0x049D 0x082A MOVF oled_wr_str_g_L0, 0 +0x049E 0x00F0 MOVWF R0 +0x049F 0x3005 MOVLW 5 +0x04A0 0x00F4 MOVWF R4 +0x04A1 0x21A6 CALL _Mul_8X8_U +0x04A2 0x0144 MOVLB 4 +0x04A3 0x0829 MOVF oled_wr_str_h_L0, 0 +0x04A4 0x07F0 ADDWF R0, 1 +0x04A5 0x3000 MOVLW 0 +0x04A6 0x3DF1 ADDWFC R1, 1 +0x04A7 0x30FF MOVLW oled_control_font_5x8 +0x04A8 0x0770 ADDWF R0, 0 +0x04A9 0x0084 MOVWF FSR0 +0x04AA 0x309D MOVLW hi_addr(oled_control_font_5x8) +0x04AB 0x3D71 ADDWFC R1, 0 +0x04AC 0x0085 MOVWF FSR0H +0x04AD 0x0800 MOVF INDF0, 0 +0x04AE 0x00AB MOVWF oled_wr_str_w1_L0 +;oled_control.c,150 :: if(page != 2) { +0x04AF 0x0823 MOVF FARG_oled_wr_str_page, 0 +0x04B0 0x3A02 XORLW 2 +0x04B1 0x1903 BTFSC STATUS, 2 +0x04B2 0x2CDC GOTO L_oled_wr_str30 +;oled_control.c,151 :: w2.B7 = w1.B3; +0x04B3 0x19AB BTFSC oled_wr_str_w1_L0, 3 +0x04B4 0x2CB7 GOTO L__oled_wr_str74 +0x04B5 0x13AC BCF oled_wr_str_w2_L0, 7 +0x04B6 0x2CB8 GOTO L__oled_wr_str75 +L__oled_wr_str74: +0x04B7 0x17AC BSF oled_wr_str_w2_L0, 7 +L__oled_wr_str75: +;oled_control.c,152 :: w2.B6 = w1.B3; +0x04B8 0x19AB BTFSC oled_wr_str_w1_L0, 3 +0x04B9 0x2CBC GOTO L__oled_wr_str76 +0x04BA 0x132C BCF oled_wr_str_w2_L0, 6 +0x04BB 0x2CBD GOTO L__oled_wr_str77 +L__oled_wr_str76: +0x04BC 0x172C BSF oled_wr_str_w2_L0, 6 +L__oled_wr_str77: +;oled_control.c,153 :: w2.B5 = w1.B2; +0x04BD 0x192B BTFSC oled_wr_str_w1_L0, 2 +0x04BE 0x2CC1 GOTO L__oled_wr_str78 +0x04BF 0x12AC BCF oled_wr_str_w2_L0, 5 +0x04C0 0x2CC2 GOTO L__oled_wr_str79 +L__oled_wr_str78: +0x04C1 0x16AC BSF oled_wr_str_w2_L0, 5 +L__oled_wr_str79: +;oled_control.c,154 :: w2.B4 = w1.B2; +0x04C2 0x192B BTFSC oled_wr_str_w1_L0, 2 +0x04C3 0x2CC6 GOTO L__oled_wr_str80 +0x04C4 0x122C BCF oled_wr_str_w2_L0, 4 +0x04C5 0x2CC7 GOTO L__oled_wr_str81 +L__oled_wr_str80: +0x04C6 0x162C BSF oled_wr_str_w2_L0, 4 +L__oled_wr_str81: +;oled_control.c,155 :: w2.B3 = w1.B1; +0x04C7 0x18AB BTFSC oled_wr_str_w1_L0, 1 +0x04C8 0x2CCB GOTO L__oled_wr_str82 +0x04C9 0x11AC BCF oled_wr_str_w2_L0, 3 +0x04CA 0x2CCC GOTO L__oled_wr_str83 +L__oled_wr_str82: +0x04CB 0x15AC BSF oled_wr_str_w2_L0, 3 +L__oled_wr_str83: +;oled_control.c,156 :: w2.B2 = w1.B1; +0x04CC 0x18AB BTFSC oled_wr_str_w1_L0, 1 +0x04CD 0x2CD0 GOTO L__oled_wr_str84 +0x04CE 0x112C BCF oled_wr_str_w2_L0, 2 +0x04CF 0x2CD1 GOTO L__oled_wr_str85 +L__oled_wr_str84: +0x04D0 0x152C BSF oled_wr_str_w2_L0, 2 +L__oled_wr_str85: +;oled_control.c,157 :: w2.B1 = w1.B0; +0x04D1 0x182B BTFSC oled_wr_str_w1_L0, 0 +0x04D2 0x2CD5 GOTO L__oled_wr_str86 +0x04D3 0x10AC BCF oled_wr_str_w2_L0, 1 +0x04D4 0x2CD6 GOTO L__oled_wr_str87 +L__oled_wr_str86: +0x04D5 0x14AC BSF oled_wr_str_w2_L0, 1 +L__oled_wr_str87: +;oled_control.c,158 :: w2.B0 = w1.B0; } +0x04D6 0x182B BTFSC oled_wr_str_w1_L0, 0 +0x04D7 0x2CDA GOTO L__oled_wr_str88 +0x04D8 0x102C BCF oled_wr_str_w2_L0, 0 +0x04D9 0x2CDB GOTO L__oled_wr_str89 +L__oled_wr_str88: +0x04DA 0x142C BSF oled_wr_str_w2_L0, 0 +L__oled_wr_str89: +0x04DB 0x2CFC GOTO L_oled_wr_str31 +L_oled_wr_str30: +;oled_control.c,160 :: w2.B7 = w1.B2; +0x04DC 0x192B BTFSC oled_wr_str_w1_L0, 2 +0x04DD 0x2CE0 GOTO L__oled_wr_str90 +0x04DE 0x13AC BCF oled_wr_str_w2_L0, 7 +0x04DF 0x2CE1 GOTO L__oled_wr_str91 +L__oled_wr_str90: +0x04E0 0x17AC BSF oled_wr_str_w2_L0, 7 +L__oled_wr_str91: +;oled_control.c,161 :: w2.B6 = w1.B2; +0x04E1 0x192B BTFSC oled_wr_str_w1_L0, 2 +0x04E2 0x2CE5 GOTO L__oled_wr_str92 +0x04E3 0x132C BCF oled_wr_str_w2_L0, 6 +0x04E4 0x2CE6 GOTO L__oled_wr_str93 +L__oled_wr_str92: +0x04E5 0x172C BSF oled_wr_str_w2_L0, 6 +L__oled_wr_str93: +;oled_control.c,162 :: w2.B5 = w1.B1; +0x04E6 0x18AB BTFSC oled_wr_str_w1_L0, 1 +0x04E7 0x2CEA GOTO L__oled_wr_str94 +0x04E8 0x12AC BCF oled_wr_str_w2_L0, 5 +0x04E9 0x2CEB GOTO L__oled_wr_str95 +L__oled_wr_str94: +0x04EA 0x16AC BSF oled_wr_str_w2_L0, 5 +L__oled_wr_str95: +;oled_control.c,163 :: w2.B4 = w1.B1; +0x04EB 0x18AB BTFSC oled_wr_str_w1_L0, 1 +0x04EC 0x2CEF GOTO L__oled_wr_str96 +0x04ED 0x122C BCF oled_wr_str_w2_L0, 4 +0x04EE 0x2CF0 GOTO L__oled_wr_str97 +L__oled_wr_str96: +0x04EF 0x162C BSF oled_wr_str_w2_L0, 4 +L__oled_wr_str97: +;oled_control.c,164 :: w2.B3 = w1.B0; +0x04F0 0x182B BTFSC oled_wr_str_w1_L0, 0 +0x04F1 0x2CF4 GOTO L__oled_wr_str98 +0x04F2 0x11AC BCF oled_wr_str_w2_L0, 3 +0x04F3 0x2CF5 GOTO L__oled_wr_str99 +L__oled_wr_str98: +0x04F4 0x15AC BSF oled_wr_str_w2_L0, 3 +L__oled_wr_str99: +;oled_control.c,165 :: w2.B2 = w1.B0; +0x04F5 0x182B BTFSC oled_wr_str_w1_L0, 0 +0x04F6 0x2CF9 GOTO L__oled_wr_str100 +0x04F7 0x112C BCF oled_wr_str_w2_L0, 2 +0x04F8 0x2CFA GOTO L__oled_wr_str101 +L__oled_wr_str100: +0x04F9 0x152C BSF oled_wr_str_w2_L0, 2 +L__oled_wr_str101: +;oled_control.c,166 :: w2.B1 = 0; +0x04FA 0x10AC BCF oled_wr_str_w2_L0, 1 +;oled_control.c,167 :: w2.B0 = 0; +0x04FB 0x102C BCF oled_wr_str_w2_L0, 0 +;oled_control.c,168 :: } +L_oled_wr_str31: +;oled_control.c,169 :: Soft_I2C_Write(w2); +0x04FC 0x082C MOVF oled_wr_str_w2_L0, 0 +0x04FD 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x04FE 0x212A CALL _Soft_I2C_Write +;oled_control.c,170 :: Soft_I2C_Write(w2); +0x04FF 0x0144 MOVLB 4 +0x0500 0x082C MOVF oled_wr_str_w2_L0, 0 +0x0501 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0502 0x212A CALL _Soft_I2C_Write +;oled_control.c,148 :: for (h = 0; h <= 4; h++) { // write letter +0x0503 0x0144 MOVLB 4 +0x0504 0x0AA9 INCF oled_wr_str_h_L0, 1 +;oled_control.c,171 :: } +0x0505 0x2C99 GOTO L_oled_wr_str27 +L_oled_wr_str28: +;oled_control.c,172 :: Soft_I2C_Write (0); +0x0506 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x0507 0x212A CALL _Soft_I2C_Write +;oled_control.c,173 :: Soft_I2C_Write (0); +0x0508 0x0144 MOVLB 4 +0x0509 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x050A 0x212A CALL _Soft_I2C_Write +;oled_control.c,146 :: for (i = 0; i < leng; i++) { // write string +0x050B 0x0144 MOVLB 4 +0x050C 0x0AA8 INCF oled_wr_str_i_L0, 1 +;oled_control.c,174 :: } +0x050D 0x2C7F GOTO L_oled_wr_str22 +L_oled_wr_str23: +;oled_control.c,175 :: set_addressing (page+1, col); +0x050E 0x0A23 INCF FARG_oled_wr_str_page, 0 +0x050F 0x00AD MOVWF FARG_set_addressing_pagenum +0x0510 0x0824 MOVF FARG_oled_wr_str_col, 0 +0x0511 0x00AE MOVWF FARG_set_addressing_c_start +0x0512 0x220B CALL _set_addressing +;oled_control.c,177 :: for (i = 0; i < leng; i++) { // write string +0x0513 0x0144 MOVLB 4 +0x0514 0x01A8 CLRF oled_wr_str_i_L0 +L_oled_wr_str32: +0x0515 0x0827 MOVF FARG_oled_wr_str_leng, 0 +0x0516 0x0228 SUBWF oled_wr_str_i_L0, 0 +0x0517 0x1803 BTFSC STATUS, 0 +0x0518 0x2DAC GOTO L_oled_wr_str33 +;oled_control.c,178 :: if (str[i] == 0) g = 0; else g = str[i] - 32; // NULL detection +0x0519 0x0828 MOVF oled_wr_str_i_L0, 0 +0x051A 0x0725 ADDWF FARG_oled_wr_str_str, 0 +0x051B 0x0084 MOVWF FSR0 +0x051C 0x3000 MOVLW 0 +0x051D 0x3D26 ADDWFC FARG_oled_wr_str_str+1, 0 +0x051E 0x0085 MOVWF FSR0H +0x051F 0x0800 MOVF INDF0, 0 +0x0520 0x3A00 XORLW 0 +0x0521 0x1D03 BTFSS STATUS, 2 +0x0522 0x2D25 GOTO L_oled_wr_str35 +0x0523 0x01AA CLRF oled_wr_str_g_L0 +0x0524 0x2D2E GOTO L_oled_wr_str36 +L_oled_wr_str35: +0x0525 0x0828 MOVF oled_wr_str_i_L0, 0 +0x0526 0x0725 ADDWF FARG_oled_wr_str_str, 0 +0x0527 0x0084 MOVWF FSR0 +0x0528 0x3000 MOVLW 0 +0x0529 0x3D26 ADDWFC FARG_oled_wr_str_str+1, 0 +0x052A 0x0085 MOVWF FSR0H +0x052B 0x3020 MOVLW 32 +0x052C 0x0200 SUBWF INDF0, 0 +0x052D 0x00AA MOVWF oled_wr_str_g_L0 +L_oled_wr_str36: +;oled_control.c,179 :: for (h = 0; h <= 4; h++) { // write letter +0x052E 0x01A9 CLRF oled_wr_str_h_L0 +L_oled_wr_str37: +0x052F 0x0829 MOVF oled_wr_str_h_L0, 0 +0x0530 0x3C04 SUBLW 4 +0x0531 0x1C03 BTFSS STATUS, 0 +0x0532 0x2DA4 GOTO L_oled_wr_str38 +;oled_control.c,180 :: w1 = font_5x8[g*5+h]; +0x0533 0x082A MOVF oled_wr_str_g_L0, 0 +0x0534 0x00F0 MOVWF R0 +0x0535 0x3005 MOVLW 5 +0x0536 0x00F4 MOVWF R4 +0x0537 0x21A6 CALL _Mul_8X8_U +0x0538 0x0144 MOVLB 4 +0x0539 0x0829 MOVF oled_wr_str_h_L0, 0 +0x053A 0x07F0 ADDWF R0, 1 +0x053B 0x3000 MOVLW 0 +0x053C 0x3DF1 ADDWFC R1, 1 +0x053D 0x30FF MOVLW oled_control_font_5x8 +0x053E 0x0770 ADDWF R0, 0 +0x053F 0x0084 MOVWF FSR0 +0x0540 0x309D MOVLW hi_addr(oled_control_font_5x8) +0x0541 0x3D71 ADDWFC R1, 0 +0x0542 0x0085 MOVWF FSR0H +0x0543 0x0800 MOVF INDF0, 0 +0x0544 0x00AB MOVWF oled_wr_str_w1_L0 +;oled_control.c,181 :: if(page != 2) { +0x0545 0x0823 MOVF FARG_oled_wr_str_page, 0 +0x0546 0x3A02 XORLW 2 +0x0547 0x1903 BTFSC STATUS, 2 +0x0548 0x2D72 GOTO L_oled_wr_str40 +;oled_control.c,182 :: w2.B7 = w1.B7; +0x0549 0x1BAB BTFSC oled_wr_str_w1_L0, 7 +0x054A 0x2D4D GOTO L__oled_wr_str102 +0x054B 0x13AC BCF oled_wr_str_w2_L0, 7 +0x054C 0x2D4E GOTO L__oled_wr_str103 +L__oled_wr_str102: +0x054D 0x17AC BSF oled_wr_str_w2_L0, 7 +L__oled_wr_str103: +;oled_control.c,183 :: w2.B6 = w1.B7; +0x054E 0x1BAB BTFSC oled_wr_str_w1_L0, 7 +0x054F 0x2D52 GOTO L__oled_wr_str104 +0x0550 0x132C BCF oled_wr_str_w2_L0, 6 +0x0551 0x2D53 GOTO L__oled_wr_str105 +L__oled_wr_str104: +0x0552 0x172C BSF oled_wr_str_w2_L0, 6 +L__oled_wr_str105: +;oled_control.c,184 :: w2.B5 = w1.B6; +0x0553 0x1B2B BTFSC oled_wr_str_w1_L0, 6 +0x0554 0x2D57 GOTO L__oled_wr_str106 +0x0555 0x12AC BCF oled_wr_str_w2_L0, 5 +0x0556 0x2D58 GOTO L__oled_wr_str107 +L__oled_wr_str106: +0x0557 0x16AC BSF oled_wr_str_w2_L0, 5 +L__oled_wr_str107: +;oled_control.c,185 :: w2.B4 = w1.B6; +0x0558 0x1B2B BTFSC oled_wr_str_w1_L0, 6 +0x0559 0x2D5C GOTO L__oled_wr_str108 +0x055A 0x122C BCF oled_wr_str_w2_L0, 4 +0x055B 0x2D5D GOTO L__oled_wr_str109 +L__oled_wr_str108: +0x055C 0x162C BSF oled_wr_str_w2_L0, 4 +L__oled_wr_str109: +;oled_control.c,186 :: w2.B3 = w1.B5; +0x055D 0x1AAB BTFSC oled_wr_str_w1_L0, 5 +0x055E 0x2D61 GOTO L__oled_wr_str110 +0x055F 0x11AC BCF oled_wr_str_w2_L0, 3 +0x0560 0x2D62 GOTO L__oled_wr_str111 +L__oled_wr_str110: +0x0561 0x15AC BSF oled_wr_str_w2_L0, 3 +L__oled_wr_str111: +;oled_control.c,187 :: w2.B2 = w1.B5; +0x0562 0x1AAB BTFSC oled_wr_str_w1_L0, 5 +0x0563 0x2D66 GOTO L__oled_wr_str112 +0x0564 0x112C BCF oled_wr_str_w2_L0, 2 +0x0565 0x2D67 GOTO L__oled_wr_str113 +L__oled_wr_str112: +0x0566 0x152C BSF oled_wr_str_w2_L0, 2 +L__oled_wr_str113: +;oled_control.c,188 :: w2.B1 = w1.B4; +0x0567 0x1A2B BTFSC oled_wr_str_w1_L0, 4 +0x0568 0x2D6B GOTO L__oled_wr_str114 +0x0569 0x10AC BCF oled_wr_str_w2_L0, 1 +0x056A 0x2D6C GOTO L__oled_wr_str115 +L__oled_wr_str114: +0x056B 0x14AC BSF oled_wr_str_w2_L0, 1 +L__oled_wr_str115: +;oled_control.c,189 :: w2.B0 = w1.B4; } +0x056C 0x1A2B BTFSC oled_wr_str_w1_L0, 4 +0x056D 0x2D70 GOTO L__oled_wr_str116 +0x056E 0x102C BCF oled_wr_str_w2_L0, 0 +0x056F 0x2D71 GOTO L__oled_wr_str117 +L__oled_wr_str116: +0x0570 0x142C BSF oled_wr_str_w2_L0, 0 +L__oled_wr_str117: +0x0571 0x2D9A GOTO L_oled_wr_str41 +L_oled_wr_str40: +;oled_control.c,191 :: w2.B7 = w1.B6; +0x0572 0x1B2B BTFSC oled_wr_str_w1_L0, 6 +0x0573 0x2D76 GOTO L__oled_wr_str118 +0x0574 0x13AC BCF oled_wr_str_w2_L0, 7 +0x0575 0x2D77 GOTO L__oled_wr_str119 +L__oled_wr_str118: +0x0576 0x17AC BSF oled_wr_str_w2_L0, 7 +L__oled_wr_str119: +;oled_control.c,192 :: w2.B6 = w1.B6; +0x0577 0x1B2B BTFSC oled_wr_str_w1_L0, 6 +0x0578 0x2D7B GOTO L__oled_wr_str120 +0x0579 0x132C BCF oled_wr_str_w2_L0, 6 +0x057A 0x2D7C GOTO L__oled_wr_str121 +L__oled_wr_str120: +0x057B 0x172C BSF oled_wr_str_w2_L0, 6 +L__oled_wr_str121: +;oled_control.c,193 :: w2.B5 = w1.B5; +0x057C 0x1AAB BTFSC oled_wr_str_w1_L0, 5 +0x057D 0x2D80 GOTO L__oled_wr_str122 +0x057E 0x12AC BCF oled_wr_str_w2_L0, 5 +0x057F 0x2D81 GOTO L__oled_wr_str123 +L__oled_wr_str122: +0x0580 0x16AC BSF oled_wr_str_w2_L0, 5 +L__oled_wr_str123: +;oled_control.c,194 :: w2.B4 = w1.B5; +0x0581 0x1AAB BTFSC oled_wr_str_w1_L0, 5 +0x0582 0x2D85 GOTO L__oled_wr_str124 +0x0583 0x122C BCF oled_wr_str_w2_L0, 4 +0x0584 0x2D86 GOTO L__oled_wr_str125 +L__oled_wr_str124: +0x0585 0x162C BSF oled_wr_str_w2_L0, 4 +L__oled_wr_str125: +;oled_control.c,195 :: w2.B3 = w1.B4; +0x0586 0x1A2B BTFSC oled_wr_str_w1_L0, 4 +0x0587 0x2D8A GOTO L__oled_wr_str126 +0x0588 0x11AC BCF oled_wr_str_w2_L0, 3 +0x0589 0x2D8B GOTO L__oled_wr_str127 +L__oled_wr_str126: +0x058A 0x15AC BSF oled_wr_str_w2_L0, 3 +L__oled_wr_str127: +;oled_control.c,196 :: w2.B2 = w1.B4; +0x058B 0x1A2B BTFSC oled_wr_str_w1_L0, 4 +0x058C 0x2D8F GOTO L__oled_wr_str128 +0x058D 0x112C BCF oled_wr_str_w2_L0, 2 +0x058E 0x2D90 GOTO L__oled_wr_str129 +L__oled_wr_str128: +0x058F 0x152C BSF oled_wr_str_w2_L0, 2 +L__oled_wr_str129: +;oled_control.c,197 :: w2.B1 = w1.B3; +0x0590 0x19AB BTFSC oled_wr_str_w1_L0, 3 +0x0591 0x2D94 GOTO L__oled_wr_str130 +0x0592 0x10AC BCF oled_wr_str_w2_L0, 1 +0x0593 0x2D95 GOTO L__oled_wr_str131 +L__oled_wr_str130: +0x0594 0x14AC BSF oled_wr_str_w2_L0, 1 +L__oled_wr_str131: +;oled_control.c,198 :: w2.B0 = w1.B3; +0x0595 0x19AB BTFSC oled_wr_str_w1_L0, 3 +0x0596 0x2D99 GOTO L__oled_wr_str132 +0x0597 0x102C BCF oled_wr_str_w2_L0, 0 +0x0598 0x2D9A GOTO L__oled_wr_str133 +L__oled_wr_str132: +0x0599 0x142C BSF oled_wr_str_w2_L0, 0 +L__oled_wr_str133: +;oled_control.c,199 :: } +L_oled_wr_str41: +;oled_control.c,200 :: Soft_I2C_Write(w2); +0x059A 0x082C MOVF oled_wr_str_w2_L0, 0 +0x059B 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x059C 0x212A CALL _Soft_I2C_Write +;oled_control.c,201 :: Soft_I2C_Write(w2); +0x059D 0x0144 MOVLB 4 +0x059E 0x082C MOVF oled_wr_str_w2_L0, 0 +0x059F 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x05A0 0x212A CALL _Soft_I2C_Write +;oled_control.c,179 :: for (h = 0; h <= 4; h++) { // write letter +0x05A1 0x0144 MOVLB 4 +0x05A2 0x0AA9 INCF oled_wr_str_h_L0, 1 +;oled_control.c,202 :: } +0x05A3 0x2D2F GOTO L_oled_wr_str37 +L_oled_wr_str38: +;oled_control.c,203 :: Soft_I2C_Write (0); +0x05A4 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x05A5 0x212A CALL _Soft_I2C_Write +;oled_control.c,204 :: Soft_I2C_Write (0); +0x05A6 0x0144 MOVLB 4 +0x05A7 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x05A8 0x212A CALL _Soft_I2C_Write +;oled_control.c,177 :: for (i = 0; i < leng; i++) { // write string +0x05A9 0x0144 MOVLB 4 +0x05AA 0x0AA8 INCF oled_wr_str_i_L0, 1 +;oled_control.c,205 :: } +0x05AB 0x2D15 GOTO L_oled_wr_str32 +L_oled_wr_str33: +;oled_control.c,206 :: Soft_I2C_Stop (); +0x05AC 0x21F4 CALL _Soft_I2C_Stop +;oled_control.c,207 :: } +L_end_oled_wr_str: +0x05AD 0x0008 RETURN +; end of _oled_wr_str +_Greating: +;main.c,381 :: void Greating(){ +;main.c,382 :: Green = 0; +0x05AE 0x0140 MOVLB 0 +0x05AF 0x1197 BCF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,383 :: oled_clear(); +0x05B0 0x2449 CALL _oled_clear +;main.c,384 :: oled_wr_str_s(1, 0, " DESIGNED BY N7DDC", 18); +0x05B1 0x3001 MOVLW 1 +0x05B2 0x0144 MOVLB 4 +0x05B3 0x00A3 MOVWF FARG_oled_wr_str_s_page +0x05B4 0x01A4 CLRF FARG_oled_wr_str_s_col +0x05B5 0x3033 MOVLW ?lstr22_main +0x05B6 0x00A5 MOVWF FARG_oled_wr_str_s_str +0x05B7 0x3000 MOVLW hi_addr(?lstr22_main) +0x05B8 0x00A6 MOVWF FARG_oled_wr_str_s_str+1 +0x05B9 0x3012 MOVLW 18 +0x05BA 0x00A7 MOVWF FARG_oled_wr_str_s_len +0x05BB 0x237C CALL _oled_wr_str_s +;main.c,385 :: oled_wr_str_s(3, 0, " FW VERSION ", 12); +0x05BC 0x3003 MOVLW 3 +0x05BD 0x0144 MOVLB 4 +0x05BE 0x00A3 MOVWF FARG_oled_wr_str_s_page +0x05BF 0x01A4 CLRF FARG_oled_wr_str_s_col +0x05C0 0x3046 MOVLW ?lstr23_main +0x05C1 0x00A5 MOVWF FARG_oled_wr_str_s_str +0x05C2 0x3000 MOVLW hi_addr(?lstr23_main) +0x05C3 0x00A6 MOVWF FARG_oled_wr_str_s_str+1 +0x05C4 0x300C MOVLW 12 +0x05C5 0x00A7 MOVWF FARG_oled_wr_str_s_len +0x05C6 0x237C CALL _oled_wr_str_s +;main.c,386 :: oled_wr_str_s(3, 12*7, FW_VER, 3); +0x05C7 0x3003 MOVLW 3 +0x05C8 0x0144 MOVLB 4 +0x05C9 0x00A3 MOVWF FARG_oled_wr_str_s_page +0x05CA 0x3054 MOVLW 84 +0x05CB 0x00A4 MOVWF FARG_oled_wr_str_s_col +0x05CC 0x305B MOVLW ?lstr24_main +0x05CD 0x00A5 MOVWF FARG_oled_wr_str_s_str +0x05CE 0x3000 MOVLW hi_addr(?lstr24_main) +0x05CF 0x00A6 MOVWF FARG_oled_wr_str_s_str+1 +0x05D0 0x3003 MOVLW 3 +0x05D1 0x00A7 MOVWF FARG_oled_wr_str_s_len +0x05D2 0x237C CALL _oled_wr_str_s +;main.c,387 :: Delay_ms(3000); +0x05D3 0x307A MOVLW 122 +0x05D4 0x00FB MOVWF R11 +0x05D5 0x30C1 MOVLW 193 +0x05D6 0x00FC MOVWF R12 +0x05D7 0x3081 MOVLW 129 +0x05D8 0x00FD MOVWF R13 +L_Greating96: +0x05D9 0x0BFD DECFSZ R13, 1 +0x05DA 0x2DD9 GOTO L_Greating96 +0x05DB 0x0BFC DECFSZ R12, 1 +0x05DC 0x2DD9 GOTO L_Greating96 +0x05DD 0x0BFB DECFSZ R11, 1 +0x05DE 0x2DD9 GOTO L_Greating96 +0x05DF 0x0000 NOP +0x05E0 0x0000 NOP +;main.c,388 :: while(GetButton) asm NOP; +L_Greating97: +0x05E1 0x1A8D BTFSC PORTB, 5 +0x05E2 0x2DE5 GOTO L__Greating291 +0x05E3 0x1403 BSF STATUS, 0 +0x05E4 0x2DE6 GOTO L__Greating292 +L__Greating291: +0x05E5 0x1003 BCF STATUS, 0 +L__Greating292: +0x05E6 0x1C03 BTFSS STATUS, 0 +0x05E7 0x2DEA GOTO L_Greating98 +0x05E8 0x0000 NOP +0x05E9 0x2DE1 GOTO L_Greating97 +L_Greating98: +;main.c,389 :: Green = 1; +0x05EA 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,390 :: return; +;main.c,391 :: } +L_end_Greating: +0x05EB 0x0008 RETURN +; end of _Greating +_oled_bat: +;oled_control.c,210 :: void oled_bat () { +;oled_control.c,212 :: Soft_I2C_Start(); +0x05EC 0x2182 CALL _Soft_I2C_Start +;oled_control.c,213 :: Soft_I2C_Write(oled_addr); // device addres +0x05ED 0x0141 MOVLB 1 +0x05EE 0x0847 MOVF oled_control_oled_addr, 0 +0x05EF 0x0144 MOVLB 4 +0x05F0 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x05F1 0x212A CALL _Soft_I2C_Write +;oled_control.c,214 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data +0x05F2 0x3040 MOVLW 64 +0x05F3 0x0144 MOVLB 4 +0x05F4 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x05F5 0x212A CALL _Soft_I2C_Write +;oled_control.c,217 :: for(g=0; g<=3; g++) { // batt drawing +0x05F6 0x0144 MOVLB 4 +0x05F7 0x01A1 CLRF oled_bat_g_L0 +L_oled_bat42: +0x05F8 0x0821 MOVF oled_bat_g_L0, 0 +0x05F9 0x3C03 SUBLW 3 +0x05FA 0x1C03 BTFSS STATUS, 0 +0x05FB 0x2E1F GOTO L_oled_bat43 +;oled_control.c,218 :: set_addressing (g, 115); +0x05FC 0x0821 MOVF oled_bat_g_L0, 0 +0x05FD 0x00AD MOVWF FARG_set_addressing_pagenum +0x05FE 0x3073 MOVLW 115 +0x05FF 0x00AE MOVWF FARG_set_addressing_c_start +0x0600 0x220B CALL _set_addressing +;oled_control.c,219 :: for(i=0; i<=10; i++) { Soft_I2C_Write(batt[g*11+i]); } +0x0601 0x0144 MOVLB 4 +0x0602 0x01A0 CLRF oled_bat_i_L0 +L_oled_bat45: +0x0603 0x0820 MOVF oled_bat_i_L0, 0 +0x0604 0x3C0A SUBLW 10 +0x0605 0x1C03 BTFSS STATUS, 0 +0x0606 0x2E1D GOTO L_oled_bat46 +0x0607 0x0821 MOVF oled_bat_g_L0, 0 +0x0608 0x00F0 MOVWF R0 +0x0609 0x300B MOVLW 11 +0x060A 0x00F4 MOVWF R4 +0x060B 0x21A6 CALL _Mul_8X8_U +0x060C 0x0144 MOVLB 4 +0x060D 0x0820 MOVF oled_bat_i_L0, 0 +0x060E 0x07F0 ADDWF R0, 1 +0x060F 0x3000 MOVLW 0 +0x0610 0x3DF1 ADDWFC R1, 1 +0x0611 0x302D MOVLW oled_control_batt +0x0612 0x0770 ADDWF R0, 0 +0x0613 0x0084 MOVWF FSR0 +0x0614 0x30A0 MOVLW hi_addr(oled_control_batt) +0x0615 0x3D71 ADDWFC R1, 0 +0x0616 0x0085 MOVWF FSR0H +0x0617 0x0800 MOVF INDF0, 0 +0x0618 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0619 0x212A CALL _Soft_I2C_Write +0x061A 0x0144 MOVLB 4 +0x061B 0x0AA0 INCF oled_bat_i_L0, 1 +0x061C 0x2E03 GOTO L_oled_bat45 +L_oled_bat46: +;oled_control.c,217 :: for(g=0; g<=3; g++) { // batt drawing +0x061D 0x0AA1 INCF oled_bat_g_L0, 1 +;oled_control.c,220 :: } +0x061E 0x2DF8 GOTO L_oled_bat42 +L_oled_bat43: +;oled_control.c,221 :: Soft_I2C_Stop (); +0x061F 0x21F4 CALL _Soft_I2C_Stop +;oled_control.c,222 :: return; +;oled_control.c,223 :: } +L_end_oled_bat: +0x0620 0x0008 RETURN +; end of _oled_bat +_Relay_set: +;main.c,401 :: void Relay_set(char L, char C, char I){ +;main.c,402 :: L_010 = ~L.B0; +0x0621 0x0144 MOVLB 4 +0x0622 0x1820 BTFSC FARG_Relay_set_L, 0 +0x0623 0x2E27 GOTO L__Relay_set295 +0x0624 0x0140 MOVLB 0 +0x0625 0x1799 BSF LATD7_bit, BitPos(LATD7_bit+0) +0x0626 0x2E29 GOTO L__Relay_set296 +L__Relay_set295: +0x0627 0x0140 MOVLB 0 +0x0628 0x1399 BCF LATD7_bit, BitPos(LATD7_bit+0) +L__Relay_set296: +;main.c,403 :: L_022 = ~L.B1; +0x0629 0x0144 MOVLB 4 +0x062A 0x18A0 BTFSC FARG_Relay_set_L, 1 +0x062B 0x2E2F GOTO L__Relay_set297 +0x062C 0x0140 MOVLB 0 +0x062D 0x1719 BSF LATD6_bit, BitPos(LATD6_bit+0) +0x062E 0x2E31 GOTO L__Relay_set298 +L__Relay_set297: +0x062F 0x0140 MOVLB 0 +0x0630 0x1319 BCF LATD6_bit, BitPos(LATD6_bit+0) +L__Relay_set298: +;main.c,404 :: L_045 = ~L.B2; +0x0631 0x0144 MOVLB 4 +0x0632 0x1920 BTFSC FARG_Relay_set_L, 2 +0x0633 0x2E37 GOTO L__Relay_set299 +0x0634 0x0140 MOVLB 0 +0x0635 0x1699 BSF LATD5_bit, BitPos(LATD5_bit+0) +0x0636 0x2E39 GOTO L__Relay_set300 +L__Relay_set299: +0x0637 0x0140 MOVLB 0 +0x0638 0x1299 BCF LATD5_bit, BitPos(LATD5_bit+0) +L__Relay_set300: +;main.c,405 :: L_100 = ~L.B3; +0x0639 0x0144 MOVLB 4 +0x063A 0x19A0 BTFSC FARG_Relay_set_L, 3 +0x063B 0x2E3F GOTO L__Relay_set301 +0x063C 0x0140 MOVLB 0 +0x063D 0x1619 BSF LATD4_bit, BitPos(LATD4_bit+0) +0x063E 0x2E41 GOTO L__Relay_set302 +L__Relay_set301: +0x063F 0x0140 MOVLB 0 +0x0640 0x1219 BCF LATD4_bit, BitPos(LATD4_bit+0) +L__Relay_set302: +;main.c,406 :: L_220 = ~L.B4; +0x0641 0x0144 MOVLB 4 +0x0642 0x1A20 BTFSC FARG_Relay_set_L, 4 +0x0643 0x2E47 GOTO L__Relay_set303 +0x0644 0x0140 MOVLB 0 +0x0645 0x1798 BSF LATC7_bit, BitPos(LATC7_bit+0) +0x0646 0x2E49 GOTO L__Relay_set304 +L__Relay_set303: +0x0647 0x0140 MOVLB 0 +0x0648 0x1398 BCF LATC7_bit, BitPos(LATC7_bit+0) +L__Relay_set304: +;main.c,407 :: L_450 = ~L.B5; +0x0649 0x0144 MOVLB 4 +0x064A 0x1AA0 BTFSC FARG_Relay_set_L, 5 +0x064B 0x2E4F GOTO L__Relay_set305 +0x064C 0x0140 MOVLB 0 +0x064D 0x1718 BSF LATC6_bit, BitPos(LATC6_bit+0) +0x064E 0x2E51 GOTO L__Relay_set306 +L__Relay_set305: +0x064F 0x0140 MOVLB 0 +0x0650 0x1318 BCF LATC6_bit, BitPos(LATC6_bit+0) +L__Relay_set306: +;main.c,408 :: L_1000 = ~L.B6; +0x0651 0x0144 MOVLB 4 +0x0652 0x1B20 BTFSC FARG_Relay_set_L, 6 +0x0653 0x2E57 GOTO L__Relay_set307 +0x0654 0x0140 MOVLB 0 +0x0655 0x1698 BSF LATC5_bit, BitPos(LATC5_bit+0) +0x0656 0x2E59 GOTO L__Relay_set308 +L__Relay_set307: +0x0657 0x0140 MOVLB 0 +0x0658 0x1298 BCF LATC5_bit, BitPos(LATC5_bit+0) +L__Relay_set308: +;main.c,410 :: C_22 = ~C.B0; +0x0659 0x0144 MOVLB 4 +0x065A 0x1821 BTFSC FARG_Relay_set_C, 0 +0x065B 0x2E5F GOTO L__Relay_set309 +0x065C 0x0140 MOVLB 0 +0x065D 0x1696 BSF LATA5_bit, BitPos(LATA5_bit+0) +0x065E 0x2E61 GOTO L__Relay_set310 +L__Relay_set309: +0x065F 0x0140 MOVLB 0 +0x0660 0x1296 BCF LATA5_bit, BitPos(LATA5_bit+0) +L__Relay_set310: +;main.c,411 :: C_47 = ~C.B1; +0x0661 0x0144 MOVLB 4 +0x0662 0x18A1 BTFSC FARG_Relay_set_C, 1 +0x0663 0x2E67 GOTO L__Relay_set311 +0x0664 0x0140 MOVLB 0 +0x0665 0x149A BSF LATE1_bit, BitPos(LATE1_bit+0) +0x0666 0x2E69 GOTO L__Relay_set312 +L__Relay_set311: +0x0667 0x0140 MOVLB 0 +0x0668 0x109A BCF LATE1_bit, BitPos(LATE1_bit+0) +L__Relay_set312: +;main.c,412 :: C_100 = ~C.B2; +0x0669 0x0144 MOVLB 4 +0x066A 0x1921 BTFSC FARG_Relay_set_C, 2 +0x066B 0x2E6F GOTO L__Relay_set313 +0x066C 0x0140 MOVLB 0 +0x066D 0x1796 BSF LATA7_bit, BitPos(LATA7_bit+0) +0x066E 0x2E71 GOTO L__Relay_set314 +L__Relay_set313: +0x066F 0x0140 MOVLB 0 +0x0670 0x1396 BCF LATA7_bit, BitPos(LATA7_bit+0) +L__Relay_set314: +;main.c,413 :: C_220 = ~C.B3; +0x0671 0x0144 MOVLB 4 +0x0672 0x19A1 BTFSC FARG_Relay_set_C, 3 +0x0673 0x2E77 GOTO L__Relay_set315 +0x0674 0x0140 MOVLB 0 +0x0675 0x1716 BSF LATA6_bit, BitPos(LATA6_bit+0) +0x0676 0x2E79 GOTO L__Relay_set316 +L__Relay_set315: +0x0677 0x0140 MOVLB 0 +0x0678 0x1316 BCF LATA6_bit, BitPos(LATA6_bit+0) +L__Relay_set316: +;main.c,414 :: C_470 = ~C.B4; +0x0679 0x0144 MOVLB 4 +0x067A 0x1A21 BTFSC FARG_Relay_set_C, 4 +0x067B 0x2E7F GOTO L__Relay_set317 +0x067C 0x0140 MOVLB 0 +0x067D 0x1418 BSF LATC0_bit, BitPos(LATC0_bit+0) +0x067E 0x2E81 GOTO L__Relay_set318 +L__Relay_set317: +0x067F 0x0140 MOVLB 0 +0x0680 0x1018 BCF LATC0_bit, BitPos(LATC0_bit+0) +L__Relay_set318: +;main.c,415 :: C_1000 = ~C.B5; +0x0681 0x0144 MOVLB 4 +0x0682 0x1AA1 BTFSC FARG_Relay_set_C, 5 +0x0683 0x2E87 GOTO L__Relay_set319 +0x0684 0x0140 MOVLB 0 +0x0685 0x1498 BSF LATC1_bit, BitPos(LATC1_bit+0) +0x0686 0x2E89 GOTO L__Relay_set320 +L__Relay_set319: +0x0687 0x0140 MOVLB 0 +0x0688 0x1098 BCF LATC1_bit, BitPos(LATC1_bit+0) +L__Relay_set320: +;main.c,416 :: C_2200 = ~C.B6; +0x0689 0x0144 MOVLB 4 +0x068A 0x1B21 BTFSC FARG_Relay_set_C, 6 +0x068B 0x2E8F GOTO L__Relay_set321 +0x068C 0x0140 MOVLB 0 +0x068D 0x1518 BSF LATC2_bit, BitPos(LATC2_bit+0) +0x068E 0x2E91 GOTO L__Relay_set322 +L__Relay_set321: +0x068F 0x0140 MOVLB 0 +0x0690 0x1118 BCF LATC2_bit, BitPos(LATC2_bit+0) +L__Relay_set322: +;main.c,418 :: C_sw = I; +0x0691 0x0144 MOVLB 4 +0x0692 0x1822 BTFSC FARG_Relay_set_I, 0 +0x0693 0x2E97 GOTO L__Relay_set323 +0x0694 0x0140 MOVLB 0 +0x0695 0x101A BCF LATE0_bit, BitPos(LATE0_bit+0) +0x0696 0x2E99 GOTO L__Relay_set324 +L__Relay_set323: +0x0697 0x0140 MOVLB 0 +0x0698 0x141A BSF LATE0_bit, BitPos(LATE0_bit+0) +L__Relay_set324: +;main.c,420 :: Rel_to_gnd = 1; +0x0699 0x1599 BSF LATD3_bit, BitPos(LATD3_bit+0) +;main.c,421 :: Vdelay_ms(rldl); +0x069A 0x0143 MOVLB 3 +0x069B 0x0825 MOVF _rldl, 0 +0x069C 0x0144 MOVLB 4 +0x069D 0x00A3 MOVWF FARG_VDelay_ms_Time_ms +0x069E 0x0143 MOVLB 3 +0x069F 0x0826 MOVF _rldl+1, 0 +0x06A0 0x0144 MOVLB 4 +0x06A1 0x00A4 MOVWF FARG_VDelay_ms_Time_ms+1 +0x06A2 0x2300 CALL _VDelay_ms +;main.c,422 :: Rel_to_gnd = 0; +0x06A3 0x0140 MOVLB 0 +0x06A4 0x1199 BCF LATD3_bit, BitPos(LATD3_bit+0) +;main.c,423 :: Delay_us(10); +0x06A5 0x301A MOVLW 26 +0x06A6 0x00FD MOVWF R13 +L_Relay_set99: +0x06A7 0x0BFD DECFSZ R13, 1 +0x06A8 0x2EA7 GOTO L_Relay_set99 +0x06A9 0x0000 NOP +;main.c,424 :: Rel_to_plus_N = 0; +0x06AA 0x1218 BCF LATC4_bit, BitPos(LATC4_bit+0) +;main.c,425 :: Vdelay_ms(rldl); +0x06AB 0x0143 MOVLB 3 +0x06AC 0x0825 MOVF _rldl, 0 +0x06AD 0x0144 MOVLB 4 +0x06AE 0x00A3 MOVWF FARG_VDelay_ms_Time_ms +0x06AF 0x0143 MOVLB 3 +0x06B0 0x0826 MOVF _rldl+1, 0 +0x06B1 0x0144 MOVLB 4 +0x06B2 0x00A4 MOVWF FARG_VDelay_ms_Time_ms+1 +0x06B3 0x2300 CALL _VDelay_ms +;main.c,426 :: Rel_to_plus_N = 1; +0x06B4 0x0140 MOVLB 0 +0x06B5 0x1618 BSF LATC4_bit, BitPos(LATC4_bit+0) +;main.c,427 :: Vdelay_ms(rldl); +0x06B6 0x0143 MOVLB 3 +0x06B7 0x0825 MOVF _rldl, 0 +0x06B8 0x0144 MOVLB 4 +0x06B9 0x00A3 MOVWF FARG_VDelay_ms_Time_ms +0x06BA 0x0143 MOVLB 3 +0x06BB 0x0826 MOVF _rldl+1, 0 +0x06BC 0x0144 MOVLB 4 +0x06BD 0x00A4 MOVWF FARG_VDelay_ms_Time_ms+1 +0x06BE 0x2300 CALL _VDelay_ms +;main.c,429 :: L_010 = 0; +0x06BF 0x0140 MOVLB 0 +0x06C0 0x1399 BCF LATD7_bit, BitPos(LATD7_bit+0) +;main.c,430 :: L_022 = 0; +0x06C1 0x1319 BCF LATD6_bit, BitPos(LATD6_bit+0) +;main.c,431 :: L_045 = 0; +0x06C2 0x1299 BCF LATD5_bit, BitPos(LATD5_bit+0) +;main.c,432 :: L_100 = 0; +0x06C3 0x1219 BCF LATD4_bit, BitPos(LATD4_bit+0) +;main.c,433 :: L_220 = 0; +0x06C4 0x1398 BCF LATC7_bit, BitPos(LATC7_bit+0) +;main.c,434 :: L_450 = 0; +0x06C5 0x1318 BCF LATC6_bit, BitPos(LATC6_bit+0) +;main.c,435 :: L_1000 = 0; +0x06C6 0x1298 BCF LATC5_bit, BitPos(LATC5_bit+0) +;main.c,437 :: C_22 = 0; +0x06C7 0x1296 BCF LATA5_bit, BitPos(LATA5_bit+0) +;main.c,438 :: C_47 = 0; +0x06C8 0x109A BCF LATE1_bit, BitPos(LATE1_bit+0) +;main.c,439 :: C_100 = 0; +0x06C9 0x1396 BCF LATA7_bit, BitPos(LATA7_bit+0) +;main.c,440 :: C_220 = 0; +0x06CA 0x1316 BCF LATA6_bit, BitPos(LATA6_bit+0) +;main.c,441 :: C_470 = 0; +0x06CB 0x1018 BCF LATC0_bit, BitPos(LATC0_bit+0) +;main.c,442 :: C_1000 = 0; +0x06CC 0x1098 BCF LATC1_bit, BitPos(LATC1_bit+0) +;main.c,443 :: C_2200 = 0; +0x06CD 0x1118 BCF LATC2_bit, BitPos(LATC2_bit+0) +;main.c,445 :: C_sw = 0; +0x06CE 0x101A BCF LATE0_bit, BitPos(LATE0_bit+0) +;main.c,446 :: return; +;main.c,447 :: } +L_end_Relay_set: +0x06CF 0x0008 RETURN +; end of _Relay_set +_Soft_I2C_Init: +;Soft_I2C.c,12 :: void Soft_I2C_Init(void) { +;Soft_I2C.c,13 :: Soft_I2C_Stop(); +0x06D0 0x21F4 CALL _Soft_I2C_Stop +;Soft_I2C.c,14 :: return; +;Soft_I2C.c,15 :: } +L_end_Soft_I2C_Init: +0x06D1 0x0008 RETURN +; end of _Soft_I2C_Init +_draw_swr: +;main.c,243 :: void draw_swr(unsigned int s){ +;main.c,244 :: if(s==0) +0x06D2 0x3000 MOVLW 0 +0x06D3 0x0144 MOVLB 4 +0x06D4 0x0621 XORWF FARG_draw_swr_s+1, 0 +0x06D5 0x1D03 BTFSS STATUS, 2 +0x06D6 0x2ED9 GOTO L__draw_swr276 +0x06D7 0x3000 MOVLW 0 +0x06D8 0x0620 XORWF FARG_draw_swr_s, 0 +L__draw_swr276: +0x06D9 0x1D03 BTFSS STATUS, 2 +0x06DA 0x2EE7 GOTO L_draw_swr75 +;main.c,245 :: oled_wr_str(2, 60, "0.00", 4); +0x06DB 0x3002 MOVLW 2 +0x06DC 0x00A3 MOVWF FARG_oled_wr_str_page +0x06DD 0x303C MOVLW 60 +0x06DE 0x00A4 MOVWF FARG_oled_wr_str_col +0x06DF 0x302A MOVLW ?lstr11_main +0x06E0 0x00A5 MOVWF FARG_oled_wr_str_str +0x06E1 0x3001 MOVLW hi_addr(?lstr11_main) +0x06E2 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x06E3 0x3004 MOVLW 4 +0x06E4 0x00A7 MOVWF FARG_oled_wr_str_leng +0x06E5 0x246D CALL _oled_wr_str +0x06E6 0x2F06 GOTO L_draw_swr76 +L_draw_swr75: +;main.c,247 :: IntToStr(s, txt_2); +0x06E7 0x0144 MOVLB 4 +0x06E8 0x0820 MOVF FARG_draw_swr_s, 0 +0x06E9 0x00A3 MOVWF FARG_IntToStr_input +0x06EA 0x0821 MOVF FARG_draw_swr_s+1, 0 +0x06EB 0x00A4 MOVWF FARG_IntToStr_input+1 +0x06EC 0x30AB MOVLW _txt_2 +0x06ED 0x00A5 MOVWF FARG_IntToStr_output +0x06EE 0x3001 MOVLW hi_addr(_txt_2) +0x06EF 0x00A6 MOVWF FARG_IntToStr_output+1 +0x06F0 0x23B3 CALL _IntToStr +;main.c,248 :: txt[0] = txt_2[3]; +0x06F1 0x0143 MOVLB 3 +0x06F2 0x082E MOVF _txt_2+3, 0 +0x06F3 0x00B3 MOVWF _txt +;main.c,249 :: txt[1] = '.'; +0x06F4 0x302E MOVLW 46 +0x06F5 0x00B4 MOVWF _txt+1 +;main.c,250 :: txt[2] = txt_2[4]; +0x06F6 0x082F MOVF _txt_2+4, 0 +0x06F7 0x00B5 MOVWF _txt+2 +;main.c,251 :: txt[3] = txt_2[5]; +0x06F8 0x0830 MOVF _txt_2+5, 0 +0x06F9 0x00B6 MOVWF _txt+3 +;main.c,253 :: oled_wr_str(2, 60, txt, 4); +0x06FA 0x3002 MOVLW 2 +0x06FB 0x0144 MOVLB 4 +0x06FC 0x00A3 MOVWF FARG_oled_wr_str_page +0x06FD 0x303C MOVLW 60 +0x06FE 0x00A4 MOVWF FARG_oled_wr_str_col +0x06FF 0x30B3 MOVLW _txt +0x0700 0x00A5 MOVWF FARG_oled_wr_str_str +0x0701 0x3001 MOVLW hi_addr(_txt) +0x0702 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x0703 0x3004 MOVLW 4 +0x0704 0x00A7 MOVWF FARG_oled_wr_str_leng +0x0705 0x246D CALL _oled_wr_str +;main.c,254 :: } +L_draw_swr76: +;main.c,255 :: return; +;main.c,256 :: } +L_end_draw_swr: +0x0706 0x0008 RETURN +; end of _draw_swr +_get_batt: +;main.c,642 :: void get_batt(void){ +;main.c,643 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); +0x0707 0x3043 MOVLW 67 +0x0708 0x0144 MOVLB 4 +0x0709 0x00A3 MOVWF FARG_ADC_Init_Advanced_reference +0x070A 0x2297 CALL _ADC_Init_Advanced +;main.c,644 :: Delay_us(100); +0x070B 0x3002 MOVLW 2 +0x070C 0x00FC MOVWF R12 +0x070D 0x3008 MOVLW 8 +0x070E 0x00FD MOVWF R13 +L_get_batt159: +0x070F 0x0BFD DECFSZ R13, 1 +0x0710 0x2F0F GOTO L_get_batt159 +0x0711 0x0BFC DECFSZ R12, 1 +0x0712 0x2F0F GOTO L_get_batt159 +0x0713 0x0000 NOP +;main.c,645 :: Voltage = ADC_Get_Sample(Battery_input) * 11; +0x0714 0x3009 MOVLW 9 +0x0715 0x0144 MOVLB 4 +0x0716 0x00A3 MOVWF FARG_ADC_Get_Sample_channel +0x0717 0x236C CALL _ADC_Get_Sample +0x0718 0x300B MOVLW 11 +0x0719 0x00F4 MOVWF R4 +0x071A 0x3000 MOVLW 0 +0x071B 0x00F5 MOVWF R5 +0x071C 0x22D2 CALL _Mul_16X16_U +0x071D 0x0870 MOVF R0, 0 +0x071E 0x0143 MOVLB 3 +0x071F 0x00A9 MOVWF _Voltage +0x0720 0x0871 MOVF R1, 0 +0x0721 0x00AA MOVWF _Voltage+1 +;main.c,646 :: return; +;main.c,647 :: } +L_end_get_batt: +0x0722 0x0008 RETURN +; end of _get_batt +_SETFDZ32: +;__Lib_MathDouble.c,102 :: +;__Lib_MathDouble.c,105 :: +0x0723 0x15FB BSF R11, 3 +;__Lib_MathDouble.c,106 :: +0x0724 0x30FF MOVLW 255 +;__Lib_MathDouble.c,108 :: +L_end_SETFDZ32: +0x0725 0x0008 RETURN +; end of _SETFDZ32 +_NRM4032: +;__Lib_MathDouble.c,245 :: +;__Lib_MathDouble.c,252 :: +;__Lib_MathDouble.c,254 :: +0x0726 0x187C BTFSC R12, 0 +;__Lib_MathDouble.c,255 :: +0x0727 0x2F5C GOTO NRMRND4032 +;__Lib_MathDouble.c,256 :: +0x0728 0x18FC BTFSC R12, 1 +;__Lib_MathDouble.c,257 :: +0x0729 0x2F2D GOTO NRM4032 +;__Lib_MathDouble.c,258 :: +0x072A 0x197C BTFSC R12, 2 +;__Lib_MathDouble.c,259 :: +0x072B 0x2F7B GOTO JMPSETFOV32 +;__Lib_MathDouble.c,260 :: +0x072C 0x2F26 GOTO $-6 +;__Lib_MathDouble.c,261 :: +NRM4032: +;__Lib_MathDouble.c,262 :: +0x072D 0x01A1 CLRF __math_tempbD +;__Lib_MathDouble.c,263 :: +0x072E 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,264 :: +0x072F 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,265 :: +0x0730 0x2F4D GOTO NORM4032 +;__Lib_MathDouble.c,266 :: +0x0731 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,267 :: +0x0732 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,268 :: +0x0733 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,269 :: +0x0734 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,270 :: +0x0735 0x0878 MOVF R8, 0 +;__Lib_MathDouble.c,271 :: +0x0736 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,272 :: +0x0737 0x01F8 CLRF R8 +;__Lib_MathDouble.c,273 :: +0x0738 0x15A1 BSF __math_tempbD, 3 +;__Lib_MathDouble.c,275 :: +0x0739 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,276 :: +0x073A 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,277 :: +0x073B 0x2F4D GOTO NORM4032 +;__Lib_MathDouble.c,278 :: +0x073C 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,279 :: +0x073D 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,280 :: +0x073E 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,281 :: +0x073F 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,282 :: +0x0740 0x01F0 CLRF R0 +;__Lib_MathDouble.c,283 :: +0x0741 0x11A1 BCF __math_tempbD, 3 +;__Lib_MathDouble.c,284 :: +0x0742 0x1621 BSF __math_tempbD, 4 +;__Lib_MathDouble.c,286 :: +0x0743 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,287 :: +0x0744 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,288 :: +0x0745 0x2F4D GOTO NORM4032 +;__Lib_MathDouble.c,289 :: +0x0746 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,290 :: +0x0747 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,291 :: +0x0748 0x01F1 CLRF R1 +;__Lib_MathDouble.c,292 :: +0x0749 0x15A1 BSF __math_tempbD, 3 +;__Lib_MathDouble.c,294 :: +0x074A 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,295 :: +0x074B 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,296 :: +0x074C 0x2F6F GOTO JMPRES032 +;__Lib_MathDouble.c,297 :: +NORM4032: +;__Lib_MathDouble.c,298 :: +0x074D 0x0821 MOVF __math_tempbD, 0 +;__Lib_MathDouble.c,299 :: +0x074E 0x02F3 SUBWF R3, 1 +;__Lib_MathDouble.c,300 :: +0x074F 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,301 :: +0x0750 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,302 :: +0x0751 0x2F73 GOTO JMPSETFUN32 +;__Lib_MathDouble.c,303 :: +0x0752 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,304 :: +NORM4032A: +;__Lib_MathDouble.c,305 :: +0x0753 0x1BF2 BTFSC R2, 7 +;__Lib_MathDouble.c,306 :: +0x0754 0x2F5C GOTO NRMRND4032 +;__Lib_MathDouble.c,307 :: +0x0755 0x0DF8 RLF R8, 1 +;__Lib_MathDouble.c,308 :: +0x0756 0x0DF0 RLF R0, 1 +;__Lib_MathDouble.c,309 :: +0x0757 0x0DF1 RLF R1, 1 +;__Lib_MathDouble.c,310 :: +0x0758 0x0DF2 RLF R2, 1 +;__Lib_MathDouble.c,311 :: +0x0759 0x0BF3 DECFSZ R3, 1 +;__Lib_MathDouble.c,312 :: +0x075A 0x2F53 GOTO NORM4032A +;__Lib_MathDouble.c,313 :: +0x075B 0x2F73 GOTO JMPSETFUN32 +;__Lib_MathDouble.c,314 :: +NRMRND4032: +;__Lib_MathDouble.c,315 :: +0x075C 0x1B7B BTFSC R11, 6 +;__Lib_MathDouble.c,316 :: +0x075D 0x1C70 BTFSS R0, 0 +;__Lib_MathDouble.c,317 :: +0x075E 0x2F77 GOTO JMPFIXSIGN32 +;__Lib_MathDouble.c,318 :: +0x075F 0x1FF8 BTFSS R8, 7 +;__Lib_MathDouble.c,319 :: +0x0760 0x2F77 GOTO JMPFIXSIGN32 +;__Lib_MathDouble.c,320 :: +0x0761 0x0AF0 INCF R0, 1 +;__Lib_MathDouble.c,321 :: +0x0762 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,322 :: +0x0763 0x0AF1 INCF R1, 1 +;__Lib_MathDouble.c,323 :: +0x0764 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,324 :: +0x0765 0x0AF2 INCF R2, 1 +;__Lib_MathDouble.c,325 :: +0x0766 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,326 :: +0x0767 0x2F77 GOTO JMPFIXSIGN32 +;__Lib_MathDouble.c,327 :: +0x0768 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,328 :: +0x0769 0x0CF1 RRF R1, 1 +;__Lib_MathDouble.c,329 :: +0x076A 0x0CF0 RRF R0, 1 +;__Lib_MathDouble.c,330 :: +0x076B 0x0AF3 INCF R3, 1 +;__Lib_MathDouble.c,331 :: +0x076C 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,332 :: +0x076D 0x2F7B GOTO JMPSETFOV32 +;__Lib_MathDouble.c,333 :: +0x076E 0x2F77 GOTO JMPFIXSIGN32 +;__Lib_MathDouble.c,334 :: +JMPRES032: +;__Lib_MathDouble.c,335 :: +0x076F 0x3001 MOVLW 1 +;__Lib_MathDouble.c,336 :: +0x0770 0x00FC MOVWF R12 +;__Lib_MathDouble.c,338 :: +0x0771 0x2426 CALL _RES032 +;__Lib_MathDouble.c,340 :: +0x0772 0x2F7E GOTO NRM4032EEE +;__Lib_MathDouble.c,341 :: +JMPSETFUN32: +;__Lib_MathDouble.c,342 :: +0x0773 0x3002 MOVLW 2 +;__Lib_MathDouble.c,343 :: +0x0774 0x00FC MOVWF R12 +;__Lib_MathDouble.c,345 :: +0x0775 0x2360 CALL _SETFUN32 +;__Lib_MathDouble.c,347 :: +0x0776 0x2F7E GOTO NRM4032EEE +;__Lib_MathDouble.c,348 :: +JMPFIXSIGN32: +;__Lib_MathDouble.c,349 :: +0x0777 0x3004 MOVLW 4 +;__Lib_MathDouble.c,350 :: +0x0778 0x00FC MOVWF R12 +;__Lib_MathDouble.c,352 :: +0x0779 0x22FC CALL _FIXSIGN32 +;__Lib_MathDouble.c,354 :: +0x077A 0x2F7E GOTO NRM4032EEE +;__Lib_MathDouble.c,355 :: +JMPSETFOV32: +;__Lib_MathDouble.c,356 :: +0x077B 0x3008 MOVLW 8 +;__Lib_MathDouble.c,357 :: +0x077C 0x00FC MOVWF R12 +;__Lib_MathDouble.c,359 :: +0x077D 0x243D CALL _SETFOV32 +;__Lib_MathDouble.c,361 :: +NRM4032EEE: +;__Lib_MathDouble.c,362 :: +0x077E 0x0000 NOP +;__Lib_MathDouble.c,370 :: +L_end_NRM4032: +0x077F 0x0008 RETURN +; end of _NRM4032 +_SETIOV3224: +;__Lib_MathDouble.c,996 :: +;__Lib_MathDouble.c,1002 :: +0x0780 0x147B BSF R11, 0 +;__Lib_MathDouble.c,1003 :: +0x0781 0x1FFB BTFSS R11, 7 +;__Lib_MathDouble.c,1004 :: +0x0782 0x2F8B GOTO SETIOV3224EEE +;__Lib_MathDouble.c,1006 :: +0x0783 0x01F2 CLRF R2 +;__Lib_MathDouble.c,1007 :: +0x0784 0x1FFA BTFSS R10, 7 +;__Lib_MathDouble.c,1008 :: +0x0785 0x30FF MOVLW 255 +;__Lib_MathDouble.c,1009 :: +0x0786 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,1010 :: +0x0787 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,1011 :: +0x0788 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,1012 :: +0x0789 0x0DFA RLF R10, 1 +;__Lib_MathDouble.c,1013 :: +0x078A 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,1014 :: +SETIOV3224EEE: +;__Lib_MathDouble.c,1015 :: +0x078B 0x30FF MOVLW 255 +;__Lib_MathDouble.c,1017 :: +L_end_SETIOV3224: +0x078C 0x0008 RETURN +; end of _SETIOV3224 +_COMFREM: +;__Lib_Math.c,1060 :: +;__Lib_Math.c,1064 :: +0x078D 0x09FB COMF R11, 1 +;__Lib_Math.c,1065 :: +0x078E 0x09FA COMF R10, 1 +;__Lib_Math.c,1066 :: +0x078F 0x09F9 COMF R9, 1 +;__Lib_Math.c,1067 :: +0x0790 0x09F8 COMF R8, 1 +;__Lib_Math.c,1068 :: +0x0791 0x0AF8 INCF R8, 1 +;__Lib_Math.c,1069 :: +0x0792 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1070 :: +0x0793 0x0AF9 INCF R9, 1 +;__Lib_Math.c,1071 :: +0x0794 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1072 :: +0x0795 0x0AFA INCF R10, 1 +;__Lib_Math.c,1073 :: +0x0796 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1074 :: +0x0797 0x0AFB INCF R11, 1 +;__Lib_Math.c,1076 :: +L_end_COMFREM: +0x0798 0x0008 RETURN +; end of _COMFREM +_NRM3232: +;__Lib_MathDouble.c,167 :: +;__Lib_MathDouble.c,173 :: +;__Lib_MathDouble.c,175 :: +0x0799 0x01A1 CLRF __math_tempbD +;__Lib_MathDouble.c,176 :: +0x079A 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,177 :: +0x079B 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,178 :: +0x079C 0x2FAE GOTO NORM3232 +;__Lib_MathDouble.c,179 :: +0x079D 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,180 :: +0x079E 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,181 :: +0x079F 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,182 :: +0x07A0 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,183 :: +0x07A1 0x01F0 CLRF R0 +;__Lib_MathDouble.c,184 :: +0x07A2 0x15A1 BSF __math_tempbD, 3 +;__Lib_MathDouble.c,186 :: +0x07A3 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,187 :: +0x07A4 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,188 :: +0x07A5 0x2FAE GOTO NORM3232 +;__Lib_MathDouble.c,189 :: +0x07A6 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,190 :: +0x07A7 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,191 :: +0x07A8 0x01F1 CLRF R1 +;__Lib_MathDouble.c,192 :: +0x07A9 0x11A1 BCF __math_tempbD, 3 +;__Lib_MathDouble.c,193 :: +0x07AA 0x1621 BSF __math_tempbD, 4 +;__Lib_MathDouble.c,195 :: +0x07AB 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,196 :: +0x07AC 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,197 :: +0x07AD 0x2FBC GOTO JPNRES032 +;__Lib_MathDouble.c,198 :: +NORM3232: +;__Lib_MathDouble.c,199 :: +0x07AE 0x0821 MOVF __math_tempbD, 0 +;__Lib_MathDouble.c,200 :: +0x07AF 0x02F3 SUBWF R3, 1 +;__Lib_MathDouble.c,201 :: +0x07B0 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,202 :: +0x07B1 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,203 :: +0x07B2 0x2FC0 GOTO JPNSETFUN32 +;__Lib_MathDouble.c,204 :: +0x07B3 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,205 :: +NORM3232A: +;__Lib_MathDouble.c,206 :: +0x07B4 0x1BF2 BTFSC R2, 7 +;__Lib_MathDouble.c,207 :: +0x07B5 0x2FC4 GOTO JMPNFIXSIGN32 +;__Lib_MathDouble.c,208 :: +0x07B6 0x0DF0 RLF R0, 1 +;__Lib_MathDouble.c,209 :: +0x07B7 0x0DF1 RLF R1, 1 +;__Lib_MathDouble.c,210 :: +0x07B8 0x0DF2 RLF R2, 1 +;__Lib_MathDouble.c,211 :: +0x07B9 0x0BF3 DECFSZ R3, 1 +;__Lib_MathDouble.c,212 :: +0x07BA 0x2FB4 GOTO NORM3232A +;__Lib_MathDouble.c,213 :: +0x07BB 0x2FC0 GOTO JPNSETFUN32 +;__Lib_MathDouble.c,214 :: +JPNRES032: +;__Lib_MathDouble.c,215 :: +0x07BC 0x3001 MOVLW 1 +;__Lib_MathDouble.c,216 :: +0x07BD 0x00FC MOVWF R12 +;__Lib_MathDouble.c,218 :: +0x07BE 0x2426 CALL _RES032 +;__Lib_MathDouble.c,220 :: +0x07BF 0x2FC7 GOTO NORM32EEE +;__Lib_MathDouble.c,221 :: +JPNSETFUN32: +;__Lib_MathDouble.c,222 :: +0x07C0 0x3002 MOVLW 2 +;__Lib_MathDouble.c,223 :: +0x07C1 0x00FC MOVWF R12 +;__Lib_MathDouble.c,225 :: +0x07C2 0x2360 CALL _SETFUN32 +;__Lib_MathDouble.c,227 :: +0x07C3 0x2FC7 GOTO NORM32EEE +;__Lib_MathDouble.c,228 :: +JMPNFIXSIGN32: +;__Lib_MathDouble.c,229 :: +0x07C4 0x3004 MOVLW 4 +;__Lib_MathDouble.c,230 :: +0x07C5 0x00FC MOVWF R12 +;__Lib_MathDouble.c,232 :: +0x07C6 0x22FC CALL _FIXSIGN32 +;__Lib_MathDouble.c,234 :: +NORM32EEE: +;__Lib_MathDouble.c,236 :: +L_end_NRM3232: +0x07C7 0x0008 RETURN +; end of _NRM3232 +_atu_reset: +;main.c,393 :: void atu_reset(){ +;main.c,394 :: ind = 0; +0x07C8 0x0142 MOVLB 2 +0x07C9 0x01BF CLRF _ind +;main.c,395 :: cap = 0; +0x07CA 0x0141 MOVLB 1 +0x07CB 0x01EF CLRF _cap +;main.c,396 :: SW = 0; +0x07CC 0x01EE CLRF _SW +;main.c,397 :: Relay_set(ind, cap, SW); +0x07CD 0x0144 MOVLB 4 +0x07CE 0x01A0 CLRF FARG_Relay_set_L +0x07CF 0x01A1 CLRF FARG_Relay_set_C +0x07D0 0x01A2 CLRF FARG_Relay_set_I +0x07D1 0x2621 CALL _Relay_set +;main.c,398 :: return; +;main.c,399 :: } +L_end_atu_reset: +0x07D2 0x0008 RETURN +; end of _atu_reset +_int2double: +;__Lib_MathDouble.c,1802 :: +;__Lib_MathDouble.c,1808 :: +0x07D3 0x0140 MOVLB 0 +;__Lib_MathDouble.c,1809 :: +0x07D4 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,1810 :: +0x07D5 0x00F8 MOVWF R8 +;__Lib_MathDouble.c,1811 :: +0x07D6 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,1812 :: +0x07D7 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,1813 :: +0x07D8 0x01F1 CLRF R1 +;__Lib_MathDouble.c,1814 :: +0x07D9 0x01F2 CLRF R2 +;__Lib_MathDouble.c,1815 :: +0x07DA 0x01F3 CLRF R3 +;__Lib_MathDouble.c,1818 :: +0x07DB 0x01FB CLRF R11 +;__Lib_MathDouble.c,1819 :: +0x07DC 0x01FC CLRF R12 +;__Lib_MathDouble.c,1821 :: +0x07DD 0x3096 MOVLW 150 +;__Lib_MathDouble.c,1822 :: +0x07DE 0x00F3 MOVWF R3 +;__Lib_MathDouble.c,1823 :: +0x07DF 0x01FA CLRF R10 +;__Lib_MathDouble.c,1824 :: +0x07E0 0x1FF0 BTFSS R0, 7 +;__Lib_MathDouble.c,1825 :: +0x07E1 0x2FE8 GOTO FLO1632EEE +;__Lib_MathDouble.c,1827 :: +0x07E2 0x09F8 COMF R8, 1 +;__Lib_MathDouble.c,1828 :: +0x07E3 0x09F0 COMF R0, 1 +;__Lib_MathDouble.c,1830 :: +0x07E4 0x0AF8 INCF R8, 1 +;__Lib_MathDouble.c,1831 :: +0x07E5 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,1832 :: +0x07E6 0x0AF0 INCF R0, 1 +;__Lib_MathDouble.c,1834 :: +0x07E7 0x17FA BSF R10, 7 +;__Lib_MathDouble.c,1835 :: +FLO1632EEE: +;__Lib_MathDouble.c,1836 :: +0x07E8 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,1837 :: +0x07E9 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,1838 :: +0x07EA 0x0878 MOVF R8, 0 +;__Lib_MathDouble.c,1839 :: +0x07EB 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,1840 :: +0x07EC 0x01F8 CLRF R8 +;__Lib_MathDouble.c,1841 :: +0x07ED 0x01F2 CLRF R2 +;__Lib_MathDouble.c,1843 :: +0x07EE 0x2799 CALL _NRM3232 +;__Lib_MathDouble.c,1844 :: +L_end_int2double: +0x07EF 0x0008 RETURN +; end of _int2double +___CC2DW: +;__Lib_System.c,71 :: +;__Lib_System.c,73 :: +_CC2DL_Loop1: +;__Lib_System.c,74 :: +0x07F0 0x0012 MOVIW FSR0++ +;__Lib_System.c,75 :: +0x07F1 0x001E MOVWI FSR1++ +;__Lib_System.c,76 :: +0x07F2 0x03F0 DECF R0, 1 +;__Lib_System.c,77 :: +0x07F3 0x1D03 BTFSS STATUS, 2 +;__Lib_System.c,78 :: +0x07F4 0x2FF0 GOTO _CC2DL_Loop1 +;__Lib_System.c,79 :: +0x07F5 0x03F1 DECF R1, 1 +;__Lib_System.c,80 :: +0x07F6 0x1D03 BTFSS STATUS, 2 +;__Lib_System.c,81 :: +0x07F7 0x2FF0 GOTO _CC2DL_Loop1 +;__Lib_System.c,83 :: +L_end___CC2DW: +0x07F8 0x0008 RETURN +; end of ___CC2DW +_SDIV3232L: +;__Lib_Math.c,691 :: +;__Lib_Math.c,700 :: +0x0800 0x0874 MOVF R4, 0 +;__Lib_Math.c,701 :: +0x0801 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,702 :: +0x0802 0x0875 MOVF R5, 0 +;__Lib_Math.c,703 :: +0x0803 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,704 :: +0x0804 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,705 :: +0x0805 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,706 :: +0x0806 0x0876 MOVF R6, 0 +;__Lib_Math.c,707 :: +0x0807 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,708 :: +0x0808 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,709 :: +0x0809 0x02FA SUBWF R10, 1 +;__Lib_Math.c,710 :: +0x080A 0x0877 MOVF R7, 0 +;__Lib_Math.c,711 :: +0x080B 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,712 :: +0x080C 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,713 :: +0x080D 0x02FB SUBWF R11, 1 +;__Lib_Math.c,714 :: +0x080E 0x0DF3 RLF R3, 1 +;__Lib_Math.c,716 :: +0x080F 0x3007 MOVLW 7 +;__Lib_Math.c,717 :: +0x0810 0x00FC MOVWF R12 +;__Lib_Math.c,719 :: +LOOPS3232A: +;__Lib_Math.c,720 :: +0x0811 0x0D73 RLF R3, 0 +;__Lib_Math.c,721 :: +0x0812 0x0DF8 RLF R8, 1 +;__Lib_Math.c,722 :: +0x0813 0x0DF9 RLF R9, 1 +;__Lib_Math.c,723 :: +0x0814 0x0DFA RLF R10, 1 +;__Lib_Math.c,724 :: +0x0815 0x0DFB RLF R11, 1 +;__Lib_Math.c,725 :: +0x0816 0x0874 MOVF R4, 0 +;__Lib_Math.c,726 :: +0x0817 0x1C73 BTFSS R3, 0 +;__Lib_Math.c,727 :: +0x0818 0x2827 GOTO SADD22LA +;__Lib_Math.c,729 :: +0x0819 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,730 :: +0x081A 0x0875 MOVF R5, 0 +;__Lib_Math.c,731 :: +0x081B 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,732 :: +0x081C 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,733 :: +0x081D 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,734 :: +0x081E 0x0876 MOVF R6, 0 +;__Lib_Math.c,735 :: +0x081F 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,736 :: +0x0820 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,737 :: +0x0821 0x02FA SUBWF R10, 1 +;__Lib_Math.c,738 :: +0x0822 0x0877 MOVF R7, 0 +;__Lib_Math.c,739 :: +0x0823 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,740 :: +0x0824 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,741 :: +0x0825 0x02FB SUBWF R11, 1 +;__Lib_Math.c,742 :: +0x0826 0x2834 GOTO SOK22LA +;__Lib_Math.c,744 :: +SADD22LA: +;__Lib_Math.c,745 :: +0x0827 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,746 :: +0x0828 0x0875 MOVF R5, 0 +;__Lib_Math.c,747 :: +0x0829 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,748 :: +0x082A 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,749 :: +0x082B 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,750 :: +0x082C 0x0876 MOVF R6, 0 +;__Lib_Math.c,751 :: +0x082D 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,752 :: +0x082E 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,753 :: +0x082F 0x07FA ADDWF R10, 1 +;__Lib_Math.c,754 :: +0x0830 0x0877 MOVF R7, 0 +;__Lib_Math.c,755 :: +0x0831 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,756 :: +0x0832 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,757 :: +0x0833 0x07FB ADDWF R11, 1 +;__Lib_Math.c,759 :: +SOK22LA: +;__Lib_Math.c,760 :: +0x0834 0x0DF3 RLF R3, 1 +;__Lib_Math.c,762 :: +0x0835 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,763 :: +0x0836 0x2811 GOTO LOOPS3232A +;__Lib_Math.c,765 :: +0x0837 0x0D72 RLF R2, 0 +;__Lib_Math.c,766 :: +0x0838 0x0DF8 RLF R8, 1 +;__Lib_Math.c,767 :: +0x0839 0x0DF9 RLF R9, 1 +;__Lib_Math.c,768 :: +0x083A 0x0DFA RLF R10, 1 +;__Lib_Math.c,769 :: +0x083B 0x0DFB RLF R11, 1 +;__Lib_Math.c,770 :: +0x083C 0x0874 MOVF R4, 0 +;__Lib_Math.c,771 :: +0x083D 0x1C73 BTFSS R3, 0 +;__Lib_Math.c,772 :: +0x083E 0x284D GOTO SADD22L8 +;__Lib_Math.c,774 :: +0x083F 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,775 :: +0x0840 0x0875 MOVF R5, 0 +;__Lib_Math.c,776 :: +0x0841 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,777 :: +0x0842 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,778 :: +0x0843 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,779 :: +0x0844 0x0876 MOVF R6, 0 +;__Lib_Math.c,780 :: +0x0845 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,781 :: +0x0846 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,782 :: +0x0847 0x02FA SUBWF R10, 1 +;__Lib_Math.c,783 :: +0x0848 0x0877 MOVF R7, 0 +;__Lib_Math.c,784 :: +0x0849 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,785 :: +0x084A 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,786 :: +0x084B 0x02FB SUBWF R11, 1 +;__Lib_Math.c,787 :: +0x084C 0x285A GOTO SOK22L8 +;__Lib_Math.c,789 :: +SADD22L8: +;__Lib_Math.c,790 :: +0x084D 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,791 :: +0x084E 0x0875 MOVF R5, 0 +;__Lib_Math.c,792 :: +0x084F 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,793 :: +0x0850 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,794 :: +0x0851 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,795 :: +0x0852 0x0876 MOVF R6, 0 +;__Lib_Math.c,796 :: +0x0853 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,797 :: +0x0854 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,798 :: +0x0855 0x07FA ADDWF R10, 1 +;__Lib_Math.c,799 :: +0x0856 0x0877 MOVF R7, 0 +;__Lib_Math.c,800 :: +0x0857 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,801 :: +0x0858 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,802 :: +0x0859 0x07FB ADDWF R11, 1 +;__Lib_Math.c,804 :: +SOK22L8: +;__Lib_Math.c,805 :: +0x085A 0x0DF2 RLF R2, 1 +;__Lib_Math.c,807 :: +0x085B 0x3007 MOVLW 7 +;__Lib_Math.c,808 :: +0x085C 0x00FC MOVWF R12 +;__Lib_Math.c,810 :: +LOOPS3232B: +;__Lib_Math.c,811 :: +0x085D 0x0D72 RLF R2, 0 +;__Lib_Math.c,812 :: +0x085E 0x0DF8 RLF R8, 1 +;__Lib_Math.c,813 :: +0x085F 0x0DF9 RLF R9, 1 +;__Lib_Math.c,814 :: +0x0860 0x0DFA RLF R10, 1 +;__Lib_Math.c,815 :: +0x0861 0x0DFB RLF R11, 1 +;__Lib_Math.c,816 :: +0x0862 0x0874 MOVF R4, 0 +;__Lib_Math.c,817 :: +0x0863 0x1C72 BTFSS R2, 0 +;__Lib_Math.c,818 :: +0x0864 0x2873 GOTO SADD22LB +;__Lib_Math.c,820 :: +0x0865 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,821 :: +0x0866 0x0875 MOVF R5, 0 +;__Lib_Math.c,822 :: +0x0867 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,823 :: +0x0868 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,824 :: +0x0869 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,825 :: +0x086A 0x0876 MOVF R6, 0 +;__Lib_Math.c,826 :: +0x086B 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,827 :: +0x086C 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,828 :: +0x086D 0x02FA SUBWF R10, 1 +;__Lib_Math.c,829 :: +0x086E 0x0877 MOVF R7, 0 +;__Lib_Math.c,830 :: +0x086F 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,831 :: +0x0870 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,832 :: +0x0871 0x02FB SUBWF R11, 1 +;__Lib_Math.c,833 :: +0x0872 0x2880 GOTO SOK22LB +;__Lib_Math.c,835 :: +SADD22LB: +;__Lib_Math.c,836 :: +0x0873 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,837 :: +0x0874 0x0875 MOVF R5, 0 +;__Lib_Math.c,838 :: +0x0875 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,839 :: +0x0876 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,840 :: +0x0877 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,841 :: +0x0878 0x0876 MOVF R6, 0 +;__Lib_Math.c,842 :: +0x0879 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,843 :: +0x087A 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,844 :: +0x087B 0x07FA ADDWF R10, 1 +;__Lib_Math.c,845 :: +0x087C 0x0877 MOVF R7, 0 +;__Lib_Math.c,846 :: +0x087D 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,847 :: +0x087E 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,848 :: +0x087F 0x07FB ADDWF R11, 1 +;__Lib_Math.c,850 :: +SOK22LB: +;__Lib_Math.c,851 :: +0x0880 0x0DF2 RLF R2, 1 +;__Lib_Math.c,853 :: +0x0881 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,854 :: +0x0882 0x285D GOTO LOOPS3232B +;__Lib_Math.c,856 :: +0x0883 0x0D71 RLF R1, 0 +;__Lib_Math.c,857 :: +0x0884 0x0DF8 RLF R8, 1 +;__Lib_Math.c,858 :: +0x0885 0x0DF9 RLF R9, 1 +;__Lib_Math.c,859 :: +0x0886 0x0DFA RLF R10, 1 +;__Lib_Math.c,860 :: +0x0887 0x0DFB RLF R11, 1 +;__Lib_Math.c,861 :: +0x0888 0x0874 MOVF R4, 0 +;__Lib_Math.c,862 :: +0x0889 0x1C72 BTFSS R2, 0 +;__Lib_Math.c,863 :: +0x088A 0x2899 GOTO SADD22L16 +;__Lib_Math.c,865 :: +0x088B 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,866 :: +0x088C 0x0875 MOVF R5, 0 +;__Lib_Math.c,867 :: +0x088D 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,868 :: +0x088E 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,869 :: +0x088F 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,870 :: +0x0890 0x0876 MOVF R6, 0 +;__Lib_Math.c,871 :: +0x0891 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,872 :: +0x0892 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,873 :: +0x0893 0x02FA SUBWF R10, 1 +;__Lib_Math.c,874 :: +0x0894 0x0877 MOVF R7, 0 +;__Lib_Math.c,875 :: +0x0895 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,876 :: +0x0896 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,877 :: +0x0897 0x02FB SUBWF R11, 1 +;__Lib_Math.c,878 :: +0x0898 0x28A6 GOTO SOK22L16 +;__Lib_Math.c,880 :: +SADD22L16: +;__Lib_Math.c,881 :: +0x0899 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,882 :: +0x089A 0x0875 MOVF R5, 0 +;__Lib_Math.c,883 :: +0x089B 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,884 :: +0x089C 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,885 :: +0x089D 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,886 :: +0x089E 0x0876 MOVF R6, 0 +;__Lib_Math.c,887 :: +0x089F 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,888 :: +0x08A0 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,889 :: +0x08A1 0x07FA ADDWF R10, 1 +;__Lib_Math.c,890 :: +0x08A2 0x0877 MOVF R7, 0 +;__Lib_Math.c,891 :: +0x08A3 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,892 :: +0x08A4 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,893 :: +0x08A5 0x07FB ADDWF R11, 1 +;__Lib_Math.c,895 :: +SOK22L16: +;__Lib_Math.c,896 :: +0x08A6 0x0DF1 RLF R1, 1 +;__Lib_Math.c,898 :: +0x08A7 0x3007 MOVLW 7 +;__Lib_Math.c,899 :: +0x08A8 0x00FC MOVWF R12 +;__Lib_Math.c,901 :: +LOOPS3232C: +;__Lib_Math.c,902 :: +0x08A9 0x0D71 RLF R1, 0 +;__Lib_Math.c,903 :: +0x08AA 0x0DF8 RLF R8, 1 +;__Lib_Math.c,904 :: +0x08AB 0x0DF9 RLF R9, 1 +;__Lib_Math.c,905 :: +0x08AC 0x0DFA RLF R10, 1 +;__Lib_Math.c,906 :: +0x08AD 0x0DFB RLF R11, 1 +;__Lib_Math.c,907 :: +0x08AE 0x0874 MOVF R4, 0 +;__Lib_Math.c,908 :: +0x08AF 0x1C71 BTFSS R1, 0 +;__Lib_Math.c,909 :: +0x08B0 0x28BF GOTO SADD22LC +;__Lib_Math.c,911 :: +0x08B1 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,912 :: +0x08B2 0x0875 MOVF R5, 0 +;__Lib_Math.c,913 :: +0x08B3 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,914 :: +0x08B4 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,915 :: +0x08B5 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,916 :: +0x08B6 0x0876 MOVF R6, 0 +;__Lib_Math.c,917 :: +0x08B7 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,918 :: +0x08B8 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,919 :: +0x08B9 0x02FA SUBWF R10, 1 +;__Lib_Math.c,920 :: +0x08BA 0x0877 MOVF R7, 0 +;__Lib_Math.c,921 :: +0x08BB 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,922 :: +0x08BC 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,923 :: +0x08BD 0x02FB SUBWF R11, 1 +;__Lib_Math.c,924 :: +0x08BE 0x28CC GOTO SOK22LC +;__Lib_Math.c,926 :: +SADD22LC: +;__Lib_Math.c,927 :: +0x08BF 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,928 :: +0x08C0 0x0875 MOVF R5, 0 +;__Lib_Math.c,929 :: +0x08C1 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,930 :: +0x08C2 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,931 :: +0x08C3 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,932 :: +0x08C4 0x0876 MOVF R6, 0 +;__Lib_Math.c,933 :: +0x08C5 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,934 :: +0x08C6 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,935 :: +0x08C7 0x07FA ADDWF R10, 1 +;__Lib_Math.c,936 :: +0x08C8 0x0877 MOVF R7, 0 +;__Lib_Math.c,937 :: +0x08C9 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,938 :: +0x08CA 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,939 :: +0x08CB 0x07FB ADDWF R11, 1 +;__Lib_Math.c,941 :: +SOK22LC: +;__Lib_Math.c,942 :: +0x08CC 0x0DF1 RLF R1, 1 +;__Lib_Math.c,944 :: +0x08CD 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,945 :: +0x08CE 0x28A9 GOTO LOOPS3232C +;__Lib_Math.c,947 :: +0x08CF 0x0D70 RLF R0, 0 +;__Lib_Math.c,948 :: +0x08D0 0x0DF8 RLF R8, 1 +;__Lib_Math.c,949 :: +0x08D1 0x0DF9 RLF R9, 1 +;__Lib_Math.c,950 :: +0x08D2 0x0DFA RLF R10, 1 +;__Lib_Math.c,951 :: +0x08D3 0x0DFB RLF R11, 1 +;__Lib_Math.c,952 :: +0x08D4 0x0874 MOVF R4, 0 +;__Lib_Math.c,953 :: +0x08D5 0x1C71 BTFSS R1, 0 +;__Lib_Math.c,954 :: +0x08D6 0x28E5 GOTO SADD22L24 +;__Lib_Math.c,956 :: +0x08D7 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,957 :: +0x08D8 0x0875 MOVF R5, 0 +;__Lib_Math.c,958 :: +0x08D9 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,959 :: +0x08DA 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,960 :: +0x08DB 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,961 :: +0x08DC 0x0876 MOVF R6, 0 +;__Lib_Math.c,962 :: +0x08DD 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,963 :: +0x08DE 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,964 :: +0x08DF 0x02FA SUBWF R10, 1 +;__Lib_Math.c,965 :: +0x08E0 0x0877 MOVF R7, 0 +;__Lib_Math.c,966 :: +0x08E1 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,967 :: +0x08E2 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,968 :: +0x08E3 0x02FB SUBWF R11, 1 +;__Lib_Math.c,969 :: +0x08E4 0x28F2 GOTO SOK22L24 +;__Lib_Math.c,971 :: +SADD22L24: +;__Lib_Math.c,972 :: +0x08E5 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,973 :: +0x08E6 0x0875 MOVF R5, 0 +;__Lib_Math.c,974 :: +0x08E7 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,975 :: +0x08E8 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,976 :: +0x08E9 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,977 :: +0x08EA 0x0876 MOVF R6, 0 +;__Lib_Math.c,978 :: +0x08EB 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,979 :: +0x08EC 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,980 :: +0x08ED 0x07FA ADDWF R10, 1 +;__Lib_Math.c,981 :: +0x08EE 0x0877 MOVF R7, 0 +;__Lib_Math.c,982 :: +0x08EF 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,983 :: +0x08F0 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,984 :: +0x08F1 0x07FB ADDWF R11, 1 +;__Lib_Math.c,986 :: +SOK22L24: +;__Lib_Math.c,987 :: +0x08F2 0x0DF0 RLF R0, 1 +;__Lib_Math.c,989 :: +0x08F3 0x3007 MOVLW 7 +;__Lib_Math.c,990 :: +0x08F4 0x00FC MOVWF R12 +;__Lib_Math.c,992 :: +LOOPS3232D: +;__Lib_Math.c,993 :: +0x08F5 0x0D70 RLF R0, 0 +;__Lib_Math.c,994 :: +0x08F6 0x0DF8 RLF R8, 1 +;__Lib_Math.c,995 :: +0x08F7 0x0DF9 RLF R9, 1 +;__Lib_Math.c,996 :: +0x08F8 0x0DFA RLF R10, 1 +;__Lib_Math.c,997 :: +0x08F9 0x0DFB RLF R11, 1 +;__Lib_Math.c,998 :: +0x08FA 0x0874 MOVF R4, 0 +;__Lib_Math.c,999 :: +0x08FB 0x1C70 BTFSS R0, 0 +;__Lib_Math.c,1000 :: +0x08FC 0x290B GOTO SADD22LD +;__Lib_Math.c,1002 :: +0x08FD 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,1003 :: +0x08FE 0x0875 MOVF R5, 0 +;__Lib_Math.c,1004 :: +0x08FF 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,1005 :: +0x0900 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,1006 :: +0x0901 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,1007 :: +0x0902 0x0876 MOVF R6, 0 +;__Lib_Math.c,1008 :: +0x0903 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,1009 :: +0x0904 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,1010 :: +0x0905 0x02FA SUBWF R10, 1 +;__Lib_Math.c,1011 :: +0x0906 0x0877 MOVF R7, 0 +;__Lib_Math.c,1012 :: +0x0907 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,1013 :: +0x0908 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,1014 :: +0x0909 0x02FB SUBWF R11, 1 +;__Lib_Math.c,1015 :: +0x090A 0x2918 GOTO SOK22LD +;__Lib_Math.c,1017 :: +SADD22LD: +;__Lib_Math.c,1018 :: +0x090B 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,1019 :: +0x090C 0x0875 MOVF R5, 0 +;__Lib_Math.c,1020 :: +0x090D 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1021 :: +0x090E 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,1022 :: +0x090F 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,1023 :: +0x0910 0x0876 MOVF R6, 0 +;__Lib_Math.c,1024 :: +0x0911 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1025 :: +0x0912 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,1026 :: +0x0913 0x07FA ADDWF R10, 1 +;__Lib_Math.c,1027 :: +0x0914 0x0877 MOVF R7, 0 +;__Lib_Math.c,1028 :: +0x0915 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1030 :: +0x0916 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,1031 :: +0x0917 0x07FB ADDWF R11, 1 +;__Lib_Math.c,1033 :: +SOK22LD: +;__Lib_Math.c,1034 :: +0x0918 0x0DF0 RLF R0, 1 +;__Lib_Math.c,1036 :: +0x0919 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,1037 :: +0x091A 0x28F5 GOTO LOOPS3232D +;__Lib_Math.c,1039 :: +0x091B 0x1870 BTFSC R0, 0 +;__Lib_Math.c,1040 :: +0x091C 0x292B GOTO SOK22L +;__Lib_Math.c,1041 :: +0x091D 0x0874 MOVF R4, 0 +;__Lib_Math.c,1042 :: +0x091E 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,1043 :: +0x091F 0x0875 MOVF R5, 0 +;__Lib_Math.c,1044 :: +0x0920 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1045 :: +0x0921 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,1046 :: +0x0922 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,1047 :: +0x0923 0x0876 MOVF R6, 0 +;__Lib_Math.c,1048 :: +0x0924 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1049 :: +0x0925 0x0F76 INCFSZ R6, 0 +;__Lib_Math.c,1050 :: +0x0926 0x07FA ADDWF R10, 1 +;__Lib_Math.c,1051 :: +0x0927 0x0877 MOVF R7, 0 +;__Lib_Math.c,1052 :: +0x0928 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,1053 :: +0x0929 0x0F77 INCFSZ R7, 0 +;__Lib_Math.c,1054 :: +0x092A 0x07FB ADDWF R11, 1 +;__Lib_Math.c,1055 :: +SOK22L: +;__Lib_Math.c,1058 :: +L_end_SDIV3232L: +0x092B 0x0008 RETURN +; end of _SDIV3232L +_oled_init: +;oled_control.c,12 :: void oled_init (void) { // OLED init +;oled_control.c,14 :: for(cnt=0; cnt<10; cnt++){ +0x092C 0x0144 MOVLB 4 +0x092D 0x01A0 CLRF oled_init_cnt_L0 +L_oled_init0: +0x092E 0x300A MOVLW 10 +0x092F 0x0220 SUBWF oled_init_cnt_L0, 0 +0x0930 0x1803 BTFSC STATUS, 0 +0x0931 0x2955 GOTO L_oled_init1 +;oled_control.c,15 :: Soft_I2C_Start(); +0x0932 0x3180 MOVLP 0 +0x0933 0x2182 CALL _Soft_I2C_Start +0x0934 0x3188 MOVLP 8 +;oled_control.c,16 :: if(Soft_I2C_Write(oled_addr)==0) break; // device addres +0x0935 0x0141 MOVLB 1 +0x0936 0x0847 MOVF oled_control_oled_addr, 0 +0x0937 0x0144 MOVLB 4 +0x0938 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0939 0x3180 MOVLP 0 +0x093A 0x212A CALL _Soft_I2C_Write +0x093B 0x3188 MOVLP 8 +0x093C 0x0870 MOVF R0, 0 +0x093D 0x3A00 XORLW 0 +0x093E 0x1D03 BTFSS STATUS, 2 +0x093F 0x2941 GOTO L_oled_init3 +0x0940 0x2955 GOTO L_oled_init1 +L_oled_init3: +;oled_control.c,17 :: else Soft_I2C_Stop(); +0x0941 0x3180 MOVLP 0 +0x0942 0x21F4 CALL _Soft_I2C_Stop +0x0943 0x3188 MOVLP 8 +;oled_control.c,18 :: Delay_ms(300); +0x0944 0x300D MOVLW 13 +0x0945 0x00FB MOVWF R11 +0x0946 0x302D MOVLW 45 +0x0947 0x00FC MOVWF R12 +0x0948 0x30D7 MOVLW 215 +0x0949 0x00FD MOVWF R13 +L_oled_init5: +0x094A 0x0BFD DECFSZ R13, 1 +0x094B 0x294A GOTO L_oled_init5 +0x094C 0x0BFC DECFSZ R12, 1 +0x094D 0x294A GOTO L_oled_init5 +0x094E 0x0BFB DECFSZ R11, 1 +0x094F 0x294A GOTO L_oled_init5 +0x0950 0x0000 NOP +0x0951 0x0000 NOP +;oled_control.c,14 :: for(cnt=0; cnt<10; cnt++){ +0x0952 0x0144 MOVLB 4 +0x0953 0x0AA0 INCF oled_init_cnt_L0, 1 +;oled_control.c,19 :: } +0x0954 0x292E GOTO L_oled_init0 +L_oled_init1: +0x0955 0x0144 MOVLB 4 +;oled_control.c,20 :: Soft_I2C_Write(0); // 0 - continious mode, command; 64 - Co, data +0x0956 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x0957 0x3180 MOVLP 0 +0x0958 0x212A CALL _Soft_I2C_Write +0x0959 0x3188 MOVLP 8 +;oled_control.c,21 :: Soft_I2C_Write (0xAE); // display OFF +0x095A 0x30AE MOVLW 174 +0x095B 0x0144 MOVLB 4 +0x095C 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x095D 0x3180 MOVLP 0 +0x095E 0x212A CALL _Soft_I2C_Write +0x095F 0x3188 MOVLP 8 +;oled_control.c,23 :: Soft_I2C_Write (0xD5); // clock division +0x0960 0x30D5 MOVLW 213 +0x0961 0x0144 MOVLB 4 +0x0962 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0963 0x3180 MOVLP 0 +0x0964 0x212A CALL _Soft_I2C_Write +0x0965 0x3188 MOVLP 8 +;oled_control.c,24 :: Soft_I2C_Write (0x80); // ratio +0x0966 0x3080 MOVLW 128 +0x0967 0x0144 MOVLB 4 +0x0968 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0969 0x3180 MOVLP 0 +0x096A 0x212A CALL _Soft_I2C_Write +0x096B 0x3188 MOVLP 8 +;oled_control.c,26 :: Soft_I2C_Write (0xA8); // multiplexer +0x096C 0x30A8 MOVLW 168 +0x096D 0x0144 MOVLB 4 +0x096E 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x096F 0x3180 MOVLP 0 +0x0970 0x212A CALL _Soft_I2C_Write +0x0971 0x3188 MOVLP 8 +;oled_control.c,27 :: Soft_I2C_Write (63); // +0x0972 0x303F MOVLW 63 +0x0973 0x0144 MOVLB 4 +0x0974 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0975 0x3180 MOVLP 0 +0x0976 0x212A CALL _Soft_I2C_Write +0x0977 0x3188 MOVLP 8 +;oled_control.c,29 :: Soft_I2C_Write (0xD3); // offset +0x0978 0x30D3 MOVLW 211 +0x0979 0x0144 MOVLB 4 +0x097A 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x097B 0x3180 MOVLP 0 +0x097C 0x212A CALL _Soft_I2C_Write +0x097D 0x3188 MOVLP 8 +;oled_control.c,30 :: Soft_I2C_Write (shift_line); // 32 no offset for x64 ! +0x097E 0x0141 MOVLB 1 +0x097F 0x0849 MOVF oled_control_shift_line, 0 +0x0980 0x0144 MOVLB 4 +0x0981 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0982 0x3180 MOVLP 0 +0x0983 0x212A CALL _Soft_I2C_Write +0x0984 0x3188 MOVLP 8 +;oled_control.c,32 :: Soft_I2C_Write (0x40); // set line, line = 0 +0x0985 0x3040 MOVLW 64 +0x0986 0x0144 MOVLB 4 +0x0987 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0988 0x3180 MOVLP 0 +0x0989 0x212A CALL _Soft_I2C_Write +0x098A 0x3188 MOVLP 8 +;oled_control.c,34 :: Soft_I2C_Write (0x8D); // charge pump +0x098B 0x308D MOVLW 141 +0x098C 0x0144 MOVLB 4 +0x098D 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x098E 0x3180 MOVLP 0 +0x098F 0x212A CALL _Soft_I2C_Write +0x0990 0x3188 MOVLP 8 +;oled_control.c,35 :: Soft_I2C_Write (0x14); // 0x10 - external, 0x14 - internal +0x0991 0x3014 MOVLW 20 +0x0992 0x0144 MOVLB 4 +0x0993 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0994 0x3180 MOVLP 0 +0x0995 0x212A CALL _Soft_I2C_Write +0x0996 0x3188 MOVLP 8 +;oled_control.c,37 :: Soft_I2C_Write (0x81); // contrast +0x0997 0x3081 MOVLW 129 +0x0998 0x0144 MOVLB 4 +0x0999 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x099A 0x3180 MOVLP 0 +0x099B 0x212A CALL _Soft_I2C_Write +0x099C 0x3188 MOVLP 8 +;oled_control.c,38 :: Soft_I2C_Write (255); // 0-255 +0x099D 0x30FF MOVLW 255 +0x099E 0x0144 MOVLB 4 +0x099F 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09A0 0x3180 MOVLP 0 +0x09A1 0x212A CALL _Soft_I2C_Write +0x09A2 0x3188 MOVLP 8 +;oled_control.c,40 :: Soft_I2C_Write (0xD9); // pre-charge +0x09A3 0x30D9 MOVLW 217 +0x09A4 0x0144 MOVLB 4 +0x09A5 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09A6 0x3180 MOVLP 0 +0x09A7 0x212A CALL _Soft_I2C_Write +0x09A8 0x3188 MOVLP 8 +;oled_control.c,41 :: Soft_I2C_Write (0xF1); // 0x22 - external, 0xF1 - internal +0x09A9 0x30F1 MOVLW 241 +0x09AA 0x0144 MOVLB 4 +0x09AB 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09AC 0x3180 MOVLP 0 +0x09AD 0x212A CALL _Soft_I2C_Write +0x09AE 0x3188 MOVLP 8 +;oled_control.c,43 :: Soft_I2C_Write (0x20); // memory addressing mode +0x09AF 0x3020 MOVLW 32 +0x09B0 0x0144 MOVLB 4 +0x09B1 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09B2 0x3180 MOVLP 0 +0x09B3 0x212A CALL _Soft_I2C_Write +0x09B4 0x3188 MOVLP 8 +;oled_control.c,44 :: Soft_I2C_Write (0x02); // page addressing mode 02 +0x09B5 0x3002 MOVLW 2 +0x09B6 0x0144 MOVLB 4 +0x09B7 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09B8 0x3180 MOVLP 0 +0x09B9 0x212A CALL _Soft_I2C_Write +0x09BA 0x3188 MOVLP 8 +;oled_control.c,46 :: Soft_I2C_Write (0x21); // set column range +0x09BB 0x3021 MOVLW 33 +0x09BC 0x0144 MOVLB 4 +0x09BD 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09BE 0x3180 MOVLP 0 +0x09BF 0x212A CALL _Soft_I2C_Write +0x09C0 0x3188 MOVLP 8 +;oled_control.c,47 :: Soft_I2C_Write (0); // column start +0x09C1 0x0144 MOVLB 4 +0x09C2 0x01B4 CLRF FARG_Soft_I2C_Write_d +0x09C3 0x3180 MOVLP 0 +0x09C4 0x212A CALL _Soft_I2C_Write +0x09C5 0x3188 MOVLP 8 +;oled_control.c,48 :: Soft_I2C_Write (127); // column stop +0x09C6 0x307F MOVLW 127 +0x09C7 0x0144 MOVLB 4 +0x09C8 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09C9 0x3180 MOVLP 0 +0x09CA 0x212A CALL _Soft_I2C_Write +0x09CB 0x3188 MOVLP 8 +;oled_control.c,50 :: Soft_I2C_Write (0x2E); // stop scrolling +0x09CC 0x302E MOVLW 46 +0x09CD 0x0144 MOVLB 4 +0x09CE 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09CF 0x3180 MOVLP 0 +0x09D0 0x212A CALL _Soft_I2C_Write +0x09D1 0x3188 MOVLP 8 +;oled_control.c,52 :: if(inversion) { +0x09D2 0x0141 MOVLB 1 +0x09D3 0x084A MOVF oled_control_inversion, 0 +0x09D4 0x1903 BTFSC STATUS, 2 +0x09D5 0x29E3 GOTO L_oled_init6 +;oled_control.c,53 :: Soft_I2C_Write (0xA0); // segment re-map, A0 - normal, A1 - remapped +0x09D6 0x30A0 MOVLW 160 +0x09D7 0x0144 MOVLB 4 +0x09D8 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09D9 0x3180 MOVLP 0 +0x09DA 0x212A CALL _Soft_I2C_Write +0x09DB 0x3188 MOVLP 8 +;oled_control.c,54 :: Soft_I2C_Write (0xC0); // scan direction, C0 - normal, C8 - remapped +0x09DC 0x30C0 MOVLW 192 +0x09DD 0x0144 MOVLB 4 +0x09DE 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09DF 0x3180 MOVLP 0 +0x09E0 0x212A CALL _Soft_I2C_Write +0x09E1 0x3188 MOVLP 8 +;oled_control.c,55 :: } +0x09E2 0x29EF GOTO L_oled_init7 +L_oled_init6: +;oled_control.c,57 :: Soft_I2C_Write (0xA1); // segment re-map, A0 - normal, A1 - remapped +0x09E3 0x30A1 MOVLW 161 +0x09E4 0x0144 MOVLB 4 +0x09E5 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09E6 0x3180 MOVLP 0 +0x09E7 0x212A CALL _Soft_I2C_Write +0x09E8 0x3188 MOVLP 8 +;oled_control.c,58 :: Soft_I2C_Write (0xC8); // scan direction, C0 - normal, C8 - remapped +0x09E9 0x30C8 MOVLW 200 +0x09EA 0x0144 MOVLB 4 +0x09EB 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09EC 0x3180 MOVLP 0 +0x09ED 0x212A CALL _Soft_I2C_Write +0x09EE 0x3188 MOVLP 8 +;oled_control.c,59 :: } +L_oled_init7: +;oled_control.c,61 :: Soft_I2C_Write (0xDA); // COM pins configure +0x09EF 0x30DA MOVLW 218 +0x09F0 0x0144 MOVLB 4 +0x09F1 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09F2 0x3180 MOVLP 0 +0x09F3 0x212A CALL _Soft_I2C_Write +0x09F4 0x3188 MOVLP 8 +;oled_control.c,62 :: Soft_I2C_Write (0x02); // 02 for 32 12 for x64 +0x09F5 0x3002 MOVLW 2 +0x09F6 0x0144 MOVLB 4 +0x09F7 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09F8 0x3180 MOVLP 0 +0x09F9 0x212A CALL _Soft_I2C_Write +0x09FA 0x3188 MOVLP 8 +;oled_control.c,64 :: Soft_I2C_Write (0xDB); // V-COM detect +0x09FB 0x30DB MOVLW 219 +0x09FC 0x0144 MOVLB 4 +0x09FD 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x09FE 0x3180 MOVLP 0 +0x09FF 0x212A CALL _Soft_I2C_Write +0x0A00 0x3188 MOVLP 8 +;oled_control.c,65 :: Soft_I2C_Write (0x40); // +0x0A01 0x3040 MOVLW 64 +0x0A02 0x0144 MOVLB 4 +0x0A03 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0A04 0x3180 MOVLP 0 +0x0A05 0x212A CALL _Soft_I2C_Write +0x0A06 0x3188 MOVLP 8 +;oled_control.c,67 :: Soft_I2C_Write (0xA4); // display entire ON +0x0A07 0x30A4 MOVLW 164 +0x0A08 0x0144 MOVLB 4 +0x0A09 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0A0A 0x3180 MOVLP 0 +0x0A0B 0x212A CALL _Soft_I2C_Write +0x0A0C 0x3188 MOVLP 8 +;oled_control.c,69 :: Soft_I2C_Write (0xA6); // 0xA6 - normal, 0xA7 - inverse +0x0A0D 0x30A6 MOVLW 166 +0x0A0E 0x0144 MOVLB 4 +0x0A0F 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x0A10 0x3180 MOVLP 0 +0x0A11 0x212A CALL _Soft_I2C_Write +0x0A12 0x3188 MOVLP 8 +;oled_control.c,71 :: Soft_I2C_Stop (); +0x0A13 0x3180 MOVLP 0 +0x0A14 0x21F4 CALL _Soft_I2C_Stop +0x0A15 0x3188 MOVLP 8 +;oled_control.c,73 :: oled_clear(); +0x0A16 0x3180 MOVLP 0 +0x0A17 0x2449 CALL _oled_clear +0x0A18 0x3188 MOVLP 8 +;oled_control.c,74 :: send_command (0xAF); // display ON +0x0A19 0x30AF MOVLW 175 +0x0A1A 0x0144 MOVLB 4 +0x0A1B 0x00A3 MOVWF FARG_send_command_oled_command +0x0A1C 0x3180 MOVLP 0 +0x0A1D 0x242D CALL _send_command +0x0A1E 0x3188 MOVLP 8 +;oled_control.c,75 :: return; +;oled_control.c,76 :: } +L_end_oled_init: +0x0A1F 0x0008 RETURN +; end of _oled_init +_Div_32x32_S: +;__Lib_Math.c,1085 :: +;__Lib_Math.c,1096 :: +;__Lib_Math.c,1099 :: +0x0A20 0x0874 MOVF R4, 0 +0x0A21 0x3A00 XORLW 0 +0x0A22 0x1D03 BTFSS STATUS, 2 +0x0A23 0x2A39 GOTO L_Div_32x32_S6 +;__Lib_Math.c,1100 :: +0x0A24 0x0875 MOVF R5, 0 +0x0A25 0x3A00 XORLW 0 +0x0A26 0x1D03 BTFSS STATUS, 2 +0x0A27 0x2A39 GOTO L_Div_32x32_S7 +;__Lib_Math.c,1101 :: +0x0A28 0x0876 MOVF R6, 0 +0x0A29 0x3A00 XORLW 0 +0x0A2A 0x1D03 BTFSS STATUS, 2 +0x0A2B 0x2A39 GOTO L_Div_32x32_S8 +;__Lib_Math.c,1102 :: +0x0A2C 0x0877 MOVF R7, 0 +0x0A2D 0x3A00 XORLW 0 +0x0A2E 0x1D03 BTFSS STATUS, 2 +0x0A2F 0x2A39 GOTO L_Div_32x32_S9 +;__Lib_Math.c,1103 :: +0x0A30 0x30FF MOVLW 255 +0x0A31 0x00F0 MOVWF R0 +;__Lib_Math.c,1104 :: +0x0A32 0x30FF MOVLW 255 +0x0A33 0x00F1 MOVWF R1 +;__Lib_Math.c,1105 :: +0x0A34 0x30FF MOVLW 255 +0x0A35 0x00F2 MOVWF R2 +;__Lib_Math.c,1106 :: +0x0A36 0x307F MOVLW 127 +0x0A37 0x00F3 MOVWF R3 +;__Lib_Math.c,1107 :: +0x0A38 0x2AD3 GOTO L_end_Div_32x32_S +;__Lib_Math.c,1108 :: +L_Div_32x32_S9: +L_Div_32x32_S8: +L_Div_32x32_S7: +L_Div_32x32_S6: +;__Lib_Math.c,1111 :: +0x0A39 0x0140 MOVLB 0 +;__Lib_Math.c,1113 :: +0x0A3A 0x01FC CLRF R12 +;__Lib_Math.c,1114 :: +0x0A3B 0x1BF7 BTFSC R7, 7 +;__Lib_Math.c,1115 :: +0x0A3C 0x0AFC INCF R12, 1 +;__Lib_Math.c,1117 :: +0x0A3D 0x01FD CLRF R13 +;__Lib_Math.c,1118 :: +0x0A3E 0x01FB CLRF R11 +;__Lib_Math.c,1119 :: +0x0A3F 0x01FA CLRF R10 +;__Lib_Math.c,1120 :: +0x0A40 0x01F9 CLRF R9 +;__Lib_Math.c,1121 :: +0x0A41 0x01F8 CLRF R8 +;__Lib_Math.c,1122 :: +0x0A42 0x0873 MOVF R3, 0 +;__Lib_Math.c,1123 :: +0x0A43 0x0472 IORWF R2, 0 +;__Lib_Math.c,1124 :: +0x0A44 0x0471 IORWF R1, 0 +;__Lib_Math.c,1125 :: +0x0A45 0x0470 IORWF R0, 0 +;__Lib_Math.c,1126 :: +0x0A46 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1127 :: +0x0A47 0x2ACC GOTO END_ALL +;__Lib_Math.c,1129 :: +0x0A48 0x0873 MOVF R3, 0 +;__Lib_Math.c,1130 :: +0x0A49 0x0677 XORWF R7, 0 +;__Lib_Math.c,1131 :: +0x0A4A 0x00A0 MOVWF ___math_tempb +;__Lib_Math.c,1132 :: +0x0A4B 0x1BA0 BTFSC ___math_tempb, 7 +;__Lib_Math.c,1133 :: +0x0A4C 0x09FD COMF R13, 1 +;__Lib_Math.c,1137 :: +0x0A4D 0x1FF7 BTFSS R7, 7 +;__Lib_Math.c,1138 :: +0x0A4E 0x2A5A GOTO CA3232S +;__Lib_Math.c,1140 :: +0x0A4F 0x09F4 COMF R4, 1 +;__Lib_Math.c,1141 :: +0x0A50 0x09F5 COMF R5, 1 +;__Lib_Math.c,1142 :: +0x0A51 0x09F6 COMF R6, 1 +;__Lib_Math.c,1143 :: +0x0A52 0x09F7 COMF R7, 1 +;__Lib_Math.c,1144 :: +0x0A53 0x0AF4 INCF R4, 1 +;__Lib_Math.c,1145 :: +0x0A54 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1146 :: +0x0A55 0x0AF5 INCF R5, 1 +;__Lib_Math.c,1147 :: +0x0A56 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1148 :: +0x0A57 0x0AF6 INCF R6, 1 +;__Lib_Math.c,1149 :: +0x0A58 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1150 :: +0x0A59 0x0AF7 INCF R7, 1 +;__Lib_Math.c,1152 :: +CA3232S: +;__Lib_Math.c,1153 :: +0x0A5A 0x1FF3 BTFSS R3, 7 +;__Lib_Math.c,1154 :: +0x0A5B 0x2A67 GOTO C3232SX +;__Lib_Math.c,1156 :: +0x0A5C 0x09F0 COMF R0, 1 +;__Lib_Math.c,1157 :: +0x0A5D 0x09F1 COMF R1, 1 +;__Lib_Math.c,1158 :: +0x0A5E 0x09F2 COMF R2, 1 +;__Lib_Math.c,1159 :: +0x0A5F 0x09F3 COMF R3, 1 +;__Lib_Math.c,1160 :: +0x0A60 0x0AF0 INCF R0, 1 +;__Lib_Math.c,1161 :: +0x0A61 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1162 :: +0x0A62 0x0AF1 INCF R1, 1 +;__Lib_Math.c,1163 :: +0x0A63 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1164 :: +0x0A64 0x0AF2 INCF R2, 1 +;__Lib_Math.c,1165 :: +0x0A65 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1166 :: +0x0A66 0x0AF3 INCF R3, 1 +;__Lib_Math.c,1168 :: +C3232SX: +;__Lib_Math.c,1169 :: +0x0A67 0x0873 MOVF R3, 0 +;__Lib_Math.c,1170 :: +0x0A68 0x0477 IORWF R7, 0 +;__Lib_Math.c,1171 :: +0x0A69 0x00A0 MOVWF ___math_tempb +;__Lib_Math.c,1172 :: +0x0A6A 0x1BA0 BTFSC ___math_tempb, 7 +;__Lib_Math.c,1173 :: +0x0A6B 0x2A88 GOTO C3232SX1 +;__Lib_Math.c,1175 :: +C3232S: +;__Lib_Math.c,1178 :: +0x0A6C 0x2000 CALL _SDIV3232L +;__Lib_Math.c,1182 :: +0x0A6D 0x1BFC BTFSC R12, 7 +;__Lib_Math.c,1183 :: +0x0A6E 0x2AA5 GOTO C3232SX4 +;__Lib_Math.c,1185 :: +C3232SOK: +;__Lib_Math.c,1186 :: +0x0A6F 0x1FFD BTFSS R13, 7 +;__Lib_Math.c,1187 :: +0x0A70 0x2ACC GOTO END_ALL +;__Lib_Math.c,1189 :: +0x0A71 0x09F0 COMF R0, 1 +;__Lib_Math.c,1190 :: +0x0A72 0x09F1 COMF R1, 1 +;__Lib_Math.c,1191 :: +0x0A73 0x09F2 COMF R2, 1 +;__Lib_Math.c,1192 :: +0x0A74 0x09F3 COMF R3, 1 +;__Lib_Math.c,1193 :: +0x0A75 0x0AF0 INCF R0, 1 +;__Lib_Math.c,1194 :: +0x0A76 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1195 :: +0x0A77 0x0AF1 INCF R1, 1 +;__Lib_Math.c,1196 :: +0x0A78 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1197 :: +0x0A79 0x0AF2 INCF R2, 1 +;__Lib_Math.c,1198 :: +0x0A7A 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1199 :: +0x0A7B 0x0AF3 INCF R3, 1 +;__Lib_Math.c,1201 :: +0x0A7C 0x09F8 COMF R8, 1 +;__Lib_Math.c,1202 :: +0x0A7D 0x09F9 COMF R9, 1 +;__Lib_Math.c,1203 :: +0x0A7E 0x09FA COMF R10, 1 +;__Lib_Math.c,1204 :: +0x0A7F 0x09FB COMF R11, 1 +;__Lib_Math.c,1205 :: +0x0A80 0x0AF8 INCF R8, 1 +;__Lib_Math.c,1206 :: +0x0A81 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1207 :: +0x0A82 0x0AF9 INCF R9, 1 +;__Lib_Math.c,1208 :: +0x0A83 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1209 :: +0x0A84 0x0AFA INCF R10, 1 +;__Lib_Math.c,1210 :: +0x0A85 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1211 :: +0x0A86 0x0AFB INCF R11, 1 +;__Lib_Math.c,1213 :: +0x0A87 0x2ACC GOTO END_ALL +;__Lib_Math.c,1215 :: +C3232SX1: +;__Lib_Math.c,1216 :: +0x0A88 0x1FF7 BTFSS R7, 7 +;__Lib_Math.c,1217 :: +0x0A89 0x2A9F GOTO C3232SX3 +;__Lib_Math.c,1218 :: +0x0A8A 0x1BF3 BTFSC R3, 7 +;__Lib_Math.c,1219 :: +0x0A8B 0x2A99 GOTO C3232SX2 +;__Lib_Math.c,1220 :: +0x0A8C 0x0873 MOVF R3, 0 +;__Lib_Math.c,1221 :: +0x0A8D 0x00FB MOVWF R11 +;__Lib_Math.c,1222 :: +0x0A8E 0x0872 MOVF R2, 0 +;__Lib_Math.c,1223 :: +0x0A8F 0x00FA MOVWF R10 +;__Lib_Math.c,1224 :: +0x0A90 0x0871 MOVF R1, 0 +;__Lib_Math.c,1225 :: +0x0A91 0x00F9 MOVWF R9 +;__Lib_Math.c,1226 :: +0x0A92 0x0870 MOVF R0, 0 +;__Lib_Math.c,1227 :: +0x0A93 0x00F8 MOVWF R8 +;__Lib_Math.c,1228 :: +0x0A94 0x01F3 CLRF R3 +;__Lib_Math.c,1229 :: +0x0A95 0x01F2 CLRF R2 +;__Lib_Math.c,1230 :: +0x0A96 0x01F1 CLRF R1 +;__Lib_Math.c,1231 :: +0x0A97 0x01F0 CLRF R0 +;__Lib_Math.c,1232 :: +0x0A98 0x2A6F GOTO C3232SOK +;__Lib_Math.c,1233 :: +C3232SX2: +;__Lib_Math.c,1234 :: +0x0A99 0x01F3 CLRF R3 +;__Lib_Math.c,1235 :: +0x0A9A 0x01F2 CLRF R2 +;__Lib_Math.c,1236 :: +0x0A9B 0x01F1 CLRF R1 +;__Lib_Math.c,1237 :: +0x0A9C 0x01F0 CLRF R0 +;__Lib_Math.c,1238 :: +0x0A9D 0x0AF0 INCF R0, 1 +;__Lib_Math.c,1239 :: +0x0A9E 0x3400 RETLW 0 +;__Lib_Math.c,1241 :: +C3232SX3: +;__Lib_Math.c,1242 :: +0x0A9F 0x09F3 COMF R3, 1 +;__Lib_Math.c,1243 :: +0x0AA0 0x09F2 COMF R2, 1 +;__Lib_Math.c,1244 :: +0x0AA1 0x09F1 COMF R1, 1 +;__Lib_Math.c,1245 :: +0x0AA2 0x09F0 COMF R0, 1 +;__Lib_Math.c,1247 :: +0x0AA3 0x17FC BSF R12, 7 +;__Lib_Math.c,1249 :: +0x0AA4 0x2A6C GOTO C3232S +;__Lib_Math.c,1251 :: +C3232SX4: +;__Lib_Math.c,1252 :: +0x0AA5 0x0AF8 INCF R8, 1 +;__Lib_Math.c,1253 :: +0x0AA6 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1254 :: +0x0AA7 0x0AF9 INCF R9, 1 +;__Lib_Math.c,1255 :: +0x0AA8 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1256 :: +0x0AA9 0x0AFA INCF R10, 1 +;__Lib_Math.c,1257 :: +0x0AAA 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1258 :: +0x0AAB 0x0AFB INCF R11, 1 +;__Lib_Math.c,1259 :: +0x0AAC 0x0874 MOVF R4, 0 +;__Lib_Math.c,1260 :: +0x0AAD 0x0278 SUBWF R8, 0 +;__Lib_Math.c,1261 :: +0x0AAE 0x1D03 BTFSS STATUS, 2 +;__Lib_Math.c,1262 :: +0x0AAF 0x2A6F GOTO C3232SOK +;__Lib_Math.c,1263 :: +0x0AB0 0x0875 MOVF R5, 0 +;__Lib_Math.c,1264 :: +0x0AB1 0x0279 SUBWF R9, 0 +;__Lib_Math.c,1265 :: +0x0AB2 0x1D03 BTFSS STATUS, 2 +;__Lib_Math.c,1266 :: +0x0AB3 0x2A6F GOTO C3232SOK +;__Lib_Math.c,1267 :: +0x0AB4 0x0876 MOVF R6, 0 +;__Lib_Math.c,1268 :: +0x0AB5 0x027A SUBWF R10, 0 +;__Lib_Math.c,1269 :: +0x0AB6 0x1D03 BTFSS STATUS, 2 +;__Lib_Math.c,1270 :: +0x0AB7 0x2A6F GOTO C3232SOK +;__Lib_Math.c,1271 :: +0x0AB8 0x0877 MOVF R7, 0 +;__Lib_Math.c,1272 :: +0x0AB9 0x027B SUBWF R11, 0 +;__Lib_Math.c,1273 :: +0x0ABA 0x1D03 BTFSS STATUS, 2 +;__Lib_Math.c,1274 :: +0x0ABB 0x2A6F GOTO C3232SOK +;__Lib_Math.c,1275 :: +0x0ABC 0x01FB CLRF R11 +;__Lib_Math.c,1276 :: +0x0ABD 0x01FA CLRF R10 +;__Lib_Math.c,1277 :: +0x0ABE 0x01F9 CLRF R9 +;__Lib_Math.c,1278 :: +0x0ABF 0x01F8 CLRF R8 +;__Lib_Math.c,1279 :: +0x0AC0 0x0AF0 INCF R0, 1 +;__Lib_Math.c,1280 :: +0x0AC1 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1281 :: +0x0AC2 0x0AF1 INCF R1, 1 +;__Lib_Math.c,1282 :: +0x0AC3 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1283 :: +0x0AC4 0x0AF2 INCF R2, 1 +;__Lib_Math.c,1284 :: +0x0AC5 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,1285 :: +0x0AC6 0x0AF3 INCF R3, 1 +;__Lib_Math.c,1286 :: +0x0AC7 0x1FF3 BTFSS R3, 7 +;__Lib_Math.c,1287 :: +0x0AC8 0x2A6F GOTO C3232SOK +;__Lib_Math.c,1288 :: +0x0AC9 0x01A0 CLRF ___math_tempb +;__Lib_Math.c,1289 :: +0x0ACA 0x1620 BSF ___math_tempb, 4 +;__Lib_Math.c,1290 :: +0x0ACB 0x34FF RETLW 255 +;__Lib_Math.c,1291 :: +END_ALL: +;__Lib_Math.c,1292 :: +0x0ACC 0x01A0 CLRF ___math_tempb +;__Lib_Math.c,1293 :: +0x0ACD 0x1C7C BTFSS R12, 0 +;__Lib_Math.c,1294 :: +0x0ACE 0x2AD2 GOTO avoid_comfrem +;__Lib_Math.c,1296 :: +0x0ACF 0x3180 MOVLP 0 +0x0AD0 0x278D CALL _COMFREM +0x0AD1 0x3188 MOVLP 8 +;__Lib_Math.c,1298 :: +avoid_comfrem: +;__Lib_Math.c,1299 :: +0x0AD2 0x3E00 ADDLW 0 +;__Lib_Math.c,1301 :: +L_end_Div_32x32_S: +0x0AD3 0x0008 RETURN +; end of _Div_32x32_S +_oled_start: +;main.c,142 :: void oled_start(){ +;main.c,143 :: OLED_PWD = 1; +0x0AD4 0x0140 MOVLB 0 +0x0AD5 0x1616 BSF LATA4_bit, BitPos(LATA4_bit+0) +;main.c,145 :: Delay_ms(200); +0x0AD6 0x3009 MOVLW 9 +0x0AD7 0x00FB MOVWF R11 +0x0AD8 0x301E MOVLW 30 +0x0AD9 0x00FC MOVWF R12 +0x0ADA 0x30E4 MOVLW 228 +0x0ADB 0x00FD MOVWF R13 +L_oled_start36: +0x0ADC 0x0BFD DECFSZ R13, 1 +0x0ADD 0x2ADC GOTO L_oled_start36 +0x0ADE 0x0BFC DECFSZ R12, 1 +0x0ADF 0x2ADC GOTO L_oled_start36 +0x0AE0 0x0BFB DECFSZ R11, 1 +0x0AE1 0x2ADC GOTO L_oled_start36 +0x0AE2 0x0000 NOP +;main.c,146 :: Soft_I2C_init(); +0x0AE3 0x3180 MOVLP 0 +0x0AE4 0x26D0 CALL _Soft_I2C_Init +0x0AE5 0x3188 MOVLP 8 +;main.c,147 :: Delay_ms(10); +0x0AE6 0x3068 MOVLW 104 +0x0AE7 0x00FC MOVWF R12 +0x0AE8 0x30E4 MOVLW 228 +0x0AE9 0x00FD MOVWF R13 +L_oled_start37: +0x0AEA 0x0BFD DECFSZ R13, 1 +0x0AEB 0x2AEA GOTO L_oled_start37 +0x0AEC 0x0BFC DECFSZ R12, 1 +0x0AED 0x2AEA GOTO L_oled_start37 +0x0AEE 0x0000 NOP +;main.c,148 :: oled_init(); +0x0AEF 0x212C CALL _oled_init +;main.c,150 :: if(gre){ +0x0AF0 0x0143 MOVLB 3 +0x0AF1 0x1DA0 BTFSS _gre, BitPos(_gre+0) +0x0AF2 0x2AFB GOTO L_oled_start38 +;main.c,151 :: Greating(); +0x0AF3 0x3180 MOVLP 0 +0x0AF4 0x25AE CALL _Greating +0x0AF5 0x3188 MOVLP 8 +;main.c,152 :: gre = 0; +0x0AF6 0x0143 MOVLB 3 +0x0AF7 0x11A0 BCF _gre, BitPos(_gre+0) +;main.c,153 :: oled_clear(); +0x0AF8 0x3180 MOVLP 0 +0x0AF9 0x2449 CALL _oled_clear +0x0AFA 0x3188 MOVLP 8 +;main.c,154 :: } +L_oled_start38: +;main.c,155 :: oled_wr_str(0, 0, "PWR W", 9); +0x0AFB 0x0144 MOVLB 4 +0x0AFC 0x01A3 CLRF FARG_oled_wr_str_page +0x0AFD 0x01A4 CLRF FARG_oled_wr_str_col +0x0AFE 0x3060 MOVLW ?lstr1_main +0x0AFF 0x00A5 MOVWF FARG_oled_wr_str_str +0x0B00 0x3001 MOVLW hi_addr(?lstr1_main) +0x0B01 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x0B02 0x3009 MOVLW 9 +0x0B03 0x00A7 MOVWF FARG_oled_wr_str_leng +0x0B04 0x3180 MOVLP 0 +0x0B05 0x246D CALL _oled_wr_str +0x0B06 0x3188 MOVLP 8 +;main.c,156 :: oled_bat(); +0x0B07 0x3180 MOVLP 0 +0x0B08 0x25EC CALL _oled_bat +0x0B09 0x3188 MOVLP 8 +;main.c,157 :: oled_wr_str(2, 0, "SWR ", 9); +0x0B0A 0x3002 MOVLW 2 +0x0B0B 0x0144 MOVLB 4 +0x0B0C 0x00A3 MOVWF FARG_oled_wr_str_page +0x0B0D 0x01A4 CLRF FARG_oled_wr_str_col +0x0B0E 0x3056 MOVLW ?lstr2_main +0x0B0F 0x00A5 MOVWF FARG_oled_wr_str_str +0x0B10 0x3001 MOVLW hi_addr(?lstr2_main) +0x0B11 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x0B12 0x3009 MOVLW 9 +0x0B13 0x00A7 MOVWF FARG_oled_wr_str_leng +0x0B14 0x3180 MOVLP 0 +0x0B15 0x246D CALL _oled_wr_str +0x0B16 0x3188 MOVLP 8 +;main.c,158 :: oled_wr_str(0, 42, "=", 1); +0x0B17 0x0144 MOVLB 4 +0x0B18 0x01A3 CLRF FARG_oled_wr_str_page +0x0B19 0x302A MOVLW 42 +0x0B1A 0x00A4 MOVWF FARG_oled_wr_str_col +0x0B1B 0x3054 MOVLW ?lstr3_main +0x0B1C 0x00A5 MOVWF FARG_oled_wr_str_str +0x0B1D 0x3001 MOVLW hi_addr(?lstr3_main) +0x0B1E 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x0B1F 0x3001 MOVLW 1 +0x0B20 0x00A7 MOVWF FARG_oled_wr_str_leng +0x0B21 0x3180 MOVLP 0 +0x0B22 0x246D CALL _oled_wr_str +0x0B23 0x3188 MOVLP 8 +;main.c,159 :: oled_wr_str(2, 42, "=", 1); +0x0B24 0x3002 MOVLW 2 +0x0B25 0x0144 MOVLB 4 +0x0B26 0x00A3 MOVWF FARG_oled_wr_str_page +0x0B27 0x302A MOVLW 42 +0x0B28 0x00A4 MOVWF FARG_oled_wr_str_col +0x0B29 0x306A MOVLW ?lstr4_main +0x0B2A 0x00A5 MOVWF FARG_oled_wr_str_str +0x0B2B 0x3001 MOVLW hi_addr(?lstr4_main) +0x0B2C 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x0B2D 0x3001 MOVLW 1 +0x0B2E 0x00A7 MOVWF FARG_oled_wr_str_leng +0x0B2F 0x3180 MOVLP 0 +0x0B30 0x246D CALL _oled_wr_str +0x0B31 0x3188 MOVLP 8 +;main.c,160 :: Voltage_old = 9999; +0x0B32 0x300F MOVLW 15 +0x0B33 0x0142 MOVLB 2 +0x0B34 0x00C8 MOVWF _Voltage_old +0x0B35 0x3027 MOVLW 39 +0x0B36 0x00C9 MOVWF _Voltage_old+1 +;main.c,161 :: SWR_fixed_old = 100; +0x0B37 0x3064 MOVLW 100 +0x0B38 0x00CA MOVWF _SWR_fixed_old +0x0B39 0x3000 MOVLW 0 +0x0B3A 0x00CB MOVWF _SWR_fixed_old+1 +;main.c,162 :: PWR_fixed_old = 9999; +0x0B3B 0x300F MOVLW 15 +0x0B3C 0x00C6 MOVWF _PWR_fixed_old +0x0B3D 0x3027 MOVLW 39 +0x0B3E 0x00C7 MOVWF _PWR_fixed_old+1 +;main.c,163 :: SWR_ind = 0; +0x0B3F 0x01C0 CLRF _SWR_ind +0x0B40 0x01C1 CLRF _SWR_ind+1 +;main.c,164 :: draw_swr(SWR_ind); +0x0B41 0x0144 MOVLB 4 +0x0B42 0x01A0 CLRF FARG_draw_swr_s +0x0B43 0x01A1 CLRF FARG_draw_swr_s+1 +0x0B44 0x3180 MOVLP 0 +0x0B45 0x26D2 CALL _draw_swr +0x0B46 0x3188 MOVLP 8 +;main.c,165 :: volt_cnt = Tick + 1; +0x0B47 0x3001 MOVLW 1 +0x0B48 0x0142 MOVLB 2 +0x0B49 0x074C ADDWF _Tick, 0 +0x0B4A 0x00C2 MOVWF _volt_cnt +0x0B4B 0x3000 MOVLW 0 +0x0B4C 0x3D4D ADDWFC _Tick+1, 0 +0x0B4D 0x00C3 MOVWF _volt_cnt+1 +0x0B4E 0x3000 MOVLW 0 +0x0B4F 0x3D4E ADDWFC _Tick+2, 0 +0x0B50 0x00C4 MOVWF _volt_cnt+2 +0x0B51 0x3000 MOVLW 0 +0x0B52 0x3D4F ADDWFC _Tick+3, 0 +0x0B53 0x00C5 MOVWF _volt_cnt+3 +;main.c,166 :: watch_cnt = Tick; +0x0B54 0x084C MOVF _Tick, 0 +0x0B55 0x00D0 MOVWF _watch_cnt +0x0B56 0x084D MOVF _Tick+1, 0 +0x0B57 0x00D1 MOVWF _watch_cnt+1 +0x0B58 0x084E MOVF _Tick+2, 0 +0x0B59 0x00D2 MOVWF _watch_cnt+2 +0x0B5A 0x084F MOVF _Tick+3, 0 +0x0B5B 0x00D3 MOVWF _watch_cnt+3 +;main.c,167 :: B_short = 0; B_long = 0; B_xlong = 0; +0x0B5C 0x0143 MOVLB 3 +0x0B5D 0x1320 BCF _B_short, BitPos(_B_short+0) +0x0B5E 0x12A0 BCF _B_long, BitPos(_B_long+0) +0x0B5F 0x1220 BCF _B_xlong, BitPos(_B_xlong+0) +;main.c,168 :: disp_cnt = Tick + Disp_time*1000; +0x0B60 0x0140 MOVLB 0 +0x0B61 0x0853 MOVF _Disp_time, 0 +0x0B62 0x00F0 MOVWF R0 +0x0B63 0x0854 MOVF _Disp_time+1, 0 +0x0B64 0x00F1 MOVWF R1 +0x0B65 0x0855 MOVF _Disp_time+2, 0 +0x0B66 0x00F2 MOVWF R2 +0x0B67 0x0856 MOVF _Disp_time+3, 0 +0x0B68 0x00F3 MOVWF R3 +0x0B69 0x30E8 MOVLW 232 +0x0B6A 0x00F4 MOVWF R4 +0x0B6B 0x3003 MOVLW 3 +0x0B6C 0x00F5 MOVWF R5 +0x0B6D 0x01F6 CLRF R6 +0x0B6E 0x01F7 CLRF R7 +0x0B6F 0x3180 MOVLP 0 +0x0B70 0x21BE CALL _Mul_32x32_U +0x0B71 0x3188 MOVLP 8 +0x0B72 0x0870 MOVF R0, 0 +0x0B73 0x0142 MOVLB 2 +0x0B74 0x074C ADDWF _Tick, 0 +0x0B75 0x0143 MOVLB 3 +0x0B76 0x00BD MOVWF _disp_cnt +0x0B77 0x0871 MOVF R1, 0 +0x0B78 0x0142 MOVLB 2 +0x0B79 0x3D4D ADDWFC _Tick+1, 0 +0x0B7A 0x0143 MOVLB 3 +0x0B7B 0x00BE MOVWF _disp_cnt+1 +0x0B7C 0x0872 MOVF R2, 0 +0x0B7D 0x0142 MOVLB 2 +0x0B7E 0x3D4E ADDWFC _Tick+2, 0 +0x0B7F 0x0143 MOVLB 3 +0x0B80 0x00BF MOVWF _disp_cnt+2 +0x0B81 0x0873 MOVF R3, 0 +0x0B82 0x0142 MOVLB 2 +0x0B83 0x3D4F ADDWFC _Tick+3, 0 +0x0B84 0x0143 MOVLB 3 +0x0B85 0x00C0 MOVWF _disp_cnt+3 +;main.c,169 :: off_cnt = Tick + Off_time*1000; +0x0B86 0x0140 MOVLB 0 +0x0B87 0x0857 MOVF _Off_time, 0 +0x0B88 0x00F0 MOVWF R0 +0x0B89 0x0858 MOVF _Off_time+1, 0 +0x0B8A 0x00F1 MOVWF R1 +0x0B8B 0x0859 MOVF _Off_time+2, 0 +0x0B8C 0x00F2 MOVWF R2 +0x0B8D 0x085A MOVF _Off_time+3, 0 +0x0B8E 0x00F3 MOVWF R3 +0x0B8F 0x30E8 MOVLW 232 +0x0B90 0x00F4 MOVWF R4 +0x0B91 0x3003 MOVLW 3 +0x0B92 0x00F5 MOVWF R5 +0x0B93 0x01F6 CLRF R6 +0x0B94 0x01F7 CLRF R7 +0x0B95 0x3180 MOVLP 0 +0x0B96 0x21BE CALL _Mul_32x32_U +0x0B97 0x3188 MOVLP 8 +0x0B98 0x0870 MOVF R0, 0 +0x0B99 0x0142 MOVLB 2 +0x0B9A 0x074C ADDWF _Tick, 0 +0x0B9B 0x00EC MOVWF _off_cnt +0x0B9C 0x0871 MOVF R1, 0 +0x0B9D 0x3D4D ADDWFC _Tick+1, 0 +0x0B9E 0x00ED MOVWF _off_cnt+1 +0x0B9F 0x0872 MOVF R2, 0 +0x0BA0 0x3D4E ADDWFC _Tick+2, 0 +0x0BA1 0x00EE MOVWF _off_cnt+2 +0x0BA2 0x0873 MOVF R3, 0 +0x0BA3 0x3D4F ADDWFC _Tick+3, 0 +0x0BA4 0x00EF MOVWF _off_cnt+3 +;main.c,170 :: return; +;main.c,171 :: } +L_end_oled_start: +0x0BA5 0x0008 RETURN +; end of _oled_start +_double2int: +;__Lib_MathDouble.c,1385 :: +;__Lib_MathDouble.c,1393 :: +0x0BA6 0x0140 MOVLB 0 +;__Lib_MathDouble.c,1395 :: +0x0BA7 0x01FB CLRF R11 +;__Lib_MathDouble.c,1396 :: +0x0BA8 0x0873 MOVF R3, 0 +;__Lib_MathDouble.c,1397 :: +0x0BA9 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,1398 :: +0x0BAA 0x2BE2 GOTO IRES016 +;__Lib_MathDouble.c,1400 :: +0x0BAB 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,1401 :: +0x0BAC 0x00FA MOVWF R10 +;__Lib_MathDouble.c,1402 :: +0x0BAD 0x17F2 BSF R2, 7 +;__Lib_MathDouble.c,1404 :: +0x0BAE 0x308E MOVLW 142 +;__Lib_MathDouble.c,1405 :: +0x0BAF 0x02F3 SUBWF R3, 1 +;__Lib_MathDouble.c,1406 :: +0x0BB0 0x1FF3 BTFSS R3, 7 +;__Lib_MathDouble.c,1407 :: +0x0BB1 0x2BE5 GOTO SETIOV16 +;__Lib_MathDouble.c,1408 :: +0x0BB2 0x09F3 COMF R3, 1 +;__Lib_MathDouble.c,1409 :: +0x0BB3 0x0AF3 INCF R3, 1 +;__Lib_MathDouble.c,1411 :: +0x0BB4 0x3008 MOVLW 8 +;__Lib_MathDouble.c,1412 :: +0x0BB5 0x0273 SUBWF R3, 0 +;__Lib_MathDouble.c,1413 :: +0x0BB6 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,1414 :: +0x0BB7 0x2BC8 GOTO TSHIFT3216 +;__Lib_MathDouble.c,1415 :: +0x0BB8 0x00F3 MOVWF R3 +;__Lib_MathDouble.c,1416 :: +0x0BB9 0x0DF1 RLF R1, 1 +;__Lib_MathDouble.c,1417 :: +0x0BBA 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,1418 :: +0x0BBB 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,1419 :: +0x0BBC 0x01F2 CLRF R2 +;__Lib_MathDouble.c,1421 :: +0x0BBD 0x3008 MOVLW 8 +;__Lib_MathDouble.c,1422 :: +0x0BBE 0x0273 SUBWF R3, 0 +;__Lib_MathDouble.c,1423 :: +0x0BBF 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,1424 :: +0x0BC0 0x2BC8 GOTO TSHIFT3216 +;__Lib_MathDouble.c,1425 :: +0x0BC1 0x00F3 MOVWF R3 +;__Lib_MathDouble.c,1426 :: +0x0BC2 0x0DF1 RLF R1, 1 +;__Lib_MathDouble.c,1427 :: +0x0BC3 0x01F1 CLRF R1 +;__Lib_MathDouble.c,1429 :: +0x0BC4 0x0873 MOVF R3, 0 +;__Lib_MathDouble.c,1430 :: +0x0BC5 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,1431 :: +0x0BC6 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,1432 :: +0x0BC7 0x2BD0 GOTO SHIFT3216OK +;__Lib_MathDouble.c,1433 :: +TSHIFT3216: +;__Lib_MathDouble.c,1434 :: +0x0BC8 0x0873 MOVF R3, 0 +;__Lib_MathDouble.c,1435 :: +0x0BC9 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,1436 :: +0x0BCA 0x2BD0 GOTO SHIFT3216OK +;__Lib_MathDouble.c,1437 :: +SHIFT3216: +;__Lib_MathDouble.c,1438 :: +0x0BCB 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,1439 :: +0x0BCC 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,1440 :: +0x0BCD 0x0CF1 RRF R1, 1 +;__Lib_MathDouble.c,1441 :: +0x0BCE 0x0BF3 DECFSZ R3, 1 +;__Lib_MathDouble.c,1442 :: +0x0BCF 0x2BCB GOTO SHIFT3216 +;__Lib_MathDouble.c,1443 :: +SHIFT3216OK: +;__Lib_MathDouble.c,1444 :: +0x0BD0 0x1B7B BTFSC R11, 6 +;__Lib_MathDouble.c,1445 :: +0x0BD1 0x1C71 BTFSS R1, 0 +;__Lib_MathDouble.c,1446 :: +0x0BD2 0x2BDA GOTO INT3216OK +;__Lib_MathDouble.c,1447 :: +0x0BD3 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,1448 :: +0x0BD4 0x2BDA GOTO INT3216OK +;__Lib_MathDouble.c,1449 :: +0x0BD5 0x0AF1 INCF R1, 1 +;__Lib_MathDouble.c,1450 :: +0x0BD6 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,1451 :: +0x0BD7 0x0AF2 INCF R2, 1 +;__Lib_MathDouble.c,1452 :: +0x0BD8 0x1BF2 BTFSC R2, 7 +;__Lib_MathDouble.c,1453 :: +0x0BD9 0x2BF1 GOTO JPJSETIOV3224 +;__Lib_MathDouble.c,1454 :: +INT3216OK: +;__Lib_MathDouble.c,1455 :: +0x0BDA 0x1FFA BTFSS R10, 7 +;__Lib_MathDouble.c,1456 :: +0x0BDB 0x2BF4 GOTO INT3216EOK +;__Lib_MathDouble.c,1458 :: +0x0BDC 0x09F2 COMF R2, 1 +;__Lib_MathDouble.c,1459 :: +0x0BDD 0x09F1 COMF R1, 1 +;__Lib_MathDouble.c,1460 :: +0x0BDE 0x0AF1 INCF R1, 1 +;__Lib_MathDouble.c,1461 :: +0x0BDF 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,1462 :: +0x0BE0 0x0AF2 INCF R2, 1 +;__Lib_MathDouble.c,1463 :: +0x0BE1 0x2BF4 GOTO INT3216EOK +;__Lib_MathDouble.c,1465 :: +IRES016: +;__Lib_MathDouble.c,1466 :: +0x0BE2 0x01F2 CLRF R2 +;__Lib_MathDouble.c,1467 :: +0x0BE3 0x01F1 CLRF R1 +;__Lib_MathDouble.c,1468 :: +0x0BE4 0x2BF4 GOTO INT3216EOK +;__Lib_MathDouble.c,1469 :: +SETIOV16: +;__Lib_MathDouble.c,1470 :: +0x0BE5 0x147B BSF R11, 0 +;__Lib_MathDouble.c,1471 :: +0x0BE6 0x1FFB BTFSS R11, 7 +;__Lib_MathDouble.c,1472 :: +0x0BE7 0x2BF7 GOTO INT3216EER +;__Lib_MathDouble.c,1474 :: +0x0BE8 0x01F2 CLRF R2 +;__Lib_MathDouble.c,1475 :: +0x0BE9 0x1FFA BTFSS R10, 7 +;__Lib_MathDouble.c,1476 :: +0x0BEA 0x2BF7 GOTO INT3216EER +;__Lib_MathDouble.c,1477 :: +0x0BEB 0x30FF MOVLW 255 +;__Lib_MathDouble.c,1478 :: +0x0BEC 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,1479 :: +0x0BED 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,1480 :: +0x0BEE 0x0DFA RLF R10, 1 +;__Lib_MathDouble.c,1481 :: +0x0BEF 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,1482 :: +0x0BF0 0x2BF7 GOTO INT3216EER +;__Lib_MathDouble.c,1484 :: +JPJSETIOV3224: +;__Lib_MathDouble.c,1485 :: +0x0BF1 0x3001 MOVLW 1 +;__Lib_MathDouble.c,1486 :: +0x0BF2 0x00FC MOVWF R12 +;__Lib_MathDouble.c,1487 :: +0x0BF3 0x2BF9 GOTO INT3216EEE +;__Lib_MathDouble.c,1488 :: +INT3216EOK: +;__Lib_MathDouble.c,1489 :: +0x0BF4 0x3000 MOVLW 0 +;__Lib_MathDouble.c,1490 :: +0x0BF5 0x00FC MOVWF R12 +;__Lib_MathDouble.c,1491 :: +0x0BF6 0x2BF9 GOTO INT3216EEE +;__Lib_MathDouble.c,1492 :: +INT3216EER: +;__Lib_MathDouble.c,1493 :: +0x0BF7 0x30FF MOVLW 255 +;__Lib_MathDouble.c,1494 :: +0x0BF8 0x00FC MOVWF R12 +;__Lib_MathDouble.c,1495 :: +INT3216EEE: +;__Lib_MathDouble.c,1498 :: +0x0BF9 0x08FC MOVF R12, 1 +;__Lib_MathDouble.c,1500 :: +0x0BFA 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,1501 :: +0x0BFB 0x2BFF GOTO L_Double2Int_0 +;__Lib_MathDouble.c,1503 :: +0x0BFC 0x3180 MOVLP 0 +0x0BFD 0x2780 CALL _SETIOV3224 +0x0BFE 0x3188 MOVLP 8 +;__Lib_MathDouble.c,1505 :: +L_Double2Int_0: +;__Lib_MathDouble.c,1506 :: +0x0BFF 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,1507 :: +0x0C00 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,1508 :: +0x0C01 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,1509 :: +0x0C02 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,1513 :: +L_end_double2int: +0x0C03 0x0008 RETURN +; end of _double2int +_Add_32x32_FP: +;__Lib_MathDouble.c,379 :: +;__Lib_MathDouble.c,390 :: +;__Lib_MathDouble.c,392 :: +0x0C04 0x0140 MOVLB 0 +;__Lib_MathDouble.c,393 :: +0x0C05 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,394 :: +0x0C06 0x0676 XORWF R6, 0 +;__Lib_MathDouble.c,395 :: +0x0C07 0x00A1 MOVWF __math_tempbD +;__Lib_MathDouble.c,397 :: +0x0C08 0x01F8 CLRF R8 +;__Lib_MathDouble.c,398 :: +0x0C09 0x01F9 CLRF R9 +;__Lib_MathDouble.c,400 :: +0x0C0A 0x0873 MOVF R3, 0 +;__Lib_MathDouble.c,401 :: +0x0C0B 0x0277 SUBWF R7, 0 +;__Lib_MathDouble.c,402 :: +0x0C0C 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,403 :: +0x0C0D 0x2C26 GOTO USEA32 +;__Lib_MathDouble.c,405 :: +0x0C0E 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,406 :: +0x0C0F 0x00FD MOVWF R13 +;__Lib_MathDouble.c,407 :: +0x0C10 0x0873 MOVF R3, 0 +;__Lib_MathDouble.c,408 :: +0x0C11 0x00F7 MOVWF R7 +;__Lib_MathDouble.c,409 :: +0x0C12 0x087D MOVF R13, 0 +;__Lib_MathDouble.c,410 :: +0x0C13 0x00F3 MOVWF R3 +;__Lib_MathDouble.c,412 :: +0x0C14 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,413 :: +0x0C15 0x00FD MOVWF R13 +;__Lib_MathDouble.c,414 :: +0x0C16 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,415 :: +0x0C17 0x00F6 MOVWF R6 +;__Lib_MathDouble.c,416 :: +0x0C18 0x087D MOVF R13, 0 +;__Lib_MathDouble.c,417 :: +0x0C19 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,419 :: +0x0C1A 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,420 :: +0x0C1B 0x00FD MOVWF R13 +;__Lib_MathDouble.c,421 :: +0x0C1C 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,422 :: +0x0C1D 0x00F5 MOVWF R5 +;__Lib_MathDouble.c,423 :: +0x0C1E 0x087D MOVF R13, 0 +;__Lib_MathDouble.c,424 :: +0x0C1F 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,426 :: +0x0C20 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,427 :: +0x0C21 0x00FD MOVWF R13 +;__Lib_MathDouble.c,428 :: +0x0C22 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,429 :: +0x0C23 0x00F4 MOVWF R4 +;__Lib_MathDouble.c,430 :: +0x0C24 0x087D MOVF R13, 0 +;__Lib_MathDouble.c,431 :: +0x0C25 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,432 :: +USEA32: +;__Lib_MathDouble.c,433 :: +0x0C26 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,434 :: +0x0C27 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,435 :: +0x0C28 0x2CA7 GOTO JMPEEE +;__Lib_MathDouble.c,436 :: +0x0C29 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,437 :: +0x0C2A 0x00FA MOVWF R10 +;__Lib_MathDouble.c,438 :: +0x0C2B 0x17F2 BSF R2, 7 +;__Lib_MathDouble.c,439 :: +0x0C2C 0x17F6 BSF R6, 7 +;__Lib_MathDouble.c,440 :: +0x0C2D 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,441 :: +0x0C2E 0x0273 SUBWF R3, 0 +;__Lib_MathDouble.c,442 :: +0x0C2F 0x00F7 MOVWF R7 +;__Lib_MathDouble.c,443 :: +0x0C30 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,444 :: +0x0C31 0x2C59 GOTO ALIGNED32 +;__Lib_MathDouble.c,445 :: +0x0C32 0x3008 MOVLW 8 +;__Lib_MathDouble.c,446 :: +0x0C33 0x0277 SUBWF R7, 0 +;__Lib_MathDouble.c,447 :: +0x0C34 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,448 :: +0x0C35 0x2C4F GOTO ALIGNB32 +;__Lib_MathDouble.c,449 :: +0x0C36 0x00F7 MOVWF R7 +;__Lib_MathDouble.c,450 :: +0x0C37 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,451 :: +0x0C38 0x00F9 MOVWF R9 +;__Lib_MathDouble.c,452 :: +0x0C39 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,453 :: +0x0C3A 0x00F4 MOVWF R4 +;__Lib_MathDouble.c,454 :: +0x0C3B 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,455 :: +0x0C3C 0x00F5 MOVWF R5 +;__Lib_MathDouble.c,456 :: +0x0C3D 0x01F6 CLRF R6 +;__Lib_MathDouble.c,457 :: +0x0C3E 0x3008 MOVLW 8 +;__Lib_MathDouble.c,458 :: +0x0C3F 0x0277 SUBWF R7, 0 +;__Lib_MathDouble.c,459 :: +0x0C40 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,460 :: +0x0C41 0x2C4F GOTO ALIGNB32 +;__Lib_MathDouble.c,461 :: +0x0C42 0x00F7 MOVWF R7 +;__Lib_MathDouble.c,462 :: +0x0C43 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,463 :: +0x0C44 0x00F9 MOVWF R9 +;__Lib_MathDouble.c,464 :: +0x0C45 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,465 :: +0x0C46 0x00F4 MOVWF R4 +;__Lib_MathDouble.c,466 :: +0x0C47 0x01F5 CLRF R5 +;__Lib_MathDouble.c,467 :: +0x0C48 0x3008 MOVLW 8 +;__Lib_MathDouble.c,468 :: +0x0C49 0x0277 SUBWF R7, 0 +;__Lib_MathDouble.c,469 :: +0x0C4A 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,470 :: +0x0C4B 0x2C4F GOTO ALIGNB32 +;__Lib_MathDouble.c,471 :: +0x0C4C 0x087A MOVF R10, 0 +;__Lib_MathDouble.c,472 :: +0x0C4D 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,473 :: +0x0C4E 0x2CA7 GOTO JMPEEE +;__Lib_MathDouble.c,474 :: +ALIGNB32: +;__Lib_MathDouble.c,475 :: +0x0C4F 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,476 :: +0x0C50 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,477 :: +0x0C51 0x2C59 GOTO ALIGNED32 +;__Lib_MathDouble.c,478 :: +ALOOPB32: +;__Lib_MathDouble.c,479 :: +0x0C52 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,480 :: +0x0C53 0x0CF6 RRF R6, 1 +;__Lib_MathDouble.c,481 :: +0x0C54 0x0CF5 RRF R5, 1 +;__Lib_MathDouble.c,482 :: +0x0C55 0x0CF4 RRF R4, 1 +;__Lib_MathDouble.c,483 :: +0x0C56 0x0CF9 RRF R9, 1 +;__Lib_MathDouble.c,484 :: +0x0C57 0x0BF7 DECFSZ R7, 1 +;__Lib_MathDouble.c,485 :: +0x0C58 0x2C52 GOTO ALOOPB32 +;__Lib_MathDouble.c,486 :: +ALIGNED32: +;__Lib_MathDouble.c,487 :: +0x0C59 0x1FA1 BTFSS __math_tempbD, 7 +;__Lib_MathDouble.c,488 :: +0x0C5A 0x2C66 GOTO AOK32 +;__Lib_MathDouble.c,489 :: +0x0C5B 0x09F9 COMF R9, 1 +;__Lib_MathDouble.c,490 :: +0x0C5C 0x09F4 COMF R4, 1 +;__Lib_MathDouble.c,491 :: +0x0C5D 0x09F5 COMF R5, 1 +;__Lib_MathDouble.c,492 :: +0x0C5E 0x09F6 COMF R6, 1 +;__Lib_MathDouble.c,493 :: +0x0C5F 0x0AF9 INCF R9, 1 +;__Lib_MathDouble.c,494 :: +0x0C60 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,495 :: +0x0C61 0x0AF4 INCF R4, 1 +;__Lib_MathDouble.c,496 :: +0x0C62 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,497 :: +0x0C63 0x0AF5 INCF R5, 1 +;__Lib_MathDouble.c,498 :: +0x0C64 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,499 :: +0x0C65 0x0AF6 INCF R6, 1 +;__Lib_MathDouble.c,500 :: +AOK32: +;__Lib_MathDouble.c,501 :: +0x0C66 0x0879 MOVF R9, 0 +;__Lib_MathDouble.c,502 :: +0x0C67 0x07F8 ADDWF R8, 1 +;__Lib_MathDouble.c,503 :: +0x0C68 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,504 :: +0x0C69 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,505 :: +0x0C6A 0x0F74 INCFSZ R4, 0 +;__Lib_MathDouble.c,506 :: +0x0C6B 0x07F0 ADDWF R0, 1 +;__Lib_MathDouble.c,507 :: +0x0C6C 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,508 :: +0x0C6D 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,509 :: +0x0C6E 0x0F75 INCFSZ R5, 0 +;__Lib_MathDouble.c,510 :: +0x0C6F 0x07F1 ADDWF R1, 1 +;__Lib_MathDouble.c,511 :: +0x0C70 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,512 :: +0x0C71 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,513 :: +0x0C72 0x0F76 INCFSZ R6, 0 +;__Lib_MathDouble.c,514 :: +0x0C73 0x07F2 ADDWF R2, 1 +;__Lib_MathDouble.c,515 :: +0x0C74 0x1BA1 BTFSC __math_tempbD, 7 +;__Lib_MathDouble.c,516 :: +0x0C75 0x2C7F GOTO ACOMP32 +;__Lib_MathDouble.c,517 :: +0x0C76 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,518 :: +0x0C77 0x2C8F GOTO JMPNRMRND4032 +;__Lib_MathDouble.c,519 :: +0x0C78 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,520 :: +0x0C79 0x0CF1 RRF R1, 1 +;__Lib_MathDouble.c,521 :: +0x0C7A 0x0CF0 RRF R0, 1 +;__Lib_MathDouble.c,522 :: +0x0C7B 0x0CF8 RRF R8, 1 +;__Lib_MathDouble.c,523 :: +0x0C7C 0x0FF3 INCFSZ R3, 1 +;__Lib_MathDouble.c,524 :: +0x0C7D 0x2C8F GOTO JMPNRMRND4032 +;__Lib_MathDouble.c,525 :: +0x0C7E 0x2CA1 GOTO ADD_JMPSETFOV32 +;__Lib_MathDouble.c,526 :: +ACOMP32: +;__Lib_MathDouble.c,527 :: +0x0C7F 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,528 :: +0x0C80 0x2C95 GOTO JMPNRM4032 +;__Lib_MathDouble.c,529 :: +0x0C81 0x09F8 COMF R8, 1 +;__Lib_MathDouble.c,530 :: +0x0C82 0x09F0 COMF R0, 1 +;__Lib_MathDouble.c,531 :: +0x0C83 0x09F1 COMF R1, 1 +;__Lib_MathDouble.c,532 :: +0x0C84 0x09F2 COMF R2, 1 +;__Lib_MathDouble.c,533 :: +0x0C85 0x0AF8 INCF R8, 1 +;__Lib_MathDouble.c,534 :: +0x0C86 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,535 :: +0x0C87 0x0AF0 INCF R0, 1 +;__Lib_MathDouble.c,536 :: +0x0C88 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,537 :: +0x0C89 0x0AF1 INCF R1, 1 +;__Lib_MathDouble.c,538 :: +0x0C8A 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,539 :: +0x0C8B 0x0AF2 INCF R2, 1 +;__Lib_MathDouble.c,540 :: +0x0C8C 0x3080 MOVLW 128 +;__Lib_MathDouble.c,541 :: +0x0C8D 0x06FA XORWF R10, 1 +;__Lib_MathDouble.c,542 :: +0x0C8E 0x2C9B GOTO JMPNRM32 +;__Lib_MathDouble.c,543 :: +JMPNRMRND4032: +;__Lib_MathDouble.c,544 :: +0x0C8F 0x3001 MOVLW 1 +;__Lib_MathDouble.c,545 :: +0x0C90 0x00FC MOVWF R12 +;__Lib_MathDouble.c,547 :: +0x0C91 0x3180 MOVLP 0 +0x0C92 0x2726 CALL _NRM4032 +0x0C93 0x3188 MOVLP 8 +;__Lib_MathDouble.c,549 :: +0x0C94 0x2CA9 GOTO ADD32EEE +;__Lib_MathDouble.c,550 :: +JMPNRM4032: +;__Lib_MathDouble.c,551 :: +0x0C95 0x3002 MOVLW 2 +;__Lib_MathDouble.c,552 :: +0x0C96 0x00FC MOVWF R12 +;__Lib_MathDouble.c,554 :: +0x0C97 0x3180 MOVLP 0 +0x0C98 0x2726 CALL _NRM4032 +0x0C99 0x3188 MOVLP 8 +;__Lib_MathDouble.c,556 :: +0x0C9A 0x2CA9 GOTO ADD32EEE +;__Lib_MathDouble.c,557 :: +JMPNRM32: +;__Lib_MathDouble.c,558 :: +0x0C9B 0x3004 MOVLW 4 +;__Lib_MathDouble.c,559 :: +0x0C9C 0x00FC MOVWF R12 +;__Lib_MathDouble.c,561 :: +0x0C9D 0x3180 MOVLP 0 +0x0C9E 0x2799 CALL _NRM3232 +0x0C9F 0x3188 MOVLP 8 +;__Lib_MathDouble.c,563 :: +0x0CA0 0x2CA9 GOTO ADD32EEE +;__Lib_MathDouble.c,564 :: +ADD_JMPSETFOV32: +;__Lib_MathDouble.c,565 :: +0x0CA1 0x3008 MOVLW 8 +;__Lib_MathDouble.c,566 :: +0x0CA2 0x00FC MOVWF R12 +;__Lib_MathDouble.c,568 :: +0x0CA3 0x3180 MOVLP 0 +0x0CA4 0x243D CALL _SETFOV32 +0x0CA5 0x3188 MOVLP 8 +;__Lib_MathDouble.c,570 :: +0x0CA6 0x2CA9 GOTO ADD32EEE +;__Lib_MathDouble.c,571 :: +JMPEEE: +;__Lib_MathDouble.c,572 :: +0x0CA7 0x3000 MOVLW 0 +;__Lib_MathDouble.c,573 :: +0x0CA8 0x00FC MOVWF R12 +;__Lib_MathDouble.c,574 :: +ADD32EEE: +;__Lib_MathDouble.c,575 :: +0x0CA9 0x0000 NOP +;__Lib_MathDouble.c,583 :: +L_end_Add_32x32_FP: +0x0CAA 0x0008 RETURN +; end of _Add_32x32_FP +_get_forward: +;main.c,550 :: int get_forward(void){ +;main.c,553 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); +0x0CAB 0x3043 MOVLW 67 +0x0CAC 0x0144 MOVLB 4 +0x0CAD 0x00A3 MOVWF FARG_ADC_Init_Advanced_reference +0x0CAE 0x3180 MOVLP 0 +0x0CAF 0x2297 CALL _ADC_Init_Advanced +0x0CB0 0x3188 MOVLP 8 +;main.c,554 :: Delay_us(100); +0x0CB1 0x3002 MOVLW 2 +0x0CB2 0x00FC MOVWF R12 +0x0CB3 0x3008 MOVLW 8 +0x0CB4 0x00FD MOVWF R13 +L_get_forward137: +0x0CB5 0x0BFD DECFSZ R13, 1 +0x0CB6 0x2CB5 GOTO L_get_forward137 +0x0CB7 0x0BFC DECFSZ R12, 1 +0x0CB8 0x2CB5 GOTO L_get_forward137 +0x0CB9 0x0000 NOP +;main.c,555 :: v = ADC_Get_Sample(FWD_input); +0x0CBA 0x3008 MOVLW 8 +0x0CBB 0x0144 MOVLB 4 +0x0CBC 0x00A3 MOVWF FARG_ADC_Get_Sample_channel +0x0CBD 0x3180 MOVLP 0 +0x0CBE 0x236C CALL _ADC_Get_Sample +0x0CBF 0x3188 MOVLP 8 +0x0CC0 0x0870 MOVF R0, 0 +0x0CC1 0x0143 MOVLB 3 +0x0CC2 0x00EE MOVWF get_forward_v_L0 +0x0CC3 0x0871 MOVF R1, 0 +0x0CC4 0x00EF MOVWF get_forward_v_L0+1 +;main.c,556 :: if(v==1023){ +0x0CC5 0x0871 MOVF R1, 0 +0x0CC6 0x3A03 XORLW 3 +0x0CC7 0x1D03 BTFSS STATUS, 2 +0x0CC8 0x2CCB GOTO L__get_forward346 +0x0CC9 0x30FF MOVLW 255 +0x0CCA 0x0670 XORWF R0, 0 +L__get_forward346: +0x0CCB 0x1D03 BTFSS STATUS, 2 +0x0CCC 0x2CE9 GOTO L_get_forward138 +;main.c,557 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); +0x0CCD 0x3083 MOVLW 131 +0x0CCE 0x0144 MOVLB 4 +0x0CCF 0x00A3 MOVWF FARG_ADC_Init_Advanced_reference +0x0CD0 0x3180 MOVLP 0 +0x0CD1 0x2297 CALL _ADC_Init_Advanced +0x0CD2 0x3188 MOVLP 8 +;main.c,558 :: Delay_us(100); +0x0CD3 0x3002 MOVLW 2 +0x0CD4 0x00FC MOVWF R12 +0x0CD5 0x3008 MOVLW 8 +0x0CD6 0x00FD MOVWF R13 +L_get_forward139: +0x0CD7 0x0BFD DECFSZ R13, 1 +0x0CD8 0x2CD7 GOTO L_get_forward139 +0x0CD9 0x0BFC DECFSZ R12, 1 +0x0CDA 0x2CD7 GOTO L_get_forward139 +0x0CDB 0x0000 NOP +;main.c,559 :: v = ADC_Get_Sample(FWD_input) * 2; +0x0CDC 0x3008 MOVLW 8 +0x0CDD 0x0144 MOVLB 4 +0x0CDE 0x00A3 MOVWF FARG_ADC_Get_Sample_channel +0x0CDF 0x3180 MOVLP 0 +0x0CE0 0x236C CALL _ADC_Get_Sample +0x0CE1 0x3188 MOVLP 8 +0x0CE2 0x0870 MOVF R0, 0 +0x0CE3 0x0143 MOVLB 3 +0x0CE4 0x00EE MOVWF get_forward_v_L0 +0x0CE5 0x0871 MOVF R1, 0 +0x0CE6 0x00EF MOVWF get_forward_v_L0+1 +0x0CE7 0x35EE LSLF get_forward_v_L0, 1 +0x0CE8 0x0DEF RLF get_forward_v_L0+1, 1 +;main.c,560 :: } +L_get_forward138: +;main.c,561 :: if(v==2046){ +0x0CE9 0x086F MOVF get_forward_v_L0+1, 0 +0x0CEA 0x3A07 XORLW 7 +0x0CEB 0x1D03 BTFSS STATUS, 2 +0x0CEC 0x2CEF GOTO L__get_forward347 +0x0CED 0x30FE MOVLW 254 +0x0CEE 0x066E XORWF get_forward_v_L0, 0 +L__get_forward347: +0x0CEF 0x1D03 BTFSS STATUS, 2 +0x0CF0 0x2D40 GOTO L_get_forward140 +;main.c,562 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); +0x0CF1 0x0144 MOVLB 4 +0x0CF2 0x01A3 CLRF FARG_ADC_Init_Advanced_reference +0x0CF3 0x3180 MOVLP 0 +0x0CF4 0x2297 CALL _ADC_Init_Advanced +0x0CF5 0x3188 MOVLP 8 +;main.c,563 :: Delay_us(100); +0x0CF6 0x3002 MOVLW 2 +0x0CF7 0x00FC MOVWF R12 +0x0CF8 0x3008 MOVLW 8 +0x0CF9 0x00FD MOVWF R13 +L_get_forward141: +0x0CFA 0x0BFD DECFSZ R13, 1 +0x0CFB 0x2CFA GOTO L_get_forward141 +0x0CFC 0x0BFC DECFSZ R12, 1 +0x0CFD 0x2CFA GOTO L_get_forward141 +0x0CFE 0x0000 NOP +;main.c,564 :: v = ADC_Get_Sample(FWD_input); +0x0CFF 0x3008 MOVLW 8 +0x0D00 0x0144 MOVLB 4 +0x0D01 0x00A3 MOVWF FARG_ADC_Get_Sample_channel +0x0D02 0x3180 MOVLP 0 +0x0D03 0x236C CALL _ADC_Get_Sample +0x0D04 0x3188 MOVLP 8 +0x0D05 0x0870 MOVF R0, 0 +0x0D06 0x0143 MOVLB 3 +0x0D07 0x00EE MOVWF get_forward_v_L0 +0x0D08 0x0871 MOVF R1, 0 +0x0D09 0x00EF MOVWF get_forward_v_L0+1 +;main.c,565 :: if(v==1023) Overflow = 1; +0x0D0A 0x0871 MOVF R1, 0 +0x0D0B 0x3A03 XORLW 3 +0x0D0C 0x1D03 BTFSS STATUS, 2 +0x0D0D 0x2D10 GOTO L__get_forward348 +0x0D0E 0x30FF MOVLW 255 +0x0D0F 0x0670 XORWF R0, 0 +L__get_forward348: +0x0D10 0x1D03 BTFSS STATUS, 2 +0x0D11 0x2D13 GOTO L_get_forward142 +0x0D12 0x1520 BSF _Overflow, BitPos(_Overflow+0) +L_get_forward142: +;main.c,566 :: get_batt(); +0x0D13 0x3180 MOVLP 0 +0x0D14 0x2707 CALL _get_batt +0x0D15 0x3188 MOVLP 8 +;main.c,567 :: d = (long)v * (long)Voltage; +0x0D16 0x086E MOVF get_forward_v_L0, 0 +0x0D17 0x00F4 MOVWF R4 +0x0D18 0x086F MOVF get_forward_v_L0+1, 0 +0x0D19 0x00F5 MOVWF R5 +0x0D1A 0x01F6 CLRF R6 +0x0D1B 0x01F7 CLRF R7 +0x0D1C 0x0829 MOVF _Voltage, 0 +0x0D1D 0x00F0 MOVWF R0 +0x0D1E 0x082A MOVF _Voltage+1, 0 +0x0D1F 0x00F1 MOVWF R1 +0x0D20 0x3000 MOVLW 0 +0x0D21 0x1BF1 BTFSC R1, 7 +0x0D22 0x30FF MOVLW 255 +0x0D23 0x00F2 MOVWF R2 +0x0D24 0x00F3 MOVWF R3 +0x0D25 0x3180 MOVLP 0 +0x0D26 0x21BE CALL _Mul_32x32_U +0x0D27 0x3188 MOVLP 8 +;main.c,568 :: d = d / 1024; +0x0D28 0x300A MOVLW 10 +0x0D29 0x00F8 MOVWF R8 +0x0D2A 0x0870 MOVF R0, 0 +0x0D2B 0x00F4 MOVWF R4 +0x0D2C 0x0871 MOVF R1, 0 +0x0D2D 0x00F5 MOVWF R5 +0x0D2E 0x0872 MOVF R2, 0 +0x0D2F 0x00F6 MOVWF R6 +0x0D30 0x0873 MOVF R3, 0 +0x0D31 0x00F7 MOVWF R7 +0x0D32 0x0878 MOVF R8, 0 +L__get_forward349: +0x0D33 0x1903 BTFSC STATUS, 2 +0x0D34 0x2D3B GOTO L__get_forward350 +0x0D35 0x36F7 LSRF R7, 1 +0x0D36 0x0CF6 RRF R6, 1 +0x0D37 0x0CF5 RRF R5, 1 +0x0D38 0x0CF4 RRF R4, 1 +0x0D39 0x3EFF ADDLW 255 +0x0D3A 0x2D33 GOTO L__get_forward349 +L__get_forward350: +;main.c,569 :: v = (int)d; +0x0D3B 0x0874 MOVF R4, 0 +0x0D3C 0x0143 MOVLB 3 +0x0D3D 0x00EE MOVWF get_forward_v_L0 +0x0D3E 0x0875 MOVF R5, 0 +0x0D3F 0x00EF MOVWF get_forward_v_L0+1 +;main.c,570 :: } +L_get_forward140: +;main.c,571 :: return v; +0x0D40 0x086E MOVF get_forward_v_L0, 0 +0x0D41 0x00F0 MOVWF R0 +0x0D42 0x086F MOVF get_forward_v_L0+1, 0 +0x0D43 0x00F1 MOVWF R1 +;main.c,572 :: } +L_end_get_forward: +0x0D44 0x0008 RETURN +; end of _get_forward +_Mul_32x32_FP: +;__Lib_MathDouble.c,608 :: +;__Lib_MathDouble.c,620 :: +;__Lib_MathDouble.c,622 :: +0x0D45 0x0140 MOVLB 0 +;__Lib_MathDouble.c,624 :: +0x0D46 0x01FB CLRF R11 +;__Lib_MathDouble.c,625 :: +0x0D47 0x0873 MOVF R3, 0 +;__Lib_MathDouble.c,626 :: +0x0D48 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,627 :: +0x0D49 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,628 :: +0x0D4A 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,629 :: +0x0D4B 0x2D9B GOTO JPMRES032 +;__Lib_MathDouble.c,631 :: +0x0D4C 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,632 :: +0x0D4D 0x0676 XORWF R6, 0 +;__Lib_MathDouble.c,633 :: +0x0D4E 0x00FA MOVWF R10 +;__Lib_MathDouble.c,634 :: +0x0D4F 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,635 :: +0x0D50 0x07F3 ADDWF R3, 1 +;__Lib_MathDouble.c,636 :: +0x0D51 0x307E MOVLW 126 +;__Lib_MathDouble.c,637 :: +0x0D52 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,638 :: +0x0D53 0x2D58 GOTO MTUN32 +;__Lib_MathDouble.c,639 :: +0x0D54 0x02F3 SUBWF R3, 1 +;__Lib_MathDouble.c,640 :: +0x0D55 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,641 :: +0x0D56 0x2DA0 GOTO JPMSETFOV32 +;__Lib_MathDouble.c,642 :: +0x0D57 0x2D5B GOTO MOK32 +;__Lib_MathDouble.c,643 :: +MTUN32: +;__Lib_MathDouble.c,644 :: +0x0D58 0x02F3 SUBWF R3, 1 +;__Lib_MathDouble.c,645 :: +0x0D59 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,646 :: +0x0D5A 0x2DA5 GOTO JPMSETFUN32 +;__Lib_MathDouble.c,647 :: +MOK32: +;__Lib_MathDouble.c,648 :: +0x0D5B 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,649 :: +0x0D5C 0x00F8 MOVWF R8 +;__Lib_MathDouble.c,650 :: +0x0D5D 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,651 :: +0x0D5E 0x00FC MOVWF R12 +;__Lib_MathDouble.c,652 :: +0x0D5F 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,653 :: +0x0D60 0x00FD MOVWF R13 +;__Lib_MathDouble.c,654 :: +0x0D61 0x17F8 BSF R8, 7 +;__Lib_MathDouble.c,655 :: +0x0D62 0x17F6 BSF R6, 7 +;__Lib_MathDouble.c,656 :: +0x0D63 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,657 :: +0x0D64 0x01F2 CLRF R2 +;__Lib_MathDouble.c,658 :: +0x0D65 0x01F1 CLRF R1 +;__Lib_MathDouble.c,659 :: +0x0D66 0x01F0 CLRF R0 +;__Lib_MathDouble.c,660 :: +0x0D67 0x3018 MOVLW 24 +;__Lib_MathDouble.c,661 :: +0x0D68 0x00A1 MOVWF __math_tempbD +;__Lib_MathDouble.c,662 :: +MLOOP32: +;__Lib_MathDouble.c,663 :: +0x0D69 0x1C7D BTFSS R13, 0 +;__Lib_MathDouble.c,664 :: +0x0D6A 0x2D75 GOTO MNOADD32 +;__Lib_MathDouble.c,666 :: +0x0D6B 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,667 :: +0x0D6C 0x07F0 ADDWF R0, 1 +;__Lib_MathDouble.c,668 :: +0x0D6D 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,669 :: +0x0D6E 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,670 :: +0x0D6F 0x0F75 INCFSZ R5, 0 +;__Lib_MathDouble.c,671 :: +0x0D70 0x07F1 ADDWF R1, 1 +;__Lib_MathDouble.c,672 :: +0x0D71 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,673 :: +0x0D72 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,674 :: +0x0D73 0x0F76 INCFSZ R6, 0 +;__Lib_MathDouble.c,675 :: +0x0D74 0x07F2 ADDWF R2, 1 +;__Lib_MathDouble.c,676 :: +MNOADD32: +;__Lib_MathDouble.c,677 :: +0x0D75 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,678 :: +0x0D76 0x0CF1 RRF R1, 1 +;__Lib_MathDouble.c,679 :: +0x0D77 0x0CF0 RRF R0, 1 +;__Lib_MathDouble.c,680 :: +0x0D78 0x0CF8 RRF R8, 1 +;__Lib_MathDouble.c,681 :: +0x0D79 0x0CFC RRF R12, 1 +;__Lib_MathDouble.c,682 :: +0x0D7A 0x0CFD RRF R13, 1 +;__Lib_MathDouble.c,683 :: +0x0D7B 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,684 :: +0x0D7C 0x0BA1 DECFSZ __math_tempbD, 1 +;__Lib_MathDouble.c,685 :: +0x0D7D 0x2D69 GOTO MLOOP32 +;__Lib_MathDouble.c,686 :: +0x0D7E 0x1BF2 BTFSC R2, 7 +;__Lib_MathDouble.c,687 :: +0x0D7F 0x2D85 GOTO MROUND32 +;__Lib_MathDouble.c,688 :: +0x0D80 0x0DF8 RLF R8, 1 +;__Lib_MathDouble.c,689 :: +0x0D81 0x0DF0 RLF R0, 1 +;__Lib_MathDouble.c,690 :: +0x0D82 0x0DF1 RLF R1, 1 +;__Lib_MathDouble.c,691 :: +0x0D83 0x0DF2 RLF R2, 1 +;__Lib_MathDouble.c,692 :: +0x0D84 0x03F3 DECF R3, 1 +;__Lib_MathDouble.c,693 :: +MROUND32: +;__Lib_MathDouble.c,694 :: +0x0D85 0x1B7B BTFSC R11, 6 +;__Lib_MathDouble.c,695 :: +0x0D86 0x1C70 BTFSS R0, 0 +;__Lib_MathDouble.c,696 :: +0x0D87 0x2D97 GOTO MUL32OK +;__Lib_MathDouble.c,697 :: +0x0D88 0x1FF8 BTFSS R8, 7 +;__Lib_MathDouble.c,698 :: +0x0D89 0x2D97 GOTO MUL32OK +;__Lib_MathDouble.c,699 :: +0x0D8A 0x0AF0 INCF R0, 1 +;__Lib_MathDouble.c,700 :: +0x0D8B 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,701 :: +0x0D8C 0x0AF1 INCF R1, 1 +;__Lib_MathDouble.c,702 :: +0x0D8D 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,703 :: +0x0D8E 0x0AF2 INCF R2, 1 +;__Lib_MathDouble.c,704 :: +0x0D8F 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,705 :: +0x0D90 0x2D97 GOTO MUL32OK +;__Lib_MathDouble.c,706 :: +0x0D91 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,707 :: +0x0D92 0x0CF1 RRF R1, 1 +;__Lib_MathDouble.c,708 :: +0x0D93 0x0CF0 RRF R0, 1 +;__Lib_MathDouble.c,709 :: +0x0D94 0x0AF3 INCF R3, 1 +;__Lib_MathDouble.c,710 :: +0x0D95 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,711 :: +0x0D96 0x2DA0 GOTO JPMSETFOV32 +;__Lib_MathDouble.c,712 :: +MUL32OK: +;__Lib_MathDouble.c,713 :: +0x0D97 0x1FFA BTFSS R10, 7 +;__Lib_MathDouble.c,714 :: +0x0D98 0x13F2 BCF R2, 7 +;__Lib_MathDouble.c,715 :: +0x0D99 0x3000 MOVLW 0 +;__Lib_MathDouble.c,717 :: +0x0D9A 0x2DA9 GOTO MUL32EEE +;__Lib_MathDouble.c,718 :: +JPMRES032: +;__Lib_MathDouble.c,719 :: +0x0D9B 0x3001 MOVLW 1 +;__Lib_MathDouble.c,722 :: +0x0D9C 0x3180 MOVLP 0 +0x0D9D 0x2426 CALL _RES032 +0x0D9E 0x3188 MOVLP 8 +;__Lib_MathDouble.c,724 :: +0x0D9F 0x2DA9 GOTO MUL32EEE +;__Lib_MathDouble.c,725 :: +JPMSETFOV32: +;__Lib_MathDouble.c,726 :: +0x0DA0 0x3002 MOVLW 2 +;__Lib_MathDouble.c,729 :: +0x0DA1 0x3180 MOVLP 0 +0x0DA2 0x243D CALL _SETFOV32 +0x0DA3 0x3188 MOVLP 8 +;__Lib_MathDouble.c,731 :: +0x0DA4 0x2DA9 GOTO MUL32EEE +;__Lib_MathDouble.c,732 :: +JPMSETFUN32: +;__Lib_MathDouble.c,733 :: +0x0DA5 0x3004 MOVLW 4 +;__Lib_MathDouble.c,736 :: +0x0DA6 0x3180 MOVLP 0 +0x0DA7 0x2360 CALL _SETFUN32 +0x0DA8 0x3188 MOVLP 8 +;__Lib_MathDouble.c,738 :: +MUL32EEE: +;__Lib_MathDouble.c,739 :: +0x0DA9 0x0000 NOP +;__Lib_MathDouble.c,746 :: +L_end_Mul_32x32_FP: +0x0DAA 0x0008 RETURN +; end of _Mul_32x32_FP +_Div_32x32_FP: +;__Lib_MathDouble.c,758 :: +;__Lib_MathDouble.c,770 :: +;__Lib_MathDouble.c,773 :: +0x0DAB 0x0874 MOVF R4, 0 +0x0DAC 0x3A00 XORLW 0 +0x0DAD 0x1D03 BTFSS STATUS, 2 +0x0DAE 0x2DC4 GOTO L_Div_32x32_FP7 +;__Lib_MathDouble.c,774 :: +0x0DAF 0x0875 MOVF R5, 0 +0x0DB0 0x3A00 XORLW 0 +0x0DB1 0x1D03 BTFSS STATUS, 2 +0x0DB2 0x2DC4 GOTO L_Div_32x32_FP8 +;__Lib_MathDouble.c,775 :: +0x0DB3 0x0876 MOVF R6, 0 +0x0DB4 0x3A00 XORLW 0 +0x0DB5 0x1D03 BTFSS STATUS, 2 +0x0DB6 0x2DC4 GOTO L_Div_32x32_FP9 +;__Lib_MathDouble.c,776 :: +0x0DB7 0x0877 MOVF R7, 0 +0x0DB8 0x3A00 XORLW 0 +0x0DB9 0x1D03 BTFSS STATUS, 2 +0x0DBA 0x2DC4 GOTO L_Div_32x32_FP10 +;__Lib_MathDouble.c,777 :: +0x0DBB 0x30FF MOVLW 255 +0x0DBC 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,778 :: +0x0DBD 0x30FF MOVLW 255 +0x0DBE 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,779 :: +0x0DBF 0x307F MOVLW 127 +0x0DC0 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,780 :: +0x0DC1 0x30FF MOVLW 255 +0x0DC2 0x00F3 MOVWF R3 +;__Lib_MathDouble.c,781 :: +0x0DC3 0x2E66 GOTO L_end_Div_32x32_FP +;__Lib_MathDouble.c,782 :: +L_Div_32x32_FP10: +L_Div_32x32_FP9: +L_Div_32x32_FP8: +L_Div_32x32_FP7: +;__Lib_MathDouble.c,785 :: +0x0DC4 0x0140 MOVLB 0 +;__Lib_MathDouble.c,787 :: +0x0DC5 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,788 :: +0x0DC6 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,789 :: +0x0DC7 0x2E52 GOTO JPDSETFDZ32 +;__Lib_MathDouble.c,791 :: +0x0DC8 0x0873 MOVF R3, 0 +;__Lib_MathDouble.c,792 :: +0x0DC9 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,793 :: +0x0DCA 0x2E57 GOTO JPDRES032 +;__Lib_MathDouble.c,795 :: +0x0DCB 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,796 :: +0x0DCC 0x0676 XORWF R6, 0 +;__Lib_MathDouble.c,797 :: +0x0DCD 0x3980 ANDLW 128 +;__Lib_MathDouble.c,798 :: +0x0DCE 0x00FA MOVWF R10 +;__Lib_MathDouble.c,799 :: +0x0DCF 0x17F2 BSF R2, 7 +;__Lib_MathDouble.c,800 :: +0x0DD0 0x17F6 BSF R6, 7 +;__Lib_MathDouble.c,802 :: +0x0DD1 0x01A1 CLRF __math_tempbD +;__Lib_MathDouble.c,803 :: +0x0DD2 0x0872 MOVF R2, 0 +;__Lib_MathDouble.c,804 :: +0x0DD3 0x00F8 MOVWF R8 +;__Lib_MathDouble.c,805 :: +0x0DD4 0x0871 MOVF R1, 0 +;__Lib_MathDouble.c,806 :: +0x0DD5 0x00FC MOVWF R12 +;__Lib_MathDouble.c,807 :: +0x0DD6 0x0870 MOVF R0, 0 +;__Lib_MathDouble.c,808 :: +0x0DD7 0x00FD MOVWF R13 +;__Lib_MathDouble.c,810 :: +0x0DD8 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,811 :: +0x0DD9 0x02FD SUBWF R13, 1 +;__Lib_MathDouble.c,812 :: +0x0DDA 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,813 :: +0x0DDB 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,814 :: +0x0DDC 0x0F75 INCFSZ R5, 0 +;__Lib_MathDouble.c,816 :: +0x0DDD 0x02FC SUBWF R12, 1 +;__Lib_MathDouble.c,817 :: +0x0DDE 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,818 :: +0x0DDF 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,819 :: +0x0DE0 0x0F76 INCFSZ R6, 0 +;__Lib_MathDouble.c,821 :: +0x0DE1 0x02F8 SUBWF R8, 1 +;__Lib_MathDouble.c,822 :: +0x0DE2 0x01F8 CLRF R8 +;__Lib_MathDouble.c,823 :: +0x0DE3 0x01FC CLRF R12 +;__Lib_MathDouble.c,824 :: +0x0DE4 0x01FD CLRF R13 +;__Lib_MathDouble.c,825 :: +0x0DE5 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,826 :: +0x0DE6 0x2DEE GOTO DALIGN32OK +;__Lib_MathDouble.c,828 :: +0x0DE7 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,829 :: +0x0DE8 0x0CF2 RRF R2, 1 +;__Lib_MathDouble.c,830 :: +0x0DE9 0x0CF1 RRF R1, 1 +;__Lib_MathDouble.c,831 :: +0x0DEA 0x0CF0 RRF R0, 1 +;__Lib_MathDouble.c,832 :: +0x0DEB 0x0CF8 RRF R8, 1 +;__Lib_MathDouble.c,833 :: +0x0DEC 0x3001 MOVLW 1 +;__Lib_MathDouble.c,834 :: +0x0DED 0x00A1 MOVWF __math_tempbD +;__Lib_MathDouble.c,835 :: +DALIGN32OK: +;__Lib_MathDouble.c,836 :: +0x0DEE 0x0877 MOVF R7, 0 +;__Lib_MathDouble.c,837 :: +0x0DEF 0x02F3 SUBWF R3, 1 +;__Lib_MathDouble.c,838 :: +0x0DF0 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,839 :: +0x0DF1 0x2DF8 GOTO ALTB32 +;__Lib_MathDouble.c,841 :: +0x0DF2 0x307E MOVLW 126 +;__Lib_MathDouble.c,842 :: +0x0DF3 0x0721 ADDWF __math_tempbD, 0 +;__Lib_MathDouble.c,843 :: +0x0DF4 0x07F3 ADDWF R3, 1 +;__Lib_MathDouble.c,844 :: +0x0DF5 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,845 :: +0x0DF6 0x2E5C GOTO JPDSETFOV32 +;__Lib_MathDouble.c,846 :: +0x0DF7 0x2DFD GOTO DARGOK32 +;__Lib_MathDouble.c,847 :: +ALTB32: +;__Lib_MathDouble.c,848 :: +0x0DF8 0x307E MOVLW 126 +;__Lib_MathDouble.c,849 :: +0x0DF9 0x0721 ADDWF __math_tempbD, 0 +;__Lib_MathDouble.c,850 :: +0x0DFA 0x07F3 ADDWF R3, 1 +;__Lib_MathDouble.c,851 :: +0x0DFB 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,852 :: +0x0DFC 0x2E61 GOTO JPDSETFUN32 +;__Lib_MathDouble.c,853 :: +DARGOK32: +;__Lib_MathDouble.c,854 :: +0x0DFD 0x3018 MOVLW 24 +;__Lib_MathDouble.c,856 :: +0x0DFE 0x07FA ADDWF R10, 1 +;__Lib_MathDouble.c,857 :: +DLOOP32: +;__Lib_MathDouble.c,858 :: +0x0DFF 0x0DFD RLF R13, 1 +;__Lib_MathDouble.c,859 :: +0x0E00 0x0DFC RLF R12, 1 +;__Lib_MathDouble.c,860 :: +0x0E01 0x0DF8 RLF R8, 1 +;__Lib_MathDouble.c,861 :: +0x0E02 0x0DF0 RLF R0, 1 +;__Lib_MathDouble.c,862 :: +0x0E03 0x0DF1 RLF R1, 1 +;__Lib_MathDouble.c,863 :: +0x0E04 0x0DF2 RLF R2, 1 +;__Lib_MathDouble.c,864 :: +0x0E05 0x0DA1 RLF __math_tempbD, 1 +;__Lib_MathDouble.c,866 :: +0x0E06 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,867 :: +0x0E07 0x02F0 SUBWF R0, 1 +;__Lib_MathDouble.c,868 :: +0x0E08 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,869 :: +0x0E09 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,870 :: +0x0E0A 0x0F75 INCFSZ R5, 0 +;__Lib_MathDouble.c,872 :: +0x0E0B 0x02F1 SUBWF R1, 1 +;__Lib_MathDouble.c,873 :: +0x0E0C 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,874 :: +0x0E0D 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,875 :: +0x0E0E 0x0F76 INCFSZ R6, 0 +;__Lib_MathDouble.c,877 :: +0x0E0F 0x02F2 SUBWF R2, 1 +;__Lib_MathDouble.c,878 :: +0x0E10 0x0D76 RLF R6, 0 +;__Lib_MathDouble.c,879 :: +0x0E11 0x04A1 IORWF __math_tempbD, 1 +;__Lib_MathDouble.c,880 :: +0x0E12 0x1C21 BTFSS __math_tempbD, 0 +;__Lib_MathDouble.c,881 :: +0x0E13 0x2E16 GOTO DREST32 +;__Lib_MathDouble.c,882 :: +0x0E14 0x147D BSF R13, 0 +;__Lib_MathDouble.c,883 :: +0x0E15 0x2E21 GOTO DOK32 +;__Lib_MathDouble.c,884 :: +DREST32: +;__Lib_MathDouble.c,885 :: +0x0E16 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,886 :: +0x0E17 0x07F0 ADDWF R0, 1 +;__Lib_MathDouble.c,887 :: +0x0E18 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,888 :: +0x0E19 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,889 :: +0x0E1A 0x0F75 INCFSZ R5, 0 +;__Lib_MathDouble.c,891 :: +0x0E1B 0x07F1 ADDWF R1, 1 +;__Lib_MathDouble.c,892 :: +0x0E1C 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,893 :: +0x0E1D 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,894 :: +0x0E1E 0x0A76 INCF R6, 0 +;__Lib_MathDouble.c,895 :: +0x0E1F 0x07F2 ADDWF R2, 1 +;__Lib_MathDouble.c,896 :: +0x0E20 0x107D BCF R13, 0 +;__Lib_MathDouble.c,897 :: +DOK32: +;__Lib_MathDouble.c,899 :: +0x0E21 0x03FA DECF R10, 1 +;__Lib_MathDouble.c,900 :: +0x0E22 0x301F MOVLW 31 +;__Lib_MathDouble.c,901 :: +0x0E23 0x057A ANDWF R10, 0 +;__Lib_MathDouble.c,902 :: +0x0E24 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,903 :: +0x0E25 0x2DFF GOTO DLOOP32 +;__Lib_MathDouble.c,905 :: +0x0E26 0x1B7B BTFSC R11, 6 +;__Lib_MathDouble.c,906 :: +0x0E27 0x1C7D BTFSS R13, 0 +;__Lib_MathDouble.c,907 :: +0x0E28 0x2E48 GOTO DIV32OK +;__Lib_MathDouble.c,908 :: +0x0E29 0x1003 BCF STATUS, 0 +;__Lib_MathDouble.c,909 :: +0x0E2A 0x0DF0 RLF R0, 1 +;__Lib_MathDouble.c,910 :: +0x0E2B 0x0DF1 RLF R1, 1 +;__Lib_MathDouble.c,911 :: +0x0E2C 0x0DF2 RLF R2, 1 +;__Lib_MathDouble.c,912 :: +0x0E2D 0x0DA1 RLF __math_tempbD, 1 +;__Lib_MathDouble.c,914 :: +0x0E2E 0x0874 MOVF R4, 0 +;__Lib_MathDouble.c,915 :: +0x0E2F 0x02F0 SUBWF R0, 1 +;__Lib_MathDouble.c,916 :: +0x0E30 0x0875 MOVF R5, 0 +;__Lib_MathDouble.c,917 :: +0x0E31 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,918 :: +0x0E32 0x0F75 INCFSZ R5, 0 +;__Lib_MathDouble.c,919 :: +0x0E33 0x02F1 SUBWF R1, 1 +;__Lib_MathDouble.c,920 :: +0x0E34 0x0876 MOVF R6, 0 +;__Lib_MathDouble.c,921 :: +0x0E35 0x1C03 BTFSS STATUS, 0 +;__Lib_MathDouble.c,922 :: +0x0E36 0x0F76 INCFSZ R6, 0 +;__Lib_MathDouble.c,923 :: +0x0E37 0x02F2 SUBWF R2, 1 +;__Lib_MathDouble.c,924 :: +0x0E38 0x0D76 RLF R6, 0 +;__Lib_MathDouble.c,925 :: +0x0E39 0x0421 IORWF __math_tempbD, 0 +;__Lib_MathDouble.c,926 :: +0x0E3A 0x3901 ANDLW 1 +;__Lib_MathDouble.c,927 :: +0x0E3B 0x07FD ADDWF R13, 1 +;__Lib_MathDouble.c,928 :: +0x0E3C 0x1803 BTFSC STATUS, 0 +;__Lib_MathDouble.c,929 :: +0x0E3D 0x0AFC INCF R12, 1 +;__Lib_MathDouble.c,930 :: +0x0E3E 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,931 :: +0x0E3F 0x0AF8 INCF R8, 1 +;__Lib_MathDouble.c,932 :: +0x0E40 0x1D03 BTFSS STATUS, 2 +;__Lib_MathDouble.c,933 :: +0x0E41 0x2E48 GOTO DIV32OK +;__Lib_MathDouble.c,934 :: +0x0E42 0x0CF8 RRF R8, 1 +;__Lib_MathDouble.c,935 :: +0x0E43 0x0CFC RRF R12, 1 +;__Lib_MathDouble.c,936 :: +0x0E44 0x0CFD RRF R13, 1 +;__Lib_MathDouble.c,937 :: +0x0E45 0x0AF3 INCF R3, 1 +;__Lib_MathDouble.c,938 :: +0x0E46 0x1903 BTFSC STATUS, 2 +;__Lib_MathDouble.c,939 :: +0x0E47 0x2E5C GOTO JPDSETFOV32 +;__Lib_MathDouble.c,940 :: +DIV32OK: +;__Lib_MathDouble.c,941 :: +0x0E48 0x1FFA BTFSS R10, 7 +;__Lib_MathDouble.c,942 :: +0x0E49 0x13F8 BCF R8, 7 +;__Lib_MathDouble.c,943 :: +0x0E4A 0x0878 MOVF R8, 0 +;__Lib_MathDouble.c,944 :: +0x0E4B 0x00F2 MOVWF R2 +;__Lib_MathDouble.c,945 :: +0x0E4C 0x087C MOVF R12, 0 +;__Lib_MathDouble.c,946 :: +0x0E4D 0x00F1 MOVWF R1 +;__Lib_MathDouble.c,947 :: +0x0E4E 0x087D MOVF R13, 0 +;__Lib_MathDouble.c,948 :: +0x0E4F 0x00F0 MOVWF R0 +;__Lib_MathDouble.c,950 :: +0x0E50 0x3000 MOVLW 0 +;__Lib_MathDouble.c,952 :: +0x0E51 0x2E65 GOTO DIV32EEE +;__Lib_MathDouble.c,953 :: +JPDSETFDZ32: +;__Lib_MathDouble.c,954 :: +0x0E52 0x3001 MOVLW 1 +;__Lib_MathDouble.c,957 :: +0x0E53 0x3180 MOVLP 0 +0x0E54 0x2723 CALL _SETFDZ32 +0x0E55 0x3188 MOVLP 8 +;__Lib_MathDouble.c,959 :: +0x0E56 0x2E65 GOTO DIV32EEE +;__Lib_MathDouble.c,960 :: +JPDRES032: +;__Lib_MathDouble.c,961 :: +0x0E57 0x3002 MOVLW 2 +;__Lib_MathDouble.c,964 :: +0x0E58 0x3180 MOVLP 0 +0x0E59 0x2426 CALL _RES032 +0x0E5A 0x3188 MOVLP 8 +;__Lib_MathDouble.c,966 :: +0x0E5B 0x2E65 GOTO DIV32EEE +;__Lib_MathDouble.c,967 :: +JPDSETFOV32: +;__Lib_MathDouble.c,968 :: +0x0E5C 0x3004 MOVLW 4 +;__Lib_MathDouble.c,971 :: +0x0E5D 0x3180 MOVLP 0 +0x0E5E 0x243D CALL _SETFOV32 +0x0E5F 0x3188 MOVLP 8 +;__Lib_MathDouble.c,973 :: +0x0E60 0x2E65 GOTO DIV32EEE +;__Lib_MathDouble.c,974 :: +JPDSETFUN32: +;__Lib_MathDouble.c,975 :: +0x0E61 0x3008 MOVLW 8 +;__Lib_MathDouble.c,978 :: +0x0E62 0x3180 MOVLP 0 +0x0E63 0x2360 CALL _SETFUN32 +0x0E64 0x3188 MOVLP 8 +;__Lib_MathDouble.c,980 :: +DIV32EEE: +;__Lib_MathDouble.c,981 :: +0x0E65 0x0000 NOP +;__Lib_MathDouble.c,990 :: +L_end_Div_32x32_FP: +0x0E66 0x0008 RETURN +; end of _Div_32x32_FP +_get_reverse: +;main.c,526 :: int get_reverse(void){ +;main.c,529 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); +0x0E67 0x3043 MOVLW 67 +0x0E68 0x0144 MOVLB 4 +0x0E69 0x00A3 MOVWF FARG_ADC_Init_Advanced_reference +0x0E6A 0x3180 MOVLP 0 +0x0E6B 0x2297 CALL _ADC_Init_Advanced +0x0E6C 0x3188 MOVLP 8 +;main.c,530 :: Delay_us(100); +0x0E6D 0x3002 MOVLW 2 +0x0E6E 0x00FC MOVWF R12 +0x0E6F 0x3008 MOVLW 8 +0x0E70 0x00FD MOVWF R13 +L_get_reverse131: +0x0E71 0x0BFD DECFSZ R13, 1 +0x0E72 0x2E71 GOTO L_get_reverse131 +0x0E73 0x0BFC DECFSZ R12, 1 +0x0E74 0x2E71 GOTO L_get_reverse131 +0x0E75 0x0000 NOP +;main.c,531 :: v = ADC_Get_Sample(REV_input); +0x0E76 0x300A MOVLW 10 +0x0E77 0x0144 MOVLB 4 +0x0E78 0x00A3 MOVWF FARG_ADC_Get_Sample_channel +0x0E79 0x3180 MOVLP 0 +0x0E7A 0x236C CALL _ADC_Get_Sample +0x0E7B 0x3188 MOVLP 8 +0x0E7C 0x0870 MOVF R0, 0 +0x0E7D 0x0143 MOVLB 3 +0x0E7E 0x00EE MOVWF get_reverse_v_L0 +0x0E7F 0x0871 MOVF R1, 0 +0x0E80 0x00EF MOVWF get_reverse_v_L0+1 +;main.c,532 :: if(v==1023){ +0x0E81 0x0871 MOVF R1, 0 +0x0E82 0x3A03 XORLW 3 +0x0E83 0x1D03 BTFSS STATUS, 2 +0x0E84 0x2E87 GOTO L__get_reverse340 +0x0E85 0x30FF MOVLW 255 +0x0E86 0x0670 XORWF R0, 0 +L__get_reverse340: +0x0E87 0x1D03 BTFSS STATUS, 2 +0x0E88 0x2EA5 GOTO L_get_reverse132 +;main.c,533 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); +0x0E89 0x3083 MOVLW 131 +0x0E8A 0x0144 MOVLB 4 +0x0E8B 0x00A3 MOVWF FARG_ADC_Init_Advanced_reference +0x0E8C 0x3180 MOVLP 0 +0x0E8D 0x2297 CALL _ADC_Init_Advanced +0x0E8E 0x3188 MOVLP 8 +;main.c,534 :: Delay_us(100); +0x0E8F 0x3002 MOVLW 2 +0x0E90 0x00FC MOVWF R12 +0x0E91 0x3008 MOVLW 8 +0x0E92 0x00FD MOVWF R13 +L_get_reverse133: +0x0E93 0x0BFD DECFSZ R13, 1 +0x0E94 0x2E93 GOTO L_get_reverse133 +0x0E95 0x0BFC DECFSZ R12, 1 +0x0E96 0x2E93 GOTO L_get_reverse133 +0x0E97 0x0000 NOP +;main.c,535 :: v = ADC_Get_Sample(REV_input) * 2; +0x0E98 0x300A MOVLW 10 +0x0E99 0x0144 MOVLB 4 +0x0E9A 0x00A3 MOVWF FARG_ADC_Get_Sample_channel +0x0E9B 0x3180 MOVLP 0 +0x0E9C 0x236C CALL _ADC_Get_Sample +0x0E9D 0x3188 MOVLP 8 +0x0E9E 0x0870 MOVF R0, 0 +0x0E9F 0x0143 MOVLB 3 +0x0EA0 0x00EE MOVWF get_reverse_v_L0 +0x0EA1 0x0871 MOVF R1, 0 +0x0EA2 0x00EF MOVWF get_reverse_v_L0+1 +0x0EA3 0x35EE LSLF get_reverse_v_L0, 1 +0x0EA4 0x0DEF RLF get_reverse_v_L0+1, 1 +;main.c,536 :: } +L_get_reverse132: +;main.c,537 :: if(v==2046){ +0x0EA5 0x086F MOVF get_reverse_v_L0+1, 0 +0x0EA6 0x3A07 XORLW 7 +0x0EA7 0x1D03 BTFSS STATUS, 2 +0x0EA8 0x2EAB GOTO L__get_reverse341 +0x0EA9 0x30FE MOVLW 254 +0x0EAA 0x066E XORWF get_reverse_v_L0, 0 +L__get_reverse341: +0x0EAB 0x1D03 BTFSS STATUS, 2 +0x0EAC 0x2EFC GOTO L_get_reverse134 +;main.c,538 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); +0x0EAD 0x0144 MOVLB 4 +0x0EAE 0x01A3 CLRF FARG_ADC_Init_Advanced_reference +0x0EAF 0x3180 MOVLP 0 +0x0EB0 0x2297 CALL _ADC_Init_Advanced +0x0EB1 0x3188 MOVLP 8 +;main.c,539 :: Delay_us(100); +0x0EB2 0x3002 MOVLW 2 +0x0EB3 0x00FC MOVWF R12 +0x0EB4 0x3008 MOVLW 8 +0x0EB5 0x00FD MOVWF R13 +L_get_reverse135: +0x0EB6 0x0BFD DECFSZ R13, 1 +0x0EB7 0x2EB6 GOTO L_get_reverse135 +0x0EB8 0x0BFC DECFSZ R12, 1 +0x0EB9 0x2EB6 GOTO L_get_reverse135 +0x0EBA 0x0000 NOP +;main.c,540 :: v = ADC_Get_Sample(REV_input); +0x0EBB 0x300A MOVLW 10 +0x0EBC 0x0144 MOVLB 4 +0x0EBD 0x00A3 MOVWF FARG_ADC_Get_Sample_channel +0x0EBE 0x3180 MOVLP 0 +0x0EBF 0x236C CALL _ADC_Get_Sample +0x0EC0 0x3188 MOVLP 8 +0x0EC1 0x0870 MOVF R0, 0 +0x0EC2 0x0143 MOVLB 3 +0x0EC3 0x00EE MOVWF get_reverse_v_L0 +0x0EC4 0x0871 MOVF R1, 0 +0x0EC5 0x00EF MOVWF get_reverse_v_L0+1 +;main.c,541 :: if(v==1023) Overflow = 1; +0x0EC6 0x0871 MOVF R1, 0 +0x0EC7 0x3A03 XORLW 3 +0x0EC8 0x1D03 BTFSS STATUS, 2 +0x0EC9 0x2ECC GOTO L__get_reverse342 +0x0ECA 0x30FF MOVLW 255 +0x0ECB 0x0670 XORWF R0, 0 +L__get_reverse342: +0x0ECC 0x1D03 BTFSS STATUS, 2 +0x0ECD 0x2ECF GOTO L_get_reverse136 +0x0ECE 0x1520 BSF _Overflow, BitPos(_Overflow+0) +L_get_reverse136: +;main.c,542 :: get_batt(); +0x0ECF 0x3180 MOVLP 0 +0x0ED0 0x2707 CALL _get_batt +0x0ED1 0x3188 MOVLP 8 +;main.c,543 :: d = (long)v * (long)Voltage; +0x0ED2 0x086E MOVF get_reverse_v_L0, 0 +0x0ED3 0x00F4 MOVWF R4 +0x0ED4 0x086F MOVF get_reverse_v_L0+1, 0 +0x0ED5 0x00F5 MOVWF R5 +0x0ED6 0x01F6 CLRF R6 +0x0ED7 0x01F7 CLRF R7 +0x0ED8 0x0829 MOVF _Voltage, 0 +0x0ED9 0x00F0 MOVWF R0 +0x0EDA 0x082A MOVF _Voltage+1, 0 +0x0EDB 0x00F1 MOVWF R1 +0x0EDC 0x3000 MOVLW 0 +0x0EDD 0x1BF1 BTFSC R1, 7 +0x0EDE 0x30FF MOVLW 255 +0x0EDF 0x00F2 MOVWF R2 +0x0EE0 0x00F3 MOVWF R3 +0x0EE1 0x3180 MOVLP 0 +0x0EE2 0x21BE CALL _Mul_32x32_U +0x0EE3 0x3188 MOVLP 8 +;main.c,544 :: d = d / 1024; +0x0EE4 0x300A MOVLW 10 +0x0EE5 0x00F8 MOVWF R8 +0x0EE6 0x0870 MOVF R0, 0 +0x0EE7 0x00F4 MOVWF R4 +0x0EE8 0x0871 MOVF R1, 0 +0x0EE9 0x00F5 MOVWF R5 +0x0EEA 0x0872 MOVF R2, 0 +0x0EEB 0x00F6 MOVWF R6 +0x0EEC 0x0873 MOVF R3, 0 +0x0EED 0x00F7 MOVWF R7 +0x0EEE 0x0878 MOVF R8, 0 +L__get_reverse343: +0x0EEF 0x1903 BTFSC STATUS, 2 +0x0EF0 0x2EF7 GOTO L__get_reverse344 +0x0EF1 0x36F7 LSRF R7, 1 +0x0EF2 0x0CF6 RRF R6, 1 +0x0EF3 0x0CF5 RRF R5, 1 +0x0EF4 0x0CF4 RRF R4, 1 +0x0EF5 0x3EFF ADDLW 255 +0x0EF6 0x2EEF GOTO L__get_reverse343 +L__get_reverse344: +;main.c,545 :: v = (int)d; +0x0EF7 0x0874 MOVF R4, 0 +0x0EF8 0x0143 MOVLB 3 +0x0EF9 0x00EE MOVWF get_reverse_v_L0 +0x0EFA 0x0875 MOVF R5, 0 +0x0EFB 0x00EF MOVWF get_reverse_v_L0+1 +;main.c,546 :: } +L_get_reverse134: +;main.c,547 :: return v; +0x0EFC 0x086E MOVF get_reverse_v_L0, 0 +0x0EFD 0x00F0 MOVWF R0 +0x0EFE 0x086F MOVF get_reverse_v_L0+1, 0 +0x0EFF 0x00F1 MOVWF R1 +;main.c,548 :: } +L_end_get_reverse: +0x0F00 0x0008 RETURN +; end of _get_reverse +_correction: +;main.c,511 :: int correction(int input) { +;main.c,512 :: input *= 2; +0x0F01 0x0143 MOVLB 3 +0x0F02 0x086E MOVF FARG_correction_input, 0 +0x0F03 0x00F1 MOVWF R1 +0x0F04 0x086F MOVF FARG_correction_input+1, 0 +0x0F05 0x00F2 MOVWF R2 +0x0F06 0x35F1 LSLF R1, 1 +0x0F07 0x0DF2 RLF R2, 1 +0x0F08 0x0871 MOVF R1, 0 +0x0F09 0x00EE MOVWF FARG_correction_input +0x0F0A 0x0872 MOVF R2, 0 +0x0F0B 0x00EF MOVWF FARG_correction_input+1 +;main.c,514 :: if(input <= 543) input += 256; +0x0F0C 0x3080 MOVLW 128 +0x0F0D 0x3A02 XORLW 2 +0x0F0E 0x00F0 MOVWF R0 +0x0F0F 0x3080 MOVLW 128 +0x0F10 0x0672 XORWF R2, 0 +0x0F11 0x0270 SUBWF R0, 0 +0x0F12 0x1D03 BTFSS STATUS, 2 +0x0F13 0x2F16 GOTO L__correction332 +0x0F14 0x0871 MOVF R1, 0 +0x0F15 0x3C1F SUBLW 31 +L__correction332: +0x0F16 0x1C03 BTFSS STATUS, 0 +0x0F17 0x2F1D GOTO L_correction117 +0x0F18 0x3000 MOVLW 0 +0x0F19 0x07EE ADDWF FARG_correction_input, 1 +0x0F1A 0x3001 MOVLW 1 +0x0F1B 0x3DEF ADDWFC FARG_correction_input+1, 1 +0x0F1C 0x2F87 GOTO L_correction118 +L_correction117: +;main.c,515 :: else if(input <= 791) input += 274; +0x0F1D 0x3080 MOVLW 128 +0x0F1E 0x3A03 XORLW 3 +0x0F1F 0x00F0 MOVWF R0 +0x0F20 0x3080 MOVLW 128 +0x0F21 0x066F XORWF FARG_correction_input+1, 0 +0x0F22 0x0270 SUBWF R0, 0 +0x0F23 0x1D03 BTFSS STATUS, 2 +0x0F24 0x2F27 GOTO L__correction333 +0x0F25 0x086E MOVF FARG_correction_input, 0 +0x0F26 0x3C17 SUBLW 23 +L__correction333: +0x0F27 0x1C03 BTFSS STATUS, 0 +0x0F28 0x2F2E GOTO L_correction119 +0x0F29 0x3012 MOVLW 18 +0x0F2A 0x07EE ADDWF FARG_correction_input, 1 +0x0F2B 0x3001 MOVLW 1 +0x0F2C 0x3DEF ADDWFC FARG_correction_input+1, 1 +0x0F2D 0x2F87 GOTO L_correction120 +L_correction119: +;main.c,516 :: else if(input <= 1225) input += 288; +0x0F2E 0x3080 MOVLW 128 +0x0F2F 0x3A04 XORLW 4 +0x0F30 0x00F0 MOVWF R0 +0x0F31 0x3080 MOVLW 128 +0x0F32 0x066F XORWF FARG_correction_input+1, 0 +0x0F33 0x0270 SUBWF R0, 0 +0x0F34 0x1D03 BTFSS STATUS, 2 +0x0F35 0x2F38 GOTO L__correction334 +0x0F36 0x086E MOVF FARG_correction_input, 0 +0x0F37 0x3CC9 SUBLW 201 +L__correction334: +0x0F38 0x1C03 BTFSS STATUS, 0 +0x0F39 0x2F3F GOTO L_correction121 +0x0F3A 0x3020 MOVLW 32 +0x0F3B 0x07EE ADDWF FARG_correction_input, 1 +0x0F3C 0x3001 MOVLW 1 +0x0F3D 0x3DEF ADDWFC FARG_correction_input+1, 1 +0x0F3E 0x2F87 GOTO L_correction122 +L_correction121: +;main.c,517 :: else if(input <= 1991) input += 286; +0x0F3F 0x3080 MOVLW 128 +0x0F40 0x3A07 XORLW 7 +0x0F41 0x00F0 MOVWF R0 +0x0F42 0x3080 MOVLW 128 +0x0F43 0x066F XORWF FARG_correction_input+1, 0 +0x0F44 0x0270 SUBWF R0, 0 +0x0F45 0x1D03 BTFSS STATUS, 2 +0x0F46 0x2F49 GOTO L__correction335 +0x0F47 0x086E MOVF FARG_correction_input, 0 +0x0F48 0x3CC7 SUBLW 199 +L__correction335: +0x0F49 0x1C03 BTFSS STATUS, 0 +0x0F4A 0x2F50 GOTO L_correction123 +0x0F4B 0x301E MOVLW 30 +0x0F4C 0x07EE ADDWF FARG_correction_input, 1 +0x0F4D 0x3001 MOVLW 1 +0x0F4E 0x3DEF ADDWFC FARG_correction_input+1, 1 +0x0F4F 0x2F87 GOTO L_correction124 +L_correction123: +;main.c,518 :: else if(input <= 2766) input += 288; +0x0F50 0x3080 MOVLW 128 +0x0F51 0x3A0A XORLW 10 +0x0F52 0x00F0 MOVWF R0 +0x0F53 0x3080 MOVLW 128 +0x0F54 0x066F XORWF FARG_correction_input+1, 0 +0x0F55 0x0270 SUBWF R0, 0 +0x0F56 0x1D03 BTFSS STATUS, 2 +0x0F57 0x2F5A GOTO L__correction336 +0x0F58 0x086E MOVF FARG_correction_input, 0 +0x0F59 0x3CCE SUBLW 206 +L__correction336: +0x0F5A 0x1C03 BTFSS STATUS, 0 +0x0F5B 0x2F61 GOTO L_correction125 +0x0F5C 0x3020 MOVLW 32 +0x0F5D 0x07EE ADDWF FARG_correction_input, 1 +0x0F5E 0x3001 MOVLW 1 +0x0F5F 0x3DEF ADDWFC FARG_correction_input+1, 1 +0x0F60 0x2F87 GOTO L_correction126 +L_correction125: +;main.c,519 :: else if(input <= 3970) input += 260; +0x0F61 0x3080 MOVLW 128 +0x0F62 0x3A0F XORLW 15 +0x0F63 0x00F0 MOVWF R0 +0x0F64 0x3080 MOVLW 128 +0x0F65 0x066F XORWF FARG_correction_input+1, 0 +0x0F66 0x0270 SUBWF R0, 0 +0x0F67 0x1D03 BTFSS STATUS, 2 +0x0F68 0x2F6B GOTO L__correction337 +0x0F69 0x086E MOVF FARG_correction_input, 0 +0x0F6A 0x3C82 SUBLW 130 +L__correction337: +0x0F6B 0x1C03 BTFSS STATUS, 0 +0x0F6C 0x2F72 GOTO L_correction127 +0x0F6D 0x3004 MOVLW 4 +0x0F6E 0x07EE ADDWF FARG_correction_input, 1 +0x0F6F 0x3001 MOVLW 1 +0x0F70 0x3DEF ADDWFC FARG_correction_input+1, 1 +0x0F71 0x2F87 GOTO L_correction128 +L_correction127: +;main.c,520 :: else if(input <= 5100) input += 250; +0x0F72 0x3080 MOVLW 128 +0x0F73 0x3A13 XORLW 19 +0x0F74 0x00F0 MOVWF R0 +0x0F75 0x3080 MOVLW 128 +0x0F76 0x066F XORWF FARG_correction_input+1, 0 +0x0F77 0x0270 SUBWF R0, 0 +0x0F78 0x1D03 BTFSS STATUS, 2 +0x0F79 0x2F7C GOTO L__correction338 +0x0F7A 0x086E MOVF FARG_correction_input, 0 +0x0F7B 0x3CEC SUBLW 236 +L__correction338: +0x0F7C 0x1C03 BTFSS STATUS, 0 +0x0F7D 0x2F83 GOTO L_correction129 +0x0F7E 0x30FA MOVLW 250 +0x0F7F 0x07EE ADDWF FARG_correction_input, 1 +0x0F80 0x3000 MOVLW 0 +0x0F81 0x3DEF ADDWFC FARG_correction_input+1, 1 +0x0F82 0x2F87 GOTO L_correction130 +L_correction129: +;main.c,521 :: else input += 240; +0x0F83 0x30F0 MOVLW 240 +0x0F84 0x07EE ADDWF FARG_correction_input, 1 +0x0F85 0x3000 MOVLW 0 +0x0F86 0x3DEF ADDWFC FARG_correction_input+1, 1 +L_correction130: +L_correction128: +L_correction126: +L_correction124: +L_correction122: +L_correction120: +L_correction118: +;main.c,523 :: return input; +0x0F87 0x086E MOVF FARG_correction_input, 0 +0x0F88 0x00F0 MOVWF R0 +0x0F89 0x086F MOVF FARG_correction_input+1, 0 +0x0F8A 0x00F1 MOVWF R1 +;main.c,524 :: } +L_end_correction: +0x0F8B 0x0008 RETURN +; end of _correction +_Div_16x16_S_L: +;__Lib_Math.c,416 :: +;__Lib_Math.c,422 :: +0x0F8C 0x0D71 RLF R1, 0 +;__Lib_Math.c,423 :: +0x0F8D 0x0DF8 RLF R8, 1 +;__Lib_Math.c,424 :: +0x0F8E 0x0DF9 RLF R9, 1 +;__Lib_Math.c,425 :: +0x0F8F 0x0874 MOVF R4, 0 +;__Lib_Math.c,426 :: +0x0F90 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,427 :: +0x0F91 0x0875 MOVF R5, 0 +;__Lib_Math.c,428 :: +0x0F92 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,429 :: +0x0F93 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,430 :: +0x0F94 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,431 :: +0x0F95 0x0DF0 RLF R0, 1 +;__Lib_Math.c,432 :: +0x0F96 0x0DF1 RLF R1, 1 +;__Lib_Math.c,434 :: +0x0F97 0x300F MOVLW 15 +;__Lib_Math.c,435 :: +0x0F98 0x00FC MOVWF R12 +;__Lib_Math.c,437 :: +0x0F99 0x0D71 RLF R1, 0 +;__Lib_Math.c,438 :: +0x0F9A 0x0DF8 RLF R8, 1 +;__Lib_Math.c,439 :: +0x0F9B 0x0DF9 RLF R9, 1 +;__Lib_Math.c,440 :: +0x0F9C 0x0874 MOVF R4, 0 +;__Lib_Math.c,442 :: +0x0F9D 0x1C70 BTFSS R0, 0 +;__Lib_Math.c,443 :: +0x0F9E 0x2FA5 GOTO $+7 +;__Lib_Math.c,444 :: +0x0F9F 0x02F8 SUBWF R8, 1 +;__Lib_Math.c,445 :: +0x0FA0 0x0875 MOVF R5, 0 +;__Lib_Math.c,446 :: +0x0FA1 0x1C03 BTFSS STATUS, 0 +;__Lib_Math.c,447 :: +0x0FA2 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,448 :: +0x0FA3 0x02F9 SUBWF R9, 1 +;__Lib_Math.c,449 :: +0x0FA4 0x2FAA GOTO $+6 +;__Lib_Math.c,451 :: +0x0FA5 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,452 :: +0x0FA6 0x0875 MOVF R5, 0 +;__Lib_Math.c,453 :: +0x0FA7 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,454 :: +0x0FA8 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,455 :: +0x0FA9 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,457 :: +0x0FAA 0x0DF0 RLF R0, 1 +;__Lib_Math.c,458 :: +0x0FAB 0x0DF1 RLF R1, 1 +;__Lib_Math.c,460 :: +0x0FAC 0x0BFC DECFSZ R12, 1 +;__Lib_Math.c,461 :: +0x0FAD 0x2F99 GOTO $-20 +;__Lib_Math.c,463 :: +0x0FAE 0x1870 BTFSC R0, 0 +;__Lib_Math.c,464 :: +0x0FAF 0x2FB6 GOTO $+7 +;__Lib_Math.c,465 :: +0x0FB0 0x0874 MOVF R4, 0 +;__Lib_Math.c,466 :: +0x0FB1 0x07F8 ADDWF R8, 1 +;__Lib_Math.c,467 :: +0x0FB2 0x0875 MOVF R5, 0 +;__Lib_Math.c,468 :: +0x0FB3 0x1803 BTFSC STATUS, 0 +;__Lib_Math.c,469 :: +0x0FB4 0x0F75 INCFSZ R5, 0 +;__Lib_Math.c,470 :: +0x0FB5 0x07F9 ADDWF R9, 1 +;__Lib_Math.c,471 :: +0x0FB6 0x0000 NOP +;__Lib_Math.c,473 :: +L_end_Div_16x16_S_L: +0x0FB7 0x0008 RETURN +; end of _Div_16x16_S_L +_Btn_xlong: +;main.c,324 :: void Btn_xlong(){ +;main.c,325 :: B_xlong = 0; +0x0FB8 0x0143 MOVLB 3 +0x0FB9 0x1220 BCF _B_xlong, BitPos(_B_xlong+0) +;main.c,326 :: btn_cnt = 0; +0x0FBA 0x0142 MOVLB 2 +0x0FBB 0x01BB CLRF _btn_cnt +0x0FBC 0x01BC CLRF _btn_cnt+1 +0x0FBD 0x01BD CLRF _btn_cnt+2 +0x0FBE 0x01BE CLRF _btn_cnt+3 +;main.c,327 :: oled_clear(); +0x0FBF 0x3180 MOVLP 0 +0x0FC0 0x2449 CALL _oled_clear +0x0FC1 0x3188 MOVLP 8 +;main.c,328 :: oled_wr_str(1, 0, " POWER OFF ", 11); +0x0FC2 0x3001 MOVLW 1 +0x0FC3 0x0144 MOVLB 4 +0x0FC4 0x00A3 MOVWF FARG_oled_wr_str_page +0x0FC5 0x01A4 CLRF FARG_oled_wr_str_col +0x0FC6 0x302F MOVLW ?lstr14_main +0x0FC7 0x00A5 MOVWF FARG_oled_wr_str_str +0x0FC8 0x3001 MOVLW hi_addr(?lstr14_main) +0x0FC9 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x0FCA 0x300B MOVLW 11 +0x0FCB 0x00A7 MOVWF FARG_oled_wr_str_leng +0x0FCC 0x3180 MOVLP 0 +0x0FCD 0x246D CALL _oled_wr_str +0x0FCE 0x3188 MOVLP 8 +;main.c,329 :: Delay_ms(2000); +0x0FCF 0x3052 MOVLW 82 +0x0FD0 0x00FB MOVWF R11 +0x0FD1 0x302B MOVLW 43 +0x0FD2 0x00FC MOVWF R12 +0x0FD3 0x3000 MOVLW 0 +0x0FD4 0x00FD MOVWF R13 +L_Btn_xlong93: +0x0FD5 0x0BFD DECFSZ R13, 1 +0x0FD6 0x2FD5 GOTO L_Btn_xlong93 +0x0FD7 0x0BFC DECFSZ R12, 1 +0x0FD8 0x2FD5 GOTO L_Btn_xlong93 +0x0FD9 0x0BFB DECFSZ R11, 1 +0x0FDA 0x2FD5 GOTO L_Btn_xlong93 +0x0FDB 0x0000 NOP +;main.c,330 :: power_off(); +0x0FDC 0x3198 MOVLP 24 +0x0FDD 0x2182 CALL _power_off +0x0FDE 0x3188 MOVLP 8 +;main.c,331 :: return; +;main.c,332 :: } +L_end_Btn_xlong: +0x0FDF 0x0008 RETURN +; end of _Btn_xlong +_Ext_long: +;main.c,352 :: void Ext_long(){ +;main.c,353 :: Green = 0; +0x0FE0 0x0140 MOVLB 0 +0x0FE1 0x1197 BCF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,354 :: OLED_PWD = 1; +0x0FE2 0x1616 BSF LATA4_bit, BitPos(LATA4_bit+0) +;main.c,355 :: tune(); +0x0FE3 0x3190 MOVLP 16 +0x0FE4 0x259D CALL _tune +0x0FE5 0x3188 MOVLP 8 +;main.c,356 :: SWR_ind = SWR; +0x0FE6 0x0143 MOVLB 3 +0x0FE7 0x083B MOVF _SWR, 0 +0x0FE8 0x0142 MOVLB 2 +0x0FE9 0x00C0 MOVWF _SWR_ind +0x0FEA 0x0143 MOVLB 3 +0x0FEB 0x083C MOVF _SWR+1, 0 +0x0FEC 0x0142 MOVLB 2 +0x0FED 0x00C1 MOVWF _SWR_ind+1 +;main.c,357 :: Green = 1; +0x0FEE 0x0140 MOVLB 0 +0x0FEF 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,358 :: E_long = 0; +0x0FF0 0x0143 MOVLB 3 +0x0FF1 0x10A0 BCF _E_long, BitPos(_E_long+0) +;main.c,359 :: return; +;main.c,360 :: } +L_end_Ext_long: +0x0FF2 0x0008 RETURN +; end of _Ext_long +_Btn_short: +;main.c,362 :: void Btn_short(){ +;main.c,363 :: Green = 0; +0x1000 0x0140 MOVLB 0 +0x1001 0x1197 BCF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,364 :: atu_reset(); +0x1002 0x3180 MOVLP 0 +0x1003 0x27C8 CALL _atu_reset +0x1004 0x3190 MOVLP 16 +;main.c,365 :: oled_wr_str(2, 0, "RESET ", 9); +0x1005 0x3002 MOVLW 2 +0x1006 0x0144 MOVLB 4 +0x1007 0x00A3 MOVWF FARG_oled_wr_str_page +0x1008 0x01A4 CLRF FARG_oled_wr_str_col +0x1009 0x3065 MOVLW ?lstr18_main +0x100A 0x00A5 MOVWF FARG_oled_wr_str_str +0x100B 0x3000 MOVLW hi_addr(?lstr18_main) +0x100C 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x100D 0x3009 MOVLW 9 +0x100E 0x00A7 MOVWF FARG_oled_wr_str_leng +0x100F 0x3180 MOVLP 0 +0x1010 0x246D CALL _oled_wr_str +0x1011 0x3190 MOVLP 16 +;main.c,366 :: Delay_ms(600); +0x1012 0x3019 MOVLW 25 +0x1013 0x00FB MOVWF R11 +0x1014 0x305A MOVLW 90 +0x1015 0x00FC MOVWF R12 +0x1016 0x30B1 MOVLW 177 +0x1017 0x00FD MOVWF R13 +L_Btn_short94: +0x1018 0x0BFD DECFSZ R13, 1 +0x1019 0x2818 GOTO L_Btn_short94 +0x101A 0x0BFC DECFSZ R12, 1 +0x101B 0x2818 GOTO L_Btn_short94 +0x101C 0x0BFB DECFSZ R11, 1 +0x101D 0x2818 GOTO L_Btn_short94 +0x101E 0x0000 NOP +0x101F 0x0000 NOP +;main.c,367 :: oled_wr_str(2, 0, "SWR ", 5); +0x1020 0x3002 MOVLW 2 +0x1021 0x0144 MOVLB 4 +0x1022 0x00A3 MOVWF FARG_oled_wr_str_page +0x1023 0x01A4 CLRF FARG_oled_wr_str_col +0x1024 0x30A0 MOVLW ?lstr19_main +0x1025 0x00A5 MOVWF FARG_oled_wr_str_str +0x1026 0x3000 MOVLW hi_addr(?lstr19_main) +0x1027 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1028 0x3005 MOVLW 5 +0x1029 0x00A7 MOVWF FARG_oled_wr_str_leng +0x102A 0x3180 MOVLP 0 +0x102B 0x246D CALL _oled_wr_str +0x102C 0x3190 MOVLP 16 +;main.c,368 :: oled_wr_str(2, 42, "=", 1); +0x102D 0x3002 MOVLW 2 +0x102E 0x0144 MOVLB 4 +0x102F 0x00A3 MOVWF FARG_oled_wr_str_page +0x1030 0x302A MOVLW 42 +0x1031 0x00A4 MOVWF FARG_oled_wr_str_col +0x1032 0x30A6 MOVLW ?lstr20_main +0x1033 0x00A5 MOVWF FARG_oled_wr_str_str +0x1034 0x3000 MOVLW hi_addr(?lstr20_main) +0x1035 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1036 0x3001 MOVLW 1 +0x1037 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1038 0x3180 MOVLP 0 +0x1039 0x246D CALL _oled_wr_str +0x103A 0x3190 MOVLP 16 +;main.c,369 :: oled_wr_str(2, 60, "0.00", 4); +0x103B 0x3002 MOVLW 2 +0x103C 0x0144 MOVLB 4 +0x103D 0x00A3 MOVWF FARG_oled_wr_str_page +0x103E 0x303C MOVLW 60 +0x103F 0x00A4 MOVWF FARG_oled_wr_str_col +0x1040 0x305F MOVLW ?lstr21_main +0x1041 0x00A5 MOVWF FARG_oled_wr_str_str +0x1042 0x3000 MOVLW hi_addr(?lstr21_main) +0x1043 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1044 0x3004 MOVLW 4 +0x1045 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1046 0x3180 MOVLP 0 +0x1047 0x246D CALL _oled_wr_str +0x1048 0x3190 MOVLP 16 +;main.c,370 :: SWR_fixed_old = 100; +0x1049 0x3064 MOVLW 100 +0x104A 0x0142 MOVLB 2 +0x104B 0x00CA MOVWF _SWR_fixed_old +0x104C 0x3000 MOVLW 0 +0x104D 0x00CB MOVWF _SWR_fixed_old+1 +;main.c,371 :: Delay_ms(300); +0x104E 0x300D MOVLW 13 +0x104F 0x00FB MOVWF R11 +0x1050 0x302D MOVLW 45 +0x1051 0x00FC MOVWF R12 +0x1052 0x30D7 MOVLW 215 +0x1053 0x00FD MOVWF R13 +L_Btn_short95: +0x1054 0x0BFD DECFSZ R13, 1 +0x1055 0x2854 GOTO L_Btn_short95 +0x1056 0x0BFC DECFSZ R12, 1 +0x1057 0x2854 GOTO L_Btn_short95 +0x1058 0x0BFB DECFSZ R11, 1 +0x1059 0x2854 GOTO L_Btn_short95 +0x105A 0x0000 NOP +0x105B 0x0000 NOP +;main.c,372 :: Green = 1; +0x105C 0x0140 MOVLB 0 +0x105D 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,373 :: B_short = 0; +0x105E 0x0143 MOVLB 3 +0x105F 0x1320 BCF _B_short, BitPos(_B_short+0) +;main.c,374 :: E_short = 0; +0x1060 0x1020 BCF _E_short, BitPos(_E_short+0) +;main.c,375 :: btn_1_cnt = 0; +0x1061 0x0140 MOVLB 0 +0x1062 0x01E4 CLRF _btn_1_cnt +;main.c,376 :: volt_cnt = Tick; +0x1063 0x0142 MOVLB 2 +0x1064 0x084C MOVF _Tick, 0 +0x1065 0x00C2 MOVWF _volt_cnt +0x1066 0x084D MOVF _Tick+1, 0 +0x1067 0x00C3 MOVWF _volt_cnt+1 +0x1068 0x084E MOVF _Tick+2, 0 +0x1069 0x00C4 MOVWF _volt_cnt+2 +0x106A 0x084F MOVF _Tick+3, 0 +0x106B 0x00C5 MOVWF _volt_cnt+3 +;main.c,377 :: watch_cnt = Tick; +0x106C 0x084C MOVF _Tick, 0 +0x106D 0x00D0 MOVWF _watch_cnt +0x106E 0x084D MOVF _Tick+1, 0 +0x106F 0x00D1 MOVWF _watch_cnt+1 +0x1070 0x084E MOVF _Tick+2, 0 +0x1071 0x00D2 MOVWF _watch_cnt+2 +0x1072 0x084F MOVF _Tick+3, 0 +0x1073 0x00D3 MOVWF _watch_cnt+3 +;main.c,378 :: return; +;main.c,379 :: } +L_end_Btn_short: +0x1074 0x0008 RETURN +; end of _Btn_short +_draw_power: +;main.c,258 :: void draw_power(unsigned int p){ +;main.c,260 :: if(p==0){ +0x1075 0x3000 MOVLW 0 +0x1076 0x0143 MOVLB 3 +0x1077 0x0667 XORWF FARG_draw_power_p+1, 0 +0x1078 0x1D03 BTFSS STATUS, 2 +0x1079 0x287C GOTO L__draw_power278 +0x107A 0x3000 MOVLW 0 +0x107B 0x0666 XORWF FARG_draw_power_p, 0 +L__draw_power278: +0x107C 0x1D03 BTFSS STATUS, 2 +0x107D 0x288C GOTO L_draw_power77 +;main.c,261 :: oled_wr_str(0, 60, "0.0", 3); +0x107E 0x0144 MOVLB 4 +0x107F 0x01A3 CLRF FARG_oled_wr_str_page +0x1080 0x303C MOVLW 60 +0x1081 0x00A4 MOVWF FARG_oled_wr_str_col +0x1082 0x302F MOVLW ?lstr12_main +0x1083 0x00A5 MOVWF FARG_oled_wr_str_str +0x1084 0x3000 MOVLW hi_addr(?lstr12_main) +0x1085 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1086 0x3003 MOVLW 3 +0x1087 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1088 0x3180 MOVLP 0 +0x1089 0x246D CALL _oled_wr_str +0x108A 0x3190 MOVLP 16 +;main.c,262 :: return; +0x108B 0x28F3 GOTO L_end_draw_power +;main.c,263 :: } +L_draw_power77: +;main.c,264 :: else if(p<10){ // <1 W +0x108C 0x3000 MOVLW 0 +0x108D 0x0143 MOVLB 3 +0x108E 0x0267 SUBWF FARG_draw_power_p+1, 0 +0x108F 0x1D03 BTFSS STATUS, 2 +0x1090 0x2893 GOTO L__draw_power279 +0x1091 0x300A MOVLW 10 +0x1092 0x0266 SUBWF FARG_draw_power_p, 0 +L__draw_power279: +0x1093 0x1803 BTFSC STATUS, 0 +0x1094 0x28AB GOTO L_draw_power79 +;main.c,265 :: IntToStr(p, txt_2); +0x1095 0x0866 MOVF FARG_draw_power_p, 0 +0x1096 0x0144 MOVLB 4 +0x1097 0x00A3 MOVWF FARG_IntToStr_input +0x1098 0x0143 MOVLB 3 +0x1099 0x0867 MOVF FARG_draw_power_p+1, 0 +0x109A 0x0144 MOVLB 4 +0x109B 0x00A4 MOVWF FARG_IntToStr_input+1 +0x109C 0x30AB MOVLW _txt_2 +0x109D 0x00A5 MOVWF FARG_IntToStr_output +0x109E 0x3001 MOVLW hi_addr(_txt_2) +0x109F 0x00A6 MOVWF FARG_IntToStr_output+1 +0x10A0 0x3180 MOVLP 0 +0x10A1 0x23B3 CALL _IntToStr +0x10A2 0x3190 MOVLP 16 +;main.c,266 :: txt[0] = '0'; +0x10A3 0x3030 MOVLW 48 +0x10A4 0x0143 MOVLB 3 +0x10A5 0x00B3 MOVWF _txt +;main.c,267 :: txt[1] = '.'; +0x10A6 0x302E MOVLW 46 +0x10A7 0x00B4 MOVWF _txt+1 +;main.c,268 :: txt[2] = txt_2[5]; +0x10A8 0x0830 MOVF _txt_2+5, 0 +0x10A9 0x00B5 MOVWF _txt+2 +;main.c,269 :: } +0x10AA 0x28E6 GOTO L_draw_power80 +L_draw_power79: +;main.c,270 :: else if(p<100){ // <10W +0x10AB 0x3000 MOVLW 0 +0x10AC 0x0267 SUBWF FARG_draw_power_p+1, 0 +0x10AD 0x1D03 BTFSS STATUS, 2 +0x10AE 0x28B1 GOTO L__draw_power280 +0x10AF 0x3064 MOVLW 100 +0x10B0 0x0266 SUBWF FARG_draw_power_p, 0 +L__draw_power280: +0x10B1 0x1803 BTFSC STATUS, 0 +0x10B2 0x28C9 GOTO L_draw_power81 +;main.c,271 :: IntToStr(p, txt_2); +0x10B3 0x0866 MOVF FARG_draw_power_p, 0 +0x10B4 0x0144 MOVLB 4 +0x10B5 0x00A3 MOVWF FARG_IntToStr_input +0x10B6 0x0143 MOVLB 3 +0x10B7 0x0867 MOVF FARG_draw_power_p+1, 0 +0x10B8 0x0144 MOVLB 4 +0x10B9 0x00A4 MOVWF FARG_IntToStr_input+1 +0x10BA 0x30AB MOVLW _txt_2 +0x10BB 0x00A5 MOVWF FARG_IntToStr_output +0x10BC 0x3001 MOVLW hi_addr(_txt_2) +0x10BD 0x00A6 MOVWF FARG_IntToStr_output+1 +0x10BE 0x3180 MOVLP 0 +0x10BF 0x23B3 CALL _IntToStr +0x10C0 0x3190 MOVLP 16 +;main.c,272 :: txt[0] = txt_2[4]; +0x10C1 0x0143 MOVLB 3 +0x10C2 0x082F MOVF _txt_2+4, 0 +0x10C3 0x00B3 MOVWF _txt +;main.c,273 :: txt[1] = '.'; +0x10C4 0x302E MOVLW 46 +0x10C5 0x00B4 MOVWF _txt+1 +;main.c,274 :: txt[2] = txt_2[5]; +0x10C6 0x0830 MOVF _txt_2+5, 0 +0x10C7 0x00B5 MOVWF _txt+2 +;main.c,275 :: } +0x10C8 0x28E6 GOTO L_draw_power82 +L_draw_power81: +;main.c,277 :: p += 5; +0x10C9 0x3005 MOVLW 5 +0x10CA 0x0766 ADDWF FARG_draw_power_p, 0 +0x10CB 0x00F0 MOVWF R0 +0x10CC 0x3000 MOVLW 0 +0x10CD 0x3D67 ADDWFC FARG_draw_power_p+1, 0 +0x10CE 0x00F1 MOVWF R1 +0x10CF 0x0870 MOVF R0, 0 +0x10D0 0x00E6 MOVWF FARG_draw_power_p +0x10D1 0x0871 MOVF R1, 0 +0x10D2 0x00E7 MOVWF FARG_draw_power_p+1 +;main.c,278 :: IntToStr(p, txt_2); +0x10D3 0x0870 MOVF R0, 0 +0x10D4 0x0144 MOVLB 4 +0x10D5 0x00A3 MOVWF FARG_IntToStr_input +0x10D6 0x0871 MOVF R1, 0 +0x10D7 0x00A4 MOVWF FARG_IntToStr_input+1 +0x10D8 0x30AB MOVLW _txt_2 +0x10D9 0x00A5 MOVWF FARG_IntToStr_output +0x10DA 0x3001 MOVLW hi_addr(_txt_2) +0x10DB 0x00A6 MOVWF FARG_IntToStr_output+1 +0x10DC 0x3180 MOVLP 0 +0x10DD 0x23B3 CALL _IntToStr +0x10DE 0x3190 MOVLP 16 +;main.c,279 :: txt[0] = ' '; +0x10DF 0x3020 MOVLW 32 +0x10E0 0x0143 MOVLB 3 +0x10E1 0x00B3 MOVWF _txt +;main.c,280 :: txt[1] = txt_2[3]; +0x10E2 0x082E MOVF _txt_2+3, 0 +0x10E3 0x00B4 MOVWF _txt+1 +;main.c,281 :: txt[2] = txt_2[4]; +0x10E4 0x082F MOVF _txt_2+4, 0 +0x10E5 0x00B5 MOVWF _txt+2 +;main.c,282 :: } +L_draw_power82: +L_draw_power80: +;main.c,283 :: oled_wr_str(0, 60, txt, 3); +0x10E6 0x0144 MOVLB 4 +0x10E7 0x01A3 CLRF FARG_oled_wr_str_page +0x10E8 0x303C MOVLW 60 +0x10E9 0x00A4 MOVWF FARG_oled_wr_str_col +0x10EA 0x30B3 MOVLW _txt +0x10EB 0x00A5 MOVWF FARG_oled_wr_str_str +0x10EC 0x3001 MOVLW hi_addr(_txt) +0x10ED 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x10EE 0x3003 MOVLW 3 +0x10EF 0x00A7 MOVWF FARG_oled_wr_str_leng +0x10F0 0x3180 MOVLP 0 +0x10F1 0x246D CALL _oled_wr_str +0x10F2 0x3190 MOVLP 16 +;main.c,284 :: return; +;main.c,285 :: } +L_end_draw_power: +0x10F3 0x0008 RETURN +; end of _draw_power +_get_pwr: +;main.c,575 :: void get_pwr(){ +;main.c,579 :: Forward = get_forward(); +0x10F4 0x3188 MOVLP 8 +0x10F5 0x24AB CALL _get_forward +0x10F6 0x3190 MOVLP 16 +0x10F7 0x0870 MOVF R0, 0 +0x10F8 0x00E6 MOVWF get_pwr_Forward_L0 +0x10F9 0x0871 MOVF R1, 0 +0x10FA 0x00E7 MOVWF get_pwr_Forward_L0+1 +0x10FB 0x3000 MOVLW 0 +0x10FC 0x1BE7 BTFSC get_pwr_Forward_L0+1, 7 +0x10FD 0x30FF MOVLW 255 +0x10FE 0x00E8 MOVWF get_pwr_Forward_L0+2 +0x10FF 0x00E9 MOVWF get_pwr_Forward_L0+3 +;main.c,580 :: Reverse = get_reverse(); +0x1100 0x3188 MOVLP 8 +0x1101 0x2667 CALL _get_reverse +0x1102 0x3190 MOVLP 16 +0x1103 0x0870 MOVF R0, 0 +0x1104 0x00EA MOVWF get_pwr_Reverse_L0 +0x1105 0x0871 MOVF R1, 0 +0x1106 0x00EB MOVWF get_pwr_Reverse_L0+1 +0x1107 0x3000 MOVLW 0 +0x1108 0x1BEB BTFSC get_pwr_Reverse_L0+1, 7 +0x1109 0x30FF MOVLW 255 +0x110A 0x00EC MOVWF get_pwr_Reverse_L0+2 +0x110B 0x00ED MOVWF get_pwr_Reverse_L0+3 +;main.c,582 :: p = correction(Forward); +0x110C 0x0866 MOVF get_pwr_Forward_L0, 0 +0x110D 0x00EE MOVWF FARG_correction_input +0x110E 0x0867 MOVF get_pwr_Forward_L0+1, 0 +0x110F 0x00EF MOVWF FARG_correction_input+1 +0x1110 0x3188 MOVLP 8 +0x1111 0x2701 CALL _correction +0x1112 0x3190 MOVLP 16 +0x1113 0x3180 MOVLP 0 +0x1114 0x27D3 CALL _int2double +0x1115 0x3190 MOVLP 16 +;main.c,583 :: P = p * 5 / 1000; +0x1116 0x3000 MOVLW 0 +0x1117 0x00F4 MOVWF R4 +0x1118 0x3000 MOVLW 0 +0x1119 0x00F5 MOVWF R5 +0x111A 0x3020 MOVLW 32 +0x111B 0x00F6 MOVWF R6 +0x111C 0x3081 MOVLW 129 +0x111D 0x00F7 MOVWF R7 +0x111E 0x3188 MOVLP 8 +0x111F 0x2545 CALL _Mul_32x32_FP +0x1120 0x3190 MOVLP 16 +0x1121 0x3000 MOVLW 0 +0x1122 0x00F4 MOVWF R4 +0x1123 0x3000 MOVLW 0 +0x1124 0x00F5 MOVWF R5 +0x1125 0x307A MOVLW 122 +0x1126 0x00F6 MOVWF R6 +0x1127 0x3088 MOVLW 136 +0x1128 0x00F7 MOVWF R7 +0x1129 0x3188 MOVLP 8 +0x112A 0x25AB CALL _Div_32x32_FP +0x112B 0x3190 MOVLP 16 +;main.c,584 :: p = p / 1.414; +0x112C 0x30F4 MOVLW 244 +0x112D 0x00F4 MOVWF R4 +0x112E 0x30FD MOVLW 253 +0x112F 0x00F5 MOVWF R5 +0x1130 0x3034 MOVLW 52 +0x1131 0x00F6 MOVWF R6 +0x1132 0x307F MOVLW 127 +0x1133 0x00F7 MOVWF R7 +0x1134 0x3188 MOVLP 8 +0x1135 0x25AB CALL _Div_32x32_FP +0x1136 0x3190 MOVLP 16 +;main.c,585 :: p = p * p; +0x1137 0x0870 MOVF R0, 0 +0x1138 0x00F4 MOVWF R4 +0x1139 0x0871 MOVF R1, 0 +0x113A 0x00F5 MOVWF R5 +0x113B 0x0872 MOVF R2, 0 +0x113C 0x00F6 MOVWF R6 +0x113D 0x0873 MOVF R3, 0 +0x113E 0x00F7 MOVWF R7 +0x113F 0x3188 MOVLP 8 +0x1140 0x2545 CALL _Mul_32x32_FP +0x1141 0x3190 MOVLP 16 +;main.c,586 :: p = p / 5; +0x1142 0x3000 MOVLW 0 +0x1143 0x00F4 MOVWF R4 +0x1144 0x3000 MOVLW 0 +0x1145 0x00F5 MOVWF R5 +0x1146 0x3020 MOVLW 32 +0x1147 0x00F6 MOVWF R6 +0x1148 0x3081 MOVLW 129 +0x1149 0x00F7 MOVWF R7 +0x114A 0x3188 MOVLP 8 +0x114B 0x25AB CALL _Div_32x32_FP +0x114C 0x3190 MOVLP 16 +;main.c,587 :: p += 0.5; +0x114D 0x3000 MOVLW 0 +0x114E 0x00F4 MOVWF R4 +0x114F 0x3000 MOVLW 0 +0x1150 0x00F5 MOVWF R5 +0x1151 0x3000 MOVLW 0 +0x1152 0x00F6 MOVWF R6 +0x1153 0x307E MOVLW 126 +0x1154 0x00F7 MOVWF R7 +0x1155 0x3188 MOVLP 8 +0x1156 0x2404 CALL _Add_32x32_FP +0x1157 0x3190 MOVLP 16 +;main.c,588 :: PWR = p; +0x1158 0x3188 MOVLP 8 +0x1159 0x23A6 CALL _double2int +0x115A 0x3190 MOVLP 16 +0x115B 0x0870 MOVF R0, 0 +0x115C 0x0143 MOVLB 3 +0x115D 0x00A7 MOVWF _PWR +0x115E 0x0871 MOVF R1, 0 +0x115F 0x00A8 MOVWF _PWR+1 +;main.c,590 :: if(PWR>0){ +0x1160 0x3080 MOVLW 128 +0x1161 0x00F2 MOVWF R2 +0x1162 0x3080 MOVLW 128 +0x1163 0x0671 XORWF R1, 0 +0x1164 0x0272 SUBWF R2, 0 +0x1165 0x1D03 BTFSS STATUS, 2 +0x1166 0x2969 GOTO L__get_pwr352 +0x1167 0x0870 MOVF R0, 0 +0x1168 0x3C00 SUBLW 0 +L__get_pwr352: +0x1169 0x1803 BTFSC STATUS, 0 +0x116A 0x29B6 GOTO L_get_pwr143 +;main.c,591 :: if(OLED_PWD){ +0x116B 0x0140 MOVLB 0 +0x116C 0x1E16 BTFSS LATA4_bit, BitPos(LATA4_bit+0) +0x116D 0x29B3 GOTO L_get_pwr144 +;main.c,592 :: disp_cnt = Tick + Disp_time*1000; +0x116E 0x0853 MOVF _Disp_time, 0 +0x116F 0x00F0 MOVWF R0 +0x1170 0x0854 MOVF _Disp_time+1, 0 +0x1171 0x00F1 MOVWF R1 +0x1172 0x0855 MOVF _Disp_time+2, 0 +0x1173 0x00F2 MOVWF R2 +0x1174 0x0856 MOVF _Disp_time+3, 0 +0x1175 0x00F3 MOVWF R3 +0x1176 0x30E8 MOVLW 232 +0x1177 0x00F4 MOVWF R4 +0x1178 0x3003 MOVLW 3 +0x1179 0x00F5 MOVWF R5 +0x117A 0x01F6 CLRF R6 +0x117B 0x01F7 CLRF R7 +0x117C 0x3180 MOVLP 0 +0x117D 0x21BE CALL _Mul_32x32_U +0x117E 0x3190 MOVLP 16 +0x117F 0x0870 MOVF R0, 0 +0x1180 0x0142 MOVLB 2 +0x1181 0x074C ADDWF _Tick, 0 +0x1182 0x0143 MOVLB 3 +0x1183 0x00BD MOVWF _disp_cnt +0x1184 0x0871 MOVF R1, 0 +0x1185 0x0142 MOVLB 2 +0x1186 0x3D4D ADDWFC _Tick+1, 0 +0x1187 0x0143 MOVLB 3 +0x1188 0x00BE MOVWF _disp_cnt+1 +0x1189 0x0872 MOVF R2, 0 +0x118A 0x0142 MOVLB 2 +0x118B 0x3D4E ADDWFC _Tick+2, 0 +0x118C 0x0143 MOVLB 3 +0x118D 0x00BF MOVWF _disp_cnt+2 +0x118E 0x0873 MOVF R3, 0 +0x118F 0x0142 MOVLB 2 +0x1190 0x3D4F ADDWFC _Tick+3, 0 +0x1191 0x0143 MOVLB 3 +0x1192 0x00C0 MOVWF _disp_cnt+3 +;main.c,593 :: off_cnt = Tick + Off_time*1000; +0x1193 0x0140 MOVLB 0 +0x1194 0x0857 MOVF _Off_time, 0 +0x1195 0x00F0 MOVWF R0 +0x1196 0x0858 MOVF _Off_time+1, 0 +0x1197 0x00F1 MOVWF R1 +0x1198 0x0859 MOVF _Off_time+2, 0 +0x1199 0x00F2 MOVWF R2 +0x119A 0x085A MOVF _Off_time+3, 0 +0x119B 0x00F3 MOVWF R3 +0x119C 0x30E8 MOVLW 232 +0x119D 0x00F4 MOVWF R4 +0x119E 0x3003 MOVLW 3 +0x119F 0x00F5 MOVWF R5 +0x11A0 0x01F6 CLRF R6 +0x11A1 0x01F7 CLRF R7 +0x11A2 0x3180 MOVLP 0 +0x11A3 0x21BE CALL _Mul_32x32_U +0x11A4 0x3190 MOVLP 16 +0x11A5 0x0870 MOVF R0, 0 +0x11A6 0x0142 MOVLB 2 +0x11A7 0x074C ADDWF _Tick, 0 +0x11A8 0x00EC MOVWF _off_cnt +0x11A9 0x0871 MOVF R1, 0 +0x11AA 0x3D4D ADDWFC _Tick+1, 0 +0x11AB 0x00ED MOVWF _off_cnt+1 +0x11AC 0x0872 MOVF R2, 0 +0x11AD 0x3D4E ADDWFC _Tick+2, 0 +0x11AE 0x00EE MOVWF _off_cnt+2 +0x11AF 0x0873 MOVF R3, 0 +0x11B0 0x3D4F ADDWFC _Tick+3, 0 +0x11B1 0x00EF MOVWF _off_cnt+3 +;main.c,594 :: } +0x11B2 0x29B6 GOTO L_get_pwr145 +L_get_pwr144: +;main.c,595 :: else oled_start(); +0x11B3 0x3188 MOVLP 8 +0x11B4 0x22D4 CALL _oled_start +0x11B5 0x3190 MOVLP 16 +L_get_pwr145: +;main.c,596 :: } +L_get_pwr143: +;main.c,598 :: if(Reverse >= Forward) +0x11B6 0x3080 MOVLW 128 +0x11B7 0x0143 MOVLB 3 +0x11B8 0x066D XORWF get_pwr_Reverse_L0+3, 0 +0x11B9 0x00F0 MOVWF R0 +0x11BA 0x3080 MOVLW 128 +0x11BB 0x0669 XORWF get_pwr_Forward_L0+3, 0 +0x11BC 0x0270 SUBWF R0, 0 +0x11BD 0x1D03 BTFSS STATUS, 2 +0x11BE 0x29C9 GOTO L__get_pwr353 +0x11BF 0x0868 MOVF get_pwr_Forward_L0+2, 0 +0x11C0 0x026C SUBWF get_pwr_Reverse_L0+2, 0 +0x11C1 0x1D03 BTFSS STATUS, 2 +0x11C2 0x29C9 GOTO L__get_pwr353 +0x11C3 0x0867 MOVF get_pwr_Forward_L0+1, 0 +0x11C4 0x026B SUBWF get_pwr_Reverse_L0+1, 0 +0x11C5 0x1D03 BTFSS STATUS, 2 +0x11C6 0x29C9 GOTO L__get_pwr353 +0x11C7 0x0866 MOVF get_pwr_Forward_L0, 0 +0x11C8 0x026A SUBWF get_pwr_Reverse_L0, 0 +L__get_pwr353: +0x11C9 0x1C03 BTFSS STATUS, 0 +0x11CA 0x29D2 GOTO L_get_pwr146 +;main.c,599 :: Forward = 999; +0x11CB 0x30E7 MOVLW 231 +0x11CC 0x00E6 MOVWF get_pwr_Forward_L0 +0x11CD 0x3003 MOVLW 3 +0x11CE 0x00E7 MOVWF get_pwr_Forward_L0+1 +0x11CF 0x01E8 CLRF get_pwr_Forward_L0+2 +0x11D0 0x01E9 CLRF get_pwr_Forward_L0+3 +0x11D1 0x2A1C GOTO L_get_pwr147 +L_get_pwr146: +;main.c,601 :: Forward = ((Forward + Reverse) * 100) / (Forward - Reverse); +0x11D2 0x086A MOVF get_pwr_Reverse_L0, 0 +0x11D3 0x0766 ADDWF get_pwr_Forward_L0, 0 +0x11D4 0x00F0 MOVWF R0 +0x11D5 0x086B MOVF get_pwr_Reverse_L0+1, 0 +0x11D6 0x3D67 ADDWFC get_pwr_Forward_L0+1, 0 +0x11D7 0x00F1 MOVWF R1 +0x11D8 0x086C MOVF get_pwr_Reverse_L0+2, 0 +0x11D9 0x3D68 ADDWFC get_pwr_Forward_L0+2, 0 +0x11DA 0x00F2 MOVWF R2 +0x11DB 0x086D MOVF get_pwr_Reverse_L0+3, 0 +0x11DC 0x3D69 ADDWFC get_pwr_Forward_L0+3, 0 +0x11DD 0x00F3 MOVWF R3 +0x11DE 0x3064 MOVLW 100 +0x11DF 0x00F4 MOVWF R4 +0x11E0 0x01F5 CLRF R5 +0x11E1 0x01F6 CLRF R6 +0x11E2 0x01F7 CLRF R7 +0x11E3 0x3180 MOVLP 0 +0x11E4 0x21BE CALL _Mul_32x32_U +0x11E5 0x3190 MOVLP 16 +0x11E6 0x0143 MOVLB 3 +0x11E7 0x0866 MOVF get_pwr_Forward_L0, 0 +0x11E8 0x00F4 MOVWF R4 +0x11E9 0x0867 MOVF get_pwr_Forward_L0+1, 0 +0x11EA 0x00F5 MOVWF R5 +0x11EB 0x0868 MOVF get_pwr_Forward_L0+2, 0 +0x11EC 0x00F6 MOVWF R6 +0x11ED 0x0869 MOVF get_pwr_Forward_L0+3, 0 +0x11EE 0x00F7 MOVWF R7 +0x11EF 0x086A MOVF get_pwr_Reverse_L0, 0 +0x11F0 0x02F4 SUBWF R4, 1 +0x11F1 0x086B MOVF get_pwr_Reverse_L0+1, 0 +0x11F2 0x3BF5 SUBWFB R5, 1 +0x11F3 0x086C MOVF get_pwr_Reverse_L0+2, 0 +0x11F4 0x3BF6 SUBWFB R6, 1 +0x11F5 0x086D MOVF get_pwr_Reverse_L0+3, 0 +0x11F6 0x3BF7 SUBWFB R7, 1 +0x11F7 0x3188 MOVLP 8 +0x11F8 0x2220 CALL _Div_32x32_S +0x11F9 0x3190 MOVLP 16 +0x11FA 0x0870 MOVF R0, 0 +0x11FB 0x0143 MOVLB 3 +0x11FC 0x00E6 MOVWF get_pwr_Forward_L0 +0x11FD 0x0871 MOVF R1, 0 +0x11FE 0x00E7 MOVWF get_pwr_Forward_L0+1 +0x11FF 0x0872 MOVF R2, 0 +0x1200 0x00E8 MOVWF get_pwr_Forward_L0+2 +0x1201 0x0873 MOVF R3, 0 +0x1202 0x00E9 MOVWF get_pwr_Forward_L0+3 +;main.c,602 :: if(Forward>999) Forward = 999; +0x1203 0x3080 MOVLW 128 +0x1204 0x00F4 MOVWF R4 +0x1205 0x3080 MOVLW 128 +0x1206 0x0673 XORWF R3, 0 +0x1207 0x0274 SUBWF R4, 0 +0x1208 0x1D03 BTFSS STATUS, 2 +0x1209 0x2A14 GOTO L__get_pwr354 +0x120A 0x0872 MOVF R2, 0 +0x120B 0x3C00 SUBLW 0 +0x120C 0x1D03 BTFSS STATUS, 2 +0x120D 0x2A14 GOTO L__get_pwr354 +0x120E 0x0871 MOVF R1, 0 +0x120F 0x3C03 SUBLW 3 +0x1210 0x1D03 BTFSS STATUS, 2 +0x1211 0x2A14 GOTO L__get_pwr354 +0x1212 0x0870 MOVF R0, 0 +0x1213 0x3CE7 SUBLW 231 +L__get_pwr354: +0x1214 0x1803 BTFSC STATUS, 0 +0x1215 0x2A1C GOTO L_get_pwr148 +0x1216 0x30E7 MOVLW 231 +0x1217 0x00E6 MOVWF get_pwr_Forward_L0 +0x1218 0x3003 MOVLW 3 +0x1219 0x00E7 MOVWF get_pwr_Forward_L0+1 +0x121A 0x01E8 CLRF get_pwr_Forward_L0+2 +0x121B 0x01E9 CLRF get_pwr_Forward_L0+3 +L_get_pwr148: +;main.c,603 :: } +L_get_pwr147: +;main.c,605 :: SWR = Forward; +0x121C 0x0866 MOVF get_pwr_Forward_L0, 0 +0x121D 0x00BB MOVWF _SWR +0x121E 0x0867 MOVF get_pwr_Forward_L0+1, 0 +0x121F 0x00BC MOVWF _SWR+1 +;main.c,606 :: return; +;main.c,607 :: } +L_end_get_pwr: +0x1220 0x0008 RETURN +; end of _get_pwr +_get_swr: +;main.c,609 :: void get_swr(){ +;main.c,610 :: unsigned int tune_cnt = 300; +0x1221 0x302C MOVLW 44 +0x1222 0x0143 MOVLB 3 +0x1223 0x00E2 MOVWF get_swr_tune_cnt_L0 +0x1224 0x3001 MOVLW 1 +0x1225 0x00E3 MOVWF get_swr_tune_cnt_L0+1 +0x1226 0x01E4 CLRF get_swr_PWR_max_L0 +0x1227 0x01E5 CLRF get_swr_PWR_max_L0+1 +;main.c,612 :: get_pwr(); +0x1228 0x20F4 CALL _get_pwr +;main.c,613 :: while(PWRmax_for_start){ // waiting for good power +L_get_swr149: +0x1229 0x3080 MOVLW 128 +0x122A 0x0628 XORWF _PWR+1, 0 +0x122B 0x00F0 MOVWF R0 +0x122C 0x3080 MOVLW 128 +0x122D 0x0141 MOVLB 1 +0x122E 0x0643 XORWF _min_for_start+1, 0 +0x122F 0x0270 SUBWF R0, 0 +0x1230 0x1D03 BTFSS STATUS, 2 +0x1231 0x2A35 GOTO L__get_swr356 +0x1232 0x0842 MOVF _min_for_start, 0 +0x1233 0x0143 MOVLB 3 +0x1234 0x0227 SUBWF _PWR, 0 +L__get_swr356: +0x1235 0x1C03 BTFSS STATUS, 0 +0x1236 0x2A47 GOTO L__get_swr239 +0x1237 0x3080 MOVLW 128 +0x1238 0x0141 MOVLB 1 +0x1239 0x0629 XORWF _max_for_start+1, 0 +0x123A 0x00F0 MOVWF R0 +0x123B 0x3080 MOVLW 128 +0x123C 0x0143 MOVLB 3 +0x123D 0x0628 XORWF _PWR+1, 0 +0x123E 0x0270 SUBWF R0, 0 +0x123F 0x1D03 BTFSS STATUS, 2 +0x1240 0x2A44 GOTO L__get_swr357 +0x1241 0x0827 MOVF _PWR, 0 +0x1242 0x0141 MOVLB 1 +0x1243 0x0228 SUBWF _max_for_start, 0 +L__get_swr357: +0x1244 0x1C03 BTFSS STATUS, 0 +0x1245 0x2A47 GOTO L__get_swr239 +0x1246 0x2A84 GOTO L_get_swr150 +L__get_swr239: +;main.c,614 :: if(B_short){ +0x1247 0x0143 MOVLB 3 +0x1248 0x1F20 BTFSS _B_short, BitPos(_B_short+0) +0x1249 0x2A4F GOTO L_get_swr153 +;main.c,615 :: Btn_short(); +0x124A 0x2000 CALL _Btn_short +;main.c,616 :: SWR = 0; +0x124B 0x0143 MOVLB 3 +0x124C 0x01BB CLRF _SWR +0x124D 0x01BC CLRF _SWR+1 +;main.c,617 :: break; +0x124E 0x2A84 GOTO L_get_swr150 +;main.c,618 :: } +L_get_swr153: +;main.c,619 :: if(B_xlong){ +0x124F 0x1E20 BTFSS _B_xlong, BitPos(_B_xlong+0) +0x1250 0x2A54 GOTO L_get_swr154 +;main.c,621 :: SWR = 0; +0x1251 0x01BB CLRF _SWR +0x1252 0x01BC CLRF _SWR+1 +;main.c,622 :: break; +0x1253 0x2A84 GOTO L_get_swr150 +;main.c,623 :: } +L_get_swr154: +;main.c,625 :: get_pwr(); +0x1254 0x20F4 CALL _get_pwr +;main.c,626 :: if(tune_cnt>0){ +0x1255 0x0863 MOVF get_swr_tune_cnt_L0+1, 0 +0x1256 0x3C00 SUBLW 0 +0x1257 0x1D03 BTFSS STATUS, 2 +0x1258 0x2A5B GOTO L__get_swr358 +0x1259 0x0862 MOVF get_swr_tune_cnt_L0, 0 +0x125A 0x3C00 SUBLW 0 +L__get_swr358: +0x125B 0x1803 BTFSC STATUS, 0 +0x125C 0x2A6E GOTO L_get_swr155 +;main.c,627 :: tune_cnt --; +0x125D 0x3001 MOVLW 1 +0x125E 0x02E2 SUBWF get_swr_tune_cnt_L0, 1 +0x125F 0x3000 MOVLW 0 +0x1260 0x3BE3 SUBWFB get_swr_tune_cnt_L0+1, 1 +;main.c,628 :: if(PWR>PWR_max) +0x1261 0x0828 MOVF _PWR+1, 0 +0x1262 0x0265 SUBWF get_swr_PWR_max_L0+1, 0 +0x1263 0x1D03 BTFSS STATUS, 2 +0x1264 0x2A67 GOTO L__get_swr359 +0x1265 0x0827 MOVF _PWR, 0 +0x1266 0x0264 SUBWF get_swr_PWR_max_L0, 0 +L__get_swr359: +0x1267 0x1803 BTFSC STATUS, 0 +0x1268 0x2A6D GOTO L_get_swr156 +;main.c,629 :: PWR_max = PWR; +0x1269 0x0827 MOVF _PWR, 0 +0x126A 0x00E4 MOVWF get_swr_PWR_max_L0 +0x126B 0x0828 MOVF _PWR+1, 0 +0x126C 0x00E5 MOVWF get_swr_PWR_max_L0+1 +L_get_swr156: +;main.c,630 :: } +0x126D 0x2A83 GOTO L_get_swr157 +L_get_swr155: +;main.c,632 :: draw_power(PWR_max); +0x126E 0x0864 MOVF get_swr_PWR_max_L0, 0 +0x126F 0x00E6 MOVWF FARG_draw_power_p +0x1270 0x0865 MOVF get_swr_PWR_max_L0+1, 0 +0x1271 0x00E7 MOVWF FARG_draw_power_p+1 +0x1272 0x2075 CALL _draw_power +;main.c,633 :: PWR_max = 0; +0x1273 0x0143 MOVLB 3 +0x1274 0x01E4 CLRF get_swr_PWR_max_L0 +0x1275 0x01E5 CLRF get_swr_PWR_max_L0+1 +;main.c,634 :: tune_cnt = 300; +0x1276 0x302C MOVLW 44 +0x1277 0x00E2 MOVWF get_swr_tune_cnt_L0 +0x1278 0x3001 MOVLW 1 +0x1279 0x00E3 MOVWF get_swr_tune_cnt_L0+1 +;main.c,635 :: Delay_ms(1); +0x127A 0x300B MOVLW 11 +0x127B 0x00FC MOVWF R12 +0x127C 0x3062 MOVLW 98 +0x127D 0x00FD MOVWF R13 +L_get_swr158: +0x127E 0x0BFD DECFSZ R13, 1 +0x127F 0x2A7E GOTO L_get_swr158 +0x1280 0x0BFC DECFSZ R12, 1 +0x1281 0x2A7E GOTO L_get_swr158 +0x1282 0x0000 NOP +;main.c,636 :: } +L_get_swr157: +;main.c,637 :: } +0x1283 0x2A29 GOTO L_get_swr149 +L_get_swr150: +;main.c,639 :: return; +;main.c,640 :: } +L_end_get_swr: +0x1284 0x0008 RETURN +; end of _get_swr +_Div_16x16_S: +;__Lib_Math.c,475 :: +;__Lib_Math.c,483 :: +0x1285 0x0874 MOVF R4, 0 +0x1286 0x3A00 XORLW 0 +0x1287 0x1D03 BTFSS STATUS, 2 +0x1288 0x2A92 GOTO L_Div_16x16_S0 +;__Lib_Math.c,484 :: +0x1289 0x0875 MOVF R5, 0 +0x128A 0x3A00 XORLW 0 +0x128B 0x1D03 BTFSS STATUS, 2 +0x128C 0x2A92 GOTO L_Div_16x16_S1 +;__Lib_Math.c,485 :: +0x128D 0x30FF MOVLW 255 +0x128E 0x00F0 MOVWF R0 +;__Lib_Math.c,486 :: +0x128F 0x307F MOVLW 127 +0x1290 0x00F1 MOVWF R1 +;__Lib_Math.c,487 :: +0x1291 0x2AEC GOTO L_end_Div_16x16_S +;__Lib_Math.c,488 :: +L_Div_16x16_S1: +L_Div_16x16_S0: +;__Lib_Math.c,491 :: +0x1292 0x0140 MOVLB 0 +;__Lib_Math.c,492 :: +0x1293 0x01FD CLRF R13 +;__Lib_Math.c,493 :: +0x1294 0x01F9 CLRF R9 +;__Lib_Math.c,494 :: +0x1295 0x01F8 CLRF R8 +;__Lib_Math.c,495 :: +0x1296 0x0871 MOVF R1, 0 +;__Lib_Math.c,496 :: +0x1297 0x0470 IORWF R0, 0 +;__Lib_Math.c,497 :: +0x1298 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,498 :: +0x1299 0x3400 RETLW 0 +;__Lib_Math.c,500 :: +0x129A 0x0871 MOVF R1, 0 +;__Lib_Math.c,501 :: +0x129B 0x0675 XORWF R5, 0 +;__Lib_Math.c,502 :: +0x129C 0x00FA MOVWF R10 +;__Lib_Math.c,503 :: +0x129D 0x1BFA BTFSC R10, 7 +;__Lib_Math.c,504 :: +0x129E 0x09FD COMF R13, 1 +;__Lib_Math.c,506 :: +0x129F 0x01FB CLRF R11 +;__Lib_Math.c,508 :: +0x12A0 0x1FF5 BTFSS R5, 7 +;__Lib_Math.c,509 :: +0x12A1 0x2AA7 GOTO $+6 +;__Lib_Math.c,511 :: +0x12A2 0x09F4 COMF R4, 1 +;__Lib_Math.c,512 :: +0x12A3 0x09F5 COMF R5, 1 +;__Lib_Math.c,513 :: +0x12A4 0x0AF4 INCF R4, 1 +;__Lib_Math.c,514 :: +0x12A5 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,515 :: +0x12A6 0x0AF5 INCF R5, 1 +;__Lib_Math.c,517 :: +0x12A7 0x1FF1 BTFSS R1, 7 +;__Lib_Math.c,518 :: +0x12A8 0x2AAE GOTO $+6 +;__Lib_Math.c,520 :: +0x12A9 0x09F0 COMF R0, 1 +;__Lib_Math.c,521 :: +0x12AA 0x09F1 COMF R1, 1 +;__Lib_Math.c,522 :: +0x12AB 0x0AF0 INCF R0, 1 +;__Lib_Math.c,523 :: +0x12AC 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,524 :: +0x12AD 0x0AF1 INCF R1, 1 +;__Lib_Math.c,526 :: +0x12AE 0x0871 MOVF R1, 0 +;__Lib_Math.c,527 :: +0x12AF 0x0475 IORWF R5, 0 +;__Lib_Math.c,528 :: +0x12B0 0x00FA MOVWF R10 +;__Lib_Math.c,529 :: +0x12B1 0x1BFA BTFSC R10, 7 +;__Lib_Math.c,530 :: +0x12B2 0x2AC3 GOTO $+17 +;__Lib_Math.c,532 :: +0x12B3 0x3188 MOVLP 8 +0x12B4 0x278C CALL _Div_16x16_S_L +0x12B5 0x3190 MOVLP 16 +;__Lib_Math.c,534 :: +0x12B6 0x187B BTFSC R11, 0 +;__Lib_Math.c,535 :: +0x12B7 0x2AD8 GOTO $+33 +;__Lib_Math.c,537 :: +0x12B8 0x1FFD BTFSS R13, 7 +;__Lib_Math.c,538 :: +0x12B9 0x3400 RETLW 0 +;__Lib_Math.c,540 :: +0x12BA 0x09F0 COMF R0, 1 +;__Lib_Math.c,541 :: +0x12BB 0x09F1 COMF R1, 1 +;__Lib_Math.c,542 :: +0x12BC 0x0AF0 INCF R0, 1 +;__Lib_Math.c,543 :: +0x12BD 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,544 :: +0x12BE 0x0AF1 INCF R1, 1 +;__Lib_Math.c,546 :: +0x12BF 0x09F8 COMF R8, 1 +;__Lib_Math.c,547 :: +0x12C0 0x09F9 COMF R9, 1 +;__Lib_Math.c,548 :: +0x12C1 0x0AF8 INCF R8, 1 +;__Lib_Math.c,549 :: +0x12C2 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,550 :: +0x12C3 0x0AF9 INCF R9, 1 +;__Lib_Math.c,552 :: +0x12C4 0x3400 RETLW 0 +;__Lib_Math.c,554 :: +0x12C5 0x1FF5 BTFSS R5, 7 +;__Lib_Math.c,555 :: +0x12C6 0x2AD4 GOTO $+14 +;__Lib_Math.c,556 :: +0x12C7 0x1BF1 BTFSC R1, 7 +;__Lib_Math.c,557 :: +0x12C8 0x2AD0 GOTO $+8 +;__Lib_Math.c,558 :: +0x12C9 0x0871 MOVF R1, 0 +;__Lib_Math.c,559 :: +0x12CA 0x00F9 MOVWF R9 +;__Lib_Math.c,560 :: +0x12CB 0x0870 MOVF R0, 0 +;__Lib_Math.c,561 :: +0x12CC 0x00F8 MOVWF R8 +;__Lib_Math.c,562 :: +0x12CD 0x01F1 CLRF R1 +;__Lib_Math.c,563 :: +0x12CE 0x01F0 CLRF R0 +;__Lib_Math.c,564 :: +0x12CF 0x2AB8 GOTO $-23 +;__Lib_Math.c,565 :: +0x12D0 0x01F1 CLRF R1 +;__Lib_Math.c,566 :: +0x12D1 0x01F0 CLRF R0 +;__Lib_Math.c,567 :: +0x12D2 0x0AF0 INCF R0, 1 +;__Lib_Math.c,568 :: +0x12D3 0x3400 RETLW 0 +;__Lib_Math.c,570 :: +0x12D4 0x09F1 COMF R1, 1 +;__Lib_Math.c,571 :: +0x12D5 0x09F0 COMF R0, 1 +;__Lib_Math.c,572 :: +0x12D6 0x0AFB INCF R11, 1 +;__Lib_Math.c,573 :: +0x12D7 0x2AB5 GOTO $-34 +;__Lib_Math.c,575 :: +0x12D8 0x0AF8 INCF R8, 1 +;__Lib_Math.c,576 :: +0x12D9 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,577 :: +0x12DA 0x0AF9 INCF R9, 1 +;__Lib_Math.c,578 :: +0x12DB 0x0874 MOVF R4, 0 +;__Lib_Math.c,579 :: +0x12DC 0x0278 SUBWF R8, 0 +;__Lib_Math.c,580 :: +0x12DD 0x1D03 BTFSS STATUS, 2 +;__Lib_Math.c,581 :: +0x12DE 0x2AB8 GOTO $-38 +;__Lib_Math.c,582 :: +0x12DF 0x0875 MOVF R5, 0 +;__Lib_Math.c,583 :: +0x12E0 0x0279 SUBWF R9, 0 +;__Lib_Math.c,584 :: +0x12E1 0x1D03 BTFSS STATUS, 2 +;__Lib_Math.c,585 :: +0x12E2 0x2AB8 GOTO $-42 +;__Lib_Math.c,586 :: +0x12E3 0x01F9 CLRF R9 +;__Lib_Math.c,587 :: +0x12E4 0x01F8 CLRF R8 +;__Lib_Math.c,588 :: +0x12E5 0x0AF0 INCF R0, 1 +;__Lib_Math.c,589 :: +0x12E6 0x1903 BTFSC STATUS, 2 +;__Lib_Math.c,590 :: +0x12E7 0x0AF1 INCF R1, 1 +;__Lib_Math.c,591 :: +0x12E8 0x1FF1 BTFSS R1, 7 +;__Lib_Math.c,592 :: +0x12E9 0x2AB8 GOTO $-49 +;__Lib_Math.c,593 :: +0x12EA 0x0000 NOP +;__Lib_Math.c,594 :: +0x12EB 0x34FF RETLW 255 +;__Lib_Math.c,596 :: +L_end_Div_16x16_S: +0x12EC 0x0008 RETURN +; end of _Div_16x16_S +_coarse_cap: +;main.c,649 :: void coarse_cap() { +;main.c,650 :: char step = 3; +0x12ED 0x3003 MOVLW 3 +0x12EE 0x0143 MOVLB 3 +0x12EF 0x00E1 MOVWF coarse_cap_step_L0 +;main.c,654 :: cap = 0; +0x12F0 0x0141 MOVLB 1 +0x12F1 0x01EF CLRF _cap +;main.c,655 :: Relay_set(ind, cap, SW); +0x12F2 0x0142 MOVLB 2 +0x12F3 0x083F MOVF _ind, 0 +0x12F4 0x0144 MOVLB 4 +0x12F5 0x00A0 MOVWF FARG_Relay_set_L +0x12F6 0x01A1 CLRF FARG_Relay_set_C +0x12F7 0x0141 MOVLB 1 +0x12F8 0x086E MOVF _SW, 0 +0x12F9 0x0144 MOVLB 4 +0x12FA 0x00A2 MOVWF FARG_Relay_set_I +0x12FB 0x3180 MOVLP 0 +0x12FC 0x2621 CALL _Relay_set +0x12FD 0x3190 MOVLP 16 +;main.c,656 :: get_swr(); +0x12FE 0x2221 CALL _get_swr +;main.c,657 :: min_swr = SWR + SWR/20; +0x12FF 0x3014 MOVLW 20 +0x1300 0x00F4 MOVWF R4 +0x1301 0x3000 MOVLW 0 +0x1302 0x00F5 MOVWF R5 +0x1303 0x0143 MOVLB 3 +0x1304 0x083B MOVF _SWR, 0 +0x1305 0x00F0 MOVWF R0 +0x1306 0x083C MOVF _SWR+1, 0 +0x1307 0x00F1 MOVWF R1 +0x1308 0x2285 CALL _Div_16x16_S +0x1309 0x0870 MOVF R0, 0 +0x130A 0x0143 MOVLB 3 +0x130B 0x073B ADDWF _SWR, 0 +0x130C 0x00DF MOVWF coarse_cap_min_swr_L0 +0x130D 0x0871 MOVF R1, 0 +0x130E 0x3D3C ADDWFC _SWR+1, 0 +0x130F 0x00E0 MOVWF coarse_cap_min_swr_L0+1 +;main.c,658 :: for(count=step; count<=31;) { +0x1310 0x0861 MOVF coarse_cap_step_L0, 0 +0x1311 0x00DE MOVWF coarse_cap_count_L0 +L_coarse_cap160: +0x1312 0x085E MOVF coarse_cap_count_L0, 0 +0x1313 0x3C1F SUBLW 31 +0x1314 0x1C03 BTFSS STATUS, 0 +0x1315 0x2B6E GOTO L_coarse_cap161 +;main.c,659 :: Relay_set(ind, count, SW); +0x1316 0x0142 MOVLB 2 +0x1317 0x083F MOVF _ind, 0 +0x1318 0x0144 MOVLB 4 +0x1319 0x00A0 MOVWF FARG_Relay_set_L +0x131A 0x0143 MOVLB 3 +0x131B 0x085E MOVF coarse_cap_count_L0, 0 +0x131C 0x0144 MOVLB 4 +0x131D 0x00A1 MOVWF FARG_Relay_set_C +0x131E 0x0141 MOVLB 1 +0x131F 0x086E MOVF _SW, 0 +0x1320 0x0144 MOVLB 4 +0x1321 0x00A2 MOVWF FARG_Relay_set_I +0x1322 0x3180 MOVLP 0 +0x1323 0x2621 CALL _Relay_set +0x1324 0x3190 MOVLP 16 +;main.c,660 :: get_swr(); +0x1325 0x2221 CALL _get_swr +;main.c,661 :: if(SWR < min_swr) { +0x1326 0x3080 MOVLW 128 +0x1327 0x0143 MOVLB 3 +0x1328 0x063C XORWF _SWR+1, 0 +0x1329 0x00F0 MOVWF R0 +0x132A 0x3080 MOVLW 128 +0x132B 0x0660 XORWF coarse_cap_min_swr_L0+1, 0 +0x132C 0x0270 SUBWF R0, 0 +0x132D 0x1D03 BTFSS STATUS, 2 +0x132E 0x2B31 GOTO L__coarse_cap362 +0x132F 0x085F MOVF coarse_cap_min_swr_L0, 0 +0x1330 0x023B SUBWF _SWR, 0 +L__coarse_cap362: +0x1331 0x1803 BTFSC STATUS, 0 +0x1332 0x2B6C GOTO L_coarse_cap163 +;main.c,662 :: min_swr = SWR + SWR/20; +0x1333 0x3014 MOVLW 20 +0x1334 0x00F4 MOVWF R4 +0x1335 0x3000 MOVLW 0 +0x1336 0x00F5 MOVWF R5 +0x1337 0x083B MOVF _SWR, 0 +0x1338 0x00F0 MOVWF R0 +0x1339 0x083C MOVF _SWR+1, 0 +0x133A 0x00F1 MOVWF R1 +0x133B 0x2285 CALL _Div_16x16_S +0x133C 0x0870 MOVF R0, 0 +0x133D 0x0143 MOVLB 3 +0x133E 0x073B ADDWF _SWR, 0 +0x133F 0x00DF MOVWF coarse_cap_min_swr_L0 +0x1340 0x0871 MOVF R1, 0 +0x1341 0x3D3C ADDWFC _SWR+1, 0 +0x1342 0x00E0 MOVWF coarse_cap_min_swr_L0+1 +;main.c,663 :: cap = count; +0x1343 0x085E MOVF coarse_cap_count_L0, 0 +0x1344 0x0141 MOVLB 1 +0x1345 0x00EF MOVWF _cap +;main.c,664 :: step_cap = step; +0x1346 0x0143 MOVLB 3 +0x1347 0x0861 MOVF coarse_cap_step_L0, 0 +0x1348 0x0141 MOVLB 1 +0x1349 0x00ED MOVWF _step_cap +;main.c,665 :: if(SWR<120) break; +0x134A 0x3080 MOVLW 128 +0x134B 0x0143 MOVLB 3 +0x134C 0x063C XORWF _SWR+1, 0 +0x134D 0x00F0 MOVWF R0 +0x134E 0x3080 MOVLW 128 +0x134F 0x0270 SUBWF R0, 0 +0x1350 0x1D03 BTFSS STATUS, 2 +0x1351 0x2B54 GOTO L__coarse_cap363 +0x1352 0x3078 MOVLW 120 +0x1353 0x023B SUBWF _SWR, 0 +L__coarse_cap363: +0x1354 0x1803 BTFSC STATUS, 0 +0x1355 0x2B57 GOTO L_coarse_cap164 +0x1356 0x2B6E GOTO L_coarse_cap161 +L_coarse_cap164: +;main.c,666 :: count += step; +0x1357 0x0861 MOVF coarse_cap_step_L0, 0 +0x1358 0x075E ADDWF coarse_cap_count_L0, 0 +0x1359 0x00F1 MOVWF R1 +0x135A 0x0871 MOVF R1, 0 +0x135B 0x00DE MOVWF coarse_cap_count_L0 +;main.c,667 :: if(count==9) count = 8; +0x135C 0x0871 MOVF R1, 0 +0x135D 0x3A09 XORLW 9 +0x135E 0x1D03 BTFSS STATUS, 2 +0x135F 0x2B63 GOTO L_coarse_cap165 +0x1360 0x3008 MOVLW 8 +0x1361 0x00DE MOVWF coarse_cap_count_L0 +0x1362 0x2B6B GOTO L_coarse_cap166 +L_coarse_cap165: +;main.c,668 :: else if(count==17) {count = 16; step = 4;} +0x1363 0x085E MOVF coarse_cap_count_L0, 0 +0x1364 0x3A11 XORLW 17 +0x1365 0x1D03 BTFSS STATUS, 2 +0x1366 0x2B6B GOTO L_coarse_cap167 +0x1367 0x3010 MOVLW 16 +0x1368 0x00DE MOVWF coarse_cap_count_L0 +0x1369 0x3004 MOVLW 4 +0x136A 0x00E1 MOVWF coarse_cap_step_L0 +L_coarse_cap167: +L_coarse_cap166: +;main.c,669 :: } +0x136B 0x2B6D GOTO L_coarse_cap168 +L_coarse_cap163: +;main.c,670 :: else break; +0x136C 0x2B6E GOTO L_coarse_cap161 +L_coarse_cap168: +;main.c,671 :: } +0x136D 0x2B12 GOTO L_coarse_cap160 +L_coarse_cap161: +;main.c,672 :: Relay_set(ind, cap, SW); +0x136E 0x0142 MOVLB 2 +0x136F 0x083F MOVF _ind, 0 +0x1370 0x0144 MOVLB 4 +0x1371 0x00A0 MOVWF FARG_Relay_set_L +0x1372 0x0141 MOVLB 1 +0x1373 0x086F MOVF _cap, 0 +0x1374 0x0144 MOVLB 4 +0x1375 0x00A1 MOVWF FARG_Relay_set_C +0x1376 0x0141 MOVLB 1 +0x1377 0x086E MOVF _SW, 0 +0x1378 0x0144 MOVLB 4 +0x1379 0x00A2 MOVWF FARG_Relay_set_I +0x137A 0x3180 MOVLP 0 +0x137B 0x2621 CALL _Relay_set +0x137C 0x3190 MOVLP 16 +;main.c,673 :: return; +;main.c,674 :: } +L_end_coarse_cap: +0x137D 0x0008 RETURN +; end of _coarse_cap +_sharp_cap: +;main.c,710 :: void sharp_cap() { +;main.c,713 :: range = step_cap; +0x137E 0x0141 MOVLB 1 +0x137F 0x086D MOVF _step_cap, 0 +0x1380 0x0143 MOVLB 3 +0x1381 0x00D8 MOVWF sharp_cap_range_L0 +;main.c,715 :: max_range = cap + range; +0x1382 0x0141 MOVLB 1 +0x1383 0x086D MOVF _step_cap, 0 +0x1384 0x076F ADDWF _cap, 0 +0x1385 0x00F1 MOVWF R1 +0x1386 0x0871 MOVF R1, 0 +0x1387 0x0143 MOVLB 3 +0x1388 0x00DA MOVWF sharp_cap_max_range_L0 +;main.c,716 :: if(max_range>31) max_range = 31; +0x1389 0x0871 MOVF R1, 0 +0x138A 0x3C1F SUBLW 31 +0x138B 0x1803 BTFSC STATUS, 0 +0x138C 0x2B8F GOTO L_sharp_cap179 +0x138D 0x301F MOVLW 31 +0x138E 0x00DA MOVWF sharp_cap_max_range_L0 +L_sharp_cap179: +;main.c,717 :: if(cap>range) min_range = cap - range; else min_range = 0; +0x138F 0x0141 MOVLB 1 +0x1390 0x086F MOVF _cap, 0 +0x1391 0x0143 MOVLB 3 +0x1392 0x0258 SUBWF sharp_cap_range_L0, 0 +0x1393 0x1803 BTFSC STATUS, 0 +0x1394 0x2B9B GOTO L_sharp_cap180 +0x1395 0x0858 MOVF sharp_cap_range_L0, 0 +0x1396 0x0141 MOVLB 1 +0x1397 0x026F SUBWF _cap, 0 +0x1398 0x0143 MOVLB 3 +0x1399 0x00DB MOVWF sharp_cap_min_range_L0 +0x139A 0x2B9C GOTO L_sharp_cap181 +L_sharp_cap180: +0x139B 0x01DB CLRF sharp_cap_min_range_L0 +L_sharp_cap181: +;main.c,718 :: cap = min_range; +0x139C 0x085B MOVF sharp_cap_min_range_L0, 0 +0x139D 0x0141 MOVLB 1 +0x139E 0x00EF MOVWF _cap +;main.c,719 :: Relay_set(ind, cap, SW); +0x139F 0x0142 MOVLB 2 +0x13A0 0x083F MOVF _ind, 0 +0x13A1 0x0144 MOVLB 4 +0x13A2 0x00A0 MOVWF FARG_Relay_set_L +0x13A3 0x0143 MOVLB 3 +0x13A4 0x085B MOVF sharp_cap_min_range_L0, 0 +0x13A5 0x0144 MOVLB 4 +0x13A6 0x00A1 MOVWF FARG_Relay_set_C +0x13A7 0x0141 MOVLB 1 +0x13A8 0x086E MOVF _SW, 0 +0x13A9 0x0144 MOVLB 4 +0x13AA 0x00A2 MOVWF FARG_Relay_set_I +0x13AB 0x3180 MOVLP 0 +0x13AC 0x2621 CALL _Relay_set +0x13AD 0x3190 MOVLP 16 +;main.c,720 :: get_swr(); +0x13AE 0x2221 CALL _get_swr +;main.c,721 :: if(SWR==0) return; +0x13AF 0x3000 MOVLW 0 +0x13B0 0x0143 MOVLB 3 +0x13B1 0x063C XORWF _SWR+1, 0 +0x13B2 0x1D03 BTFSS STATUS, 2 +0x13B3 0x2BB6 GOTO L__sharp_cap368 +0x13B4 0x3000 MOVLW 0 +0x13B5 0x063B XORWF _SWR, 0 +L__sharp_cap368: +0x13B6 0x1D03 BTFSS STATUS, 2 +0x13B7 0x2BB9 GOTO L_sharp_cap182 +0x13B8 0x2C3E GOTO L_end_sharp_cap +L_sharp_cap182: +;main.c,722 :: min_SWR = SWR; +0x13B9 0x083B MOVF _SWR, 0 +0x13BA 0x00DC MOVWF sharp_cap_min_swr_L0 +0x13BB 0x083C MOVF _SWR+1, 0 +0x13BC 0x00DD MOVWF sharp_cap_min_swr_L0+1 +;main.c,723 :: for(count=min_range+1; count<=max_range; count++) { +0x13BD 0x0A5B INCF sharp_cap_min_range_L0, 0 +0x13BE 0x00D9 MOVWF sharp_cap_count_L0 +L_sharp_cap183: +0x13BF 0x0859 MOVF sharp_cap_count_L0, 0 +0x13C0 0x025A SUBWF sharp_cap_max_range_L0, 0 +0x13C1 0x1C03 BTFSS STATUS, 0 +0x13C2 0x2C2F GOTO L_sharp_cap184 +;main.c,724 :: Relay_set(ind, count, SW); +0x13C3 0x0142 MOVLB 2 +0x13C4 0x083F MOVF _ind, 0 +0x13C5 0x0144 MOVLB 4 +0x13C6 0x00A0 MOVWF FARG_Relay_set_L +0x13C7 0x0143 MOVLB 3 +0x13C8 0x0859 MOVF sharp_cap_count_L0, 0 +0x13C9 0x0144 MOVLB 4 +0x13CA 0x00A1 MOVWF FARG_Relay_set_C +0x13CB 0x0141 MOVLB 1 +0x13CC 0x086E MOVF _SW, 0 +0x13CD 0x0144 MOVLB 4 +0x13CE 0x00A2 MOVWF FARG_Relay_set_I +0x13CF 0x3180 MOVLP 0 +0x13D0 0x2621 CALL _Relay_set +0x13D1 0x3190 MOVLP 16 +;main.c,725 :: get_swr(); +0x13D2 0x2221 CALL _get_swr +;main.c,726 :: if(SWR==0) return; +0x13D3 0x3000 MOVLW 0 +0x13D4 0x0143 MOVLB 3 +0x13D5 0x063C XORWF _SWR+1, 0 +0x13D6 0x1D03 BTFSS STATUS, 2 +0x13D7 0x2BDA GOTO L__sharp_cap369 +0x13D8 0x3000 MOVLW 0 +0x13D9 0x063B XORWF _SWR, 0 +L__sharp_cap369: +0x13DA 0x1D03 BTFSS STATUS, 2 +0x13DB 0x2BDD GOTO L_sharp_cap186 +0x13DC 0x2C3E GOTO L_end_sharp_cap +L_sharp_cap186: +;main.c,727 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } +0x13DD 0x3080 MOVLW 128 +0x13DE 0x063C XORWF _SWR+1, 0 +0x13DF 0x00F0 MOVWF R0 +0x13E0 0x3080 MOVLW 128 +0x13E1 0x065D XORWF sharp_cap_min_swr_L0+1, 0 +0x13E2 0x0270 SUBWF R0, 0 +0x13E3 0x1D03 BTFSS STATUS, 2 +0x13E4 0x2BE7 GOTO L__sharp_cap370 +0x13E5 0x085C MOVF sharp_cap_min_swr_L0, 0 +0x13E6 0x023B SUBWF _SWR, 0 +L__sharp_cap370: +0x13E7 0x1C03 BTFSS STATUS, 0 +0x13E8 0x2BF3 GOTO L_sharp_cap187 +0x13E9 0x3068 MOVLW 104 +0x13EA 0x00FC MOVWF R12 +0x13EB 0x30E4 MOVLW 228 +0x13EC 0x00FD MOVWF R13 +L_sharp_cap188: +0x13ED 0x0BFD DECFSZ R13, 1 +0x13EE 0x2BED GOTO L_sharp_cap188 +0x13EF 0x0BFC DECFSZ R12, 1 +0x13F0 0x2BED GOTO L_sharp_cap188 +0x13F1 0x0000 NOP +0x13F2 0x2221 CALL _get_swr +L_sharp_cap187: +;main.c,728 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } +0x13F3 0x3080 MOVLW 128 +0x13F4 0x0143 MOVLB 3 +0x13F5 0x063C XORWF _SWR+1, 0 +0x13F6 0x00F0 MOVWF R0 +0x13F7 0x3080 MOVLW 128 +0x13F8 0x065D XORWF sharp_cap_min_swr_L0+1, 0 +0x13F9 0x0270 SUBWF R0, 0 +0x13FA 0x1D03 BTFSS STATUS, 2 +0x13FB 0x2BFE GOTO L__sharp_cap371 +0x13FC 0x085C MOVF sharp_cap_min_swr_L0, 0 +0x13FD 0x023B SUBWF _SWR, 0 +L__sharp_cap371: +0x13FE 0x1C03 BTFSS STATUS, 0 +0x13FF 0x2C0A GOTO L_sharp_cap189 +0x1400 0x3068 MOVLW 104 +0x1401 0x00FC MOVWF R12 +0x1402 0x30E4 MOVLW 228 +0x1403 0x00FD MOVWF R13 +L_sharp_cap190: +0x1404 0x0BFD DECFSZ R13, 1 +0x1405 0x2C04 GOTO L_sharp_cap190 +0x1406 0x0BFC DECFSZ R12, 1 +0x1407 0x2C04 GOTO L_sharp_cap190 +0x1408 0x0000 NOP +0x1409 0x2221 CALL _get_swr +L_sharp_cap189: +;main.c,729 :: if(SWR < min_SWR) { +0x140A 0x3080 MOVLW 128 +0x140B 0x0143 MOVLB 3 +0x140C 0x063C XORWF _SWR+1, 0 +0x140D 0x00F0 MOVWF R0 +0x140E 0x3080 MOVLW 128 +0x140F 0x065D XORWF sharp_cap_min_swr_L0+1, 0 +0x1410 0x0270 SUBWF R0, 0 +0x1411 0x1D03 BTFSS STATUS, 2 +0x1412 0x2C15 GOTO L__sharp_cap372 +0x1413 0x085C MOVF sharp_cap_min_swr_L0, 0 +0x1414 0x023B SUBWF _SWR, 0 +L__sharp_cap372: +0x1415 0x1803 BTFSC STATUS, 0 +0x1416 0x2C2C GOTO L_sharp_cap191 +;main.c,730 :: min_SWR = SWR; +0x1417 0x083B MOVF _SWR, 0 +0x1418 0x00DC MOVWF sharp_cap_min_swr_L0 +0x1419 0x083C MOVF _SWR+1, 0 +0x141A 0x00DD MOVWF sharp_cap_min_swr_L0+1 +;main.c,731 :: cap = count; +0x141B 0x0859 MOVF sharp_cap_count_L0, 0 +0x141C 0x0141 MOVLB 1 +0x141D 0x00EF MOVWF _cap +;main.c,732 :: if(SWR<120) break; +0x141E 0x3080 MOVLW 128 +0x141F 0x0143 MOVLB 3 +0x1420 0x063C XORWF _SWR+1, 0 +0x1421 0x00F0 MOVWF R0 +0x1422 0x3080 MOVLW 128 +0x1423 0x0270 SUBWF R0, 0 +0x1424 0x1D03 BTFSS STATUS, 2 +0x1425 0x2C28 GOTO L__sharp_cap373 +0x1426 0x3078 MOVLW 120 +0x1427 0x023B SUBWF _SWR, 0 +L__sharp_cap373: +0x1428 0x1803 BTFSC STATUS, 0 +0x1429 0x2C2B GOTO L_sharp_cap192 +0x142A 0x2C2F GOTO L_sharp_cap184 +L_sharp_cap192: +;main.c,733 :: } +0x142B 0x2C2D GOTO L_sharp_cap193 +L_sharp_cap191: +;main.c,734 :: else break; +0x142C 0x2C2F GOTO L_sharp_cap184 +L_sharp_cap193: +;main.c,723 :: for(count=min_range+1; count<=max_range; count++) { +0x142D 0x0AD9 INCF sharp_cap_count_L0, 1 +;main.c,735 :: } +0x142E 0x2BBF GOTO L_sharp_cap183 +L_sharp_cap184: +;main.c,736 :: Relay_set(ind, cap, SW); +0x142F 0x0142 MOVLB 2 +0x1430 0x083F MOVF _ind, 0 +0x1431 0x0144 MOVLB 4 +0x1432 0x00A0 MOVWF FARG_Relay_set_L +0x1433 0x0141 MOVLB 1 +0x1434 0x086F MOVF _cap, 0 +0x1435 0x0144 MOVLB 4 +0x1436 0x00A1 MOVWF FARG_Relay_set_C +0x1437 0x0141 MOVLB 1 +0x1438 0x086E MOVF _SW, 0 +0x1439 0x0144 MOVLB 4 +0x143A 0x00A2 MOVWF FARG_Relay_set_I +0x143B 0x3180 MOVLP 0 +0x143C 0x2621 CALL _Relay_set +0x143D 0x3190 MOVLP 16 +;main.c,737 :: return; +;main.c,738 :: } +L_end_sharp_cap: +0x143E 0x0008 RETURN +; end of _sharp_cap +_coarse_tune: +;main.c,676 :: void coarse_tune() { +;main.c,677 :: char step = 3; +0x143F 0x3003 MOVLW 3 +0x1440 0x0143 MOVLB 3 +0x1441 0x00DD MOVWF coarse_tune_step_L0 +;main.c,682 :: mem_cap = 0; +0x1442 0x01D9 CLRF coarse_tune_mem_cap_L0 +;main.c,683 :: step_ind = step; +0x1443 0x085D MOVF coarse_tune_step_L0, 0 +0x1444 0x0141 MOVLB 1 +0x1445 0x00EC MOVWF _step_ind +;main.c,684 :: mem_step_cap = 3; +0x1446 0x3003 MOVLW 3 +0x1447 0x0143 MOVLB 3 +0x1448 0x00DA MOVWF coarse_tune_mem_step_cap_L0 +;main.c,685 :: min_swr = SWR + SWR/20; +0x1449 0x3014 MOVLW 20 +0x144A 0x00F4 MOVWF R4 +0x144B 0x3000 MOVLW 0 +0x144C 0x00F5 MOVWF R5 +0x144D 0x083B MOVF _SWR, 0 +0x144E 0x00F0 MOVWF R0 +0x144F 0x083C MOVF _SWR+1, 0 +0x1450 0x00F1 MOVWF R1 +0x1451 0x2285 CALL _Div_16x16_S +0x1452 0x0870 MOVF R0, 0 +0x1453 0x0143 MOVLB 3 +0x1454 0x073B ADDWF _SWR, 0 +0x1455 0x00DB MOVWF coarse_tune_min_swr_L0 +0x1456 0x0871 MOVF R1, 0 +0x1457 0x3D3C ADDWFC _SWR+1, 0 +0x1458 0x00DC MOVWF coarse_tune_min_swr_L0+1 +;main.c,686 :: for(count=step; count<=31;) { +0x1459 0x085D MOVF coarse_tune_step_L0, 0 +0x145A 0x00D8 MOVWF coarse_tune_count_L0 +L_coarse_tune169: +0x145B 0x0858 MOVF coarse_tune_count_L0, 0 +0x145C 0x3C1F SUBLW 31 +0x145D 0x1C03 BTFSS STATUS, 0 +0x145E 0x2CBC GOTO L_coarse_tune170 +;main.c,687 :: Relay_set(count, cap, SW); +0x145F 0x0858 MOVF coarse_tune_count_L0, 0 +0x1460 0x0144 MOVLB 4 +0x1461 0x00A0 MOVWF FARG_Relay_set_L +0x1462 0x0141 MOVLB 1 +0x1463 0x086F MOVF _cap, 0 +0x1464 0x0144 MOVLB 4 +0x1465 0x00A1 MOVWF FARG_Relay_set_C +0x1466 0x0141 MOVLB 1 +0x1467 0x086E MOVF _SW, 0 +0x1468 0x0144 MOVLB 4 +0x1469 0x00A2 MOVWF FARG_Relay_set_I +0x146A 0x3180 MOVLP 0 +0x146B 0x2621 CALL _Relay_set +0x146C 0x3190 MOVLP 16 +;main.c,688 :: coarse_cap(); +0x146D 0x22ED CALL _coarse_cap +;main.c,689 :: get_swr(); +0x146E 0x2221 CALL _get_swr +;main.c,690 :: if(SWR < min_swr) { +0x146F 0x3080 MOVLW 128 +0x1470 0x0143 MOVLB 3 +0x1471 0x063C XORWF _SWR+1, 0 +0x1472 0x00F0 MOVWF R0 +0x1473 0x3080 MOVLW 128 +0x1474 0x065C XORWF coarse_tune_min_swr_L0+1, 0 +0x1475 0x0270 SUBWF R0, 0 +0x1476 0x1D03 BTFSS STATUS, 2 +0x1477 0x2C7A GOTO L__coarse_tune365 +0x1478 0x085B MOVF coarse_tune_min_swr_L0, 0 +0x1479 0x023B SUBWF _SWR, 0 +L__coarse_tune365: +0x147A 0x1803 BTFSC STATUS, 0 +0x147B 0x2CBA GOTO L_coarse_tune172 +;main.c,691 :: min_swr = SWR + SWR/20; +0x147C 0x3014 MOVLW 20 +0x147D 0x00F4 MOVWF R4 +0x147E 0x3000 MOVLW 0 +0x147F 0x00F5 MOVWF R5 +0x1480 0x083B MOVF _SWR, 0 +0x1481 0x00F0 MOVWF R0 +0x1482 0x083C MOVF _SWR+1, 0 +0x1483 0x00F1 MOVWF R1 +0x1484 0x2285 CALL _Div_16x16_S +0x1485 0x0870 MOVF R0, 0 +0x1486 0x0143 MOVLB 3 +0x1487 0x073B ADDWF _SWR, 0 +0x1488 0x00DB MOVWF coarse_tune_min_swr_L0 +0x1489 0x0871 MOVF R1, 0 +0x148A 0x3D3C ADDWFC _SWR+1, 0 +0x148B 0x00DC MOVWF coarse_tune_min_swr_L0+1 +;main.c,692 :: ind = count; +0x148C 0x0858 MOVF coarse_tune_count_L0, 0 +0x148D 0x0142 MOVLB 2 +0x148E 0x00BF MOVWF _ind +;main.c,693 :: mem_cap = cap; +0x148F 0x0141 MOVLB 1 +0x1490 0x086F MOVF _cap, 0 +0x1491 0x0143 MOVLB 3 +0x1492 0x00D9 MOVWF coarse_tune_mem_cap_L0 +;main.c,694 :: step_ind = step; +0x1493 0x085D MOVF coarse_tune_step_L0, 0 +0x1494 0x0141 MOVLB 1 +0x1495 0x00EC MOVWF _step_ind +;main.c,695 :: mem_step_cap = step_cap; +0x1496 0x086D MOVF _step_cap, 0 +0x1497 0x0143 MOVLB 3 +0x1498 0x00DA MOVWF coarse_tune_mem_step_cap_L0 +;main.c,696 :: if(SWR<120) break; +0x1499 0x3080 MOVLW 128 +0x149A 0x063C XORWF _SWR+1, 0 +0x149B 0x00F0 MOVWF R0 +0x149C 0x3080 MOVLW 128 +0x149D 0x0270 SUBWF R0, 0 +0x149E 0x1D03 BTFSS STATUS, 2 +0x149F 0x2CA2 GOTO L__coarse_tune366 +0x14A0 0x3078 MOVLW 120 +0x14A1 0x023B SUBWF _SWR, 0 +L__coarse_tune366: +0x14A2 0x1803 BTFSC STATUS, 0 +0x14A3 0x2CA5 GOTO L_coarse_tune173 +0x14A4 0x2CBC GOTO L_coarse_tune170 +L_coarse_tune173: +;main.c,697 :: count += step; +0x14A5 0x085D MOVF coarse_tune_step_L0, 0 +0x14A6 0x0758 ADDWF coarse_tune_count_L0, 0 +0x14A7 0x00F1 MOVWF R1 +0x14A8 0x0871 MOVF R1, 0 +0x14A9 0x00D8 MOVWF coarse_tune_count_L0 +;main.c,698 :: if(count==9) count = 8; +0x14AA 0x0871 MOVF R1, 0 +0x14AB 0x3A09 XORLW 9 +0x14AC 0x1D03 BTFSS STATUS, 2 +0x14AD 0x2CB1 GOTO L_coarse_tune174 +0x14AE 0x3008 MOVLW 8 +0x14AF 0x00D8 MOVWF coarse_tune_count_L0 +0x14B0 0x2CB9 GOTO L_coarse_tune175 +L_coarse_tune174: +;main.c,699 :: else if(count==17) {count = 16; step = 4;} +0x14B1 0x0858 MOVF coarse_tune_count_L0, 0 +0x14B2 0x3A11 XORLW 17 +0x14B3 0x1D03 BTFSS STATUS, 2 +0x14B4 0x2CB9 GOTO L_coarse_tune176 +0x14B5 0x3010 MOVLW 16 +0x14B6 0x00D8 MOVWF coarse_tune_count_L0 +0x14B7 0x3004 MOVLW 4 +0x14B8 0x00DD MOVWF coarse_tune_step_L0 +L_coarse_tune176: +L_coarse_tune175: +;main.c,700 :: } +0x14B9 0x2CBB GOTO L_coarse_tune177 +L_coarse_tune172: +;main.c,701 :: else break; +0x14BA 0x2CBC GOTO L_coarse_tune170 +L_coarse_tune177: +;main.c,702 :: } +0x14BB 0x2C5B GOTO L_coarse_tune169 +L_coarse_tune170: +;main.c,703 :: cap = mem_cap; +0x14BC 0x0859 MOVF coarse_tune_mem_cap_L0, 0 +0x14BD 0x0141 MOVLB 1 +0x14BE 0x00EF MOVWF _cap +;main.c,704 :: Relay_set(ind, cap, SW); +0x14BF 0x0142 MOVLB 2 +0x14C0 0x083F MOVF _ind, 0 +0x14C1 0x0144 MOVLB 4 +0x14C2 0x00A0 MOVWF FARG_Relay_set_L +0x14C3 0x0143 MOVLB 3 +0x14C4 0x0859 MOVF coarse_tune_mem_cap_L0, 0 +0x14C5 0x0144 MOVLB 4 +0x14C6 0x00A1 MOVWF FARG_Relay_set_C +0x14C7 0x0141 MOVLB 1 +0x14C8 0x086E MOVF _SW, 0 +0x14C9 0x0144 MOVLB 4 +0x14CA 0x00A2 MOVWF FARG_Relay_set_I +0x14CB 0x3180 MOVLP 0 +0x14CC 0x2621 CALL _Relay_set +0x14CD 0x3190 MOVLP 16 +;main.c,705 :: step_cap = mem_step_cap; +0x14CE 0x0143 MOVLB 3 +0x14CF 0x085A MOVF coarse_tune_mem_step_cap_L0, 0 +0x14D0 0x0141 MOVLB 1 +0x14D1 0x00ED MOVWF _step_cap +;main.c,706 :: Delay_ms(10); +0x14D2 0x3068 MOVLW 104 +0x14D3 0x00FC MOVWF R12 +0x14D4 0x30E4 MOVLW 228 +0x14D5 0x00FD MOVWF R13 +L_coarse_tune178: +0x14D6 0x0BFD DECFSZ R13, 1 +0x14D7 0x2CD6 GOTO L_coarse_tune178 +0x14D8 0x0BFC DECFSZ R12, 1 +0x14D9 0x2CD6 GOTO L_coarse_tune178 +0x14DA 0x0000 NOP +;main.c,707 :: return; +;main.c,708 :: } +L_end_coarse_tune: +0x14DB 0x0008 RETURN +; end of _coarse_tune +_sharp_ind: +;main.c,740 :: void sharp_ind() { +;main.c,743 :: range = step_ind; +0x14DC 0x0141 MOVLB 1 +0x14DD 0x086C MOVF _step_ind, 0 +0x14DE 0x0143 MOVLB 3 +0x14DF 0x00D8 MOVWF sharp_ind_range_L0 +;main.c,745 :: max_range = ind + range; +0x14E0 0x0141 MOVLB 1 +0x14E1 0x086C MOVF _step_ind, 0 +0x14E2 0x0142 MOVLB 2 +0x14E3 0x073F ADDWF _ind, 0 +0x14E4 0x00F1 MOVWF R1 +0x14E5 0x0871 MOVF R1, 0 +0x14E6 0x0143 MOVLB 3 +0x14E7 0x00DA MOVWF sharp_ind_max_range_L0 +;main.c,746 :: if(max_range>31) max_range = 31; +0x14E8 0x0871 MOVF R1, 0 +0x14E9 0x3C1F SUBLW 31 +0x14EA 0x1803 BTFSC STATUS, 0 +0x14EB 0x2CEE GOTO L_sharp_ind194 +0x14EC 0x301F MOVLW 31 +0x14ED 0x00DA MOVWF sharp_ind_max_range_L0 +L_sharp_ind194: +;main.c,747 :: if(ind>range) min_range = ind - range; else min_range = 0; +0x14EE 0x0142 MOVLB 2 +0x14EF 0x083F MOVF _ind, 0 +0x14F0 0x0143 MOVLB 3 +0x14F1 0x0258 SUBWF sharp_ind_range_L0, 0 +0x14F2 0x1803 BTFSC STATUS, 0 +0x14F3 0x2CFA GOTO L_sharp_ind195 +0x14F4 0x0858 MOVF sharp_ind_range_L0, 0 +0x14F5 0x0142 MOVLB 2 +0x14F6 0x023F SUBWF _ind, 0 +0x14F7 0x0143 MOVLB 3 +0x14F8 0x00DB MOVWF sharp_ind_min_range_L0 +0x14F9 0x2CFB GOTO L_sharp_ind196 +L_sharp_ind195: +0x14FA 0x01DB CLRF sharp_ind_min_range_L0 +L_sharp_ind196: +;main.c,748 :: ind = min_range; +0x14FB 0x085B MOVF sharp_ind_min_range_L0, 0 +0x14FC 0x0142 MOVLB 2 +0x14FD 0x00BF MOVWF _ind +;main.c,749 :: Relay_set(ind, cap, SW); +0x14FE 0x0143 MOVLB 3 +0x14FF 0x085B MOVF sharp_ind_min_range_L0, 0 +0x1500 0x0144 MOVLB 4 +0x1501 0x00A0 MOVWF FARG_Relay_set_L +0x1502 0x0141 MOVLB 1 +0x1503 0x086F MOVF _cap, 0 +0x1504 0x0144 MOVLB 4 +0x1505 0x00A1 MOVWF FARG_Relay_set_C +0x1506 0x0141 MOVLB 1 +0x1507 0x086E MOVF _SW, 0 +0x1508 0x0144 MOVLB 4 +0x1509 0x00A2 MOVWF FARG_Relay_set_I +0x150A 0x3180 MOVLP 0 +0x150B 0x2621 CALL _Relay_set +0x150C 0x3190 MOVLP 16 +;main.c,750 :: get_swr(); +0x150D 0x2221 CALL _get_swr +;main.c,751 :: if(SWR==0) return; +0x150E 0x3000 MOVLW 0 +0x150F 0x0143 MOVLB 3 +0x1510 0x063C XORWF _SWR+1, 0 +0x1511 0x1D03 BTFSS STATUS, 2 +0x1512 0x2D15 GOTO L__sharp_ind375 +0x1513 0x3000 MOVLW 0 +0x1514 0x063B XORWF _SWR, 0 +L__sharp_ind375: +0x1515 0x1D03 BTFSS STATUS, 2 +0x1516 0x2D18 GOTO L_sharp_ind197 +0x1517 0x2D9C GOTO L_end_sharp_ind +L_sharp_ind197: +;main.c,752 :: min_SWR = SWR; +0x1518 0x083B MOVF _SWR, 0 +0x1519 0x00DC MOVWF sharp_ind_min_SWR_L0 +0x151A 0x083C MOVF _SWR+1, 0 +0x151B 0x00DD MOVWF sharp_ind_min_SWR_L0+1 +;main.c,753 :: for(count=min_range+1; count<=max_range; count++) { +0x151C 0x0A5B INCF sharp_ind_min_range_L0, 0 +0x151D 0x00D9 MOVWF sharp_ind_count_L0 +L_sharp_ind198: +0x151E 0x0859 MOVF sharp_ind_count_L0, 0 +0x151F 0x025A SUBWF sharp_ind_max_range_L0, 0 +0x1520 0x1C03 BTFSS STATUS, 0 +0x1521 0x2D8D GOTO L_sharp_ind199 +;main.c,754 :: Relay_set(count, cap, SW); +0x1522 0x0859 MOVF sharp_ind_count_L0, 0 +0x1523 0x0144 MOVLB 4 +0x1524 0x00A0 MOVWF FARG_Relay_set_L +0x1525 0x0141 MOVLB 1 +0x1526 0x086F MOVF _cap, 0 +0x1527 0x0144 MOVLB 4 +0x1528 0x00A1 MOVWF FARG_Relay_set_C +0x1529 0x0141 MOVLB 1 +0x152A 0x086E MOVF _SW, 0 +0x152B 0x0144 MOVLB 4 +0x152C 0x00A2 MOVWF FARG_Relay_set_I +0x152D 0x3180 MOVLP 0 +0x152E 0x2621 CALL _Relay_set +0x152F 0x3190 MOVLP 16 +;main.c,755 :: get_swr(); +0x1530 0x2221 CALL _get_swr +;main.c,756 :: if(SWR==0) return; +0x1531 0x3000 MOVLW 0 +0x1532 0x0143 MOVLB 3 +0x1533 0x063C XORWF _SWR+1, 0 +0x1534 0x1D03 BTFSS STATUS, 2 +0x1535 0x2D38 GOTO L__sharp_ind376 +0x1536 0x3000 MOVLW 0 +0x1537 0x063B XORWF _SWR, 0 +L__sharp_ind376: +0x1538 0x1D03 BTFSS STATUS, 2 +0x1539 0x2D3B GOTO L_sharp_ind201 +0x153A 0x2D9C GOTO L_end_sharp_ind +L_sharp_ind201: +;main.c,757 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } +0x153B 0x3080 MOVLW 128 +0x153C 0x063C XORWF _SWR+1, 0 +0x153D 0x00F0 MOVWF R0 +0x153E 0x3080 MOVLW 128 +0x153F 0x065D XORWF sharp_ind_min_SWR_L0+1, 0 +0x1540 0x0270 SUBWF R0, 0 +0x1541 0x1D03 BTFSS STATUS, 2 +0x1542 0x2D45 GOTO L__sharp_ind377 +0x1543 0x085C MOVF sharp_ind_min_SWR_L0, 0 +0x1544 0x023B SUBWF _SWR, 0 +L__sharp_ind377: +0x1545 0x1C03 BTFSS STATUS, 0 +0x1546 0x2D51 GOTO L_sharp_ind202 +0x1547 0x3068 MOVLW 104 +0x1548 0x00FC MOVWF R12 +0x1549 0x30E4 MOVLW 228 +0x154A 0x00FD MOVWF R13 +L_sharp_ind203: +0x154B 0x0BFD DECFSZ R13, 1 +0x154C 0x2D4B GOTO L_sharp_ind203 +0x154D 0x0BFC DECFSZ R12, 1 +0x154E 0x2D4B GOTO L_sharp_ind203 +0x154F 0x0000 NOP +0x1550 0x2221 CALL _get_swr +L_sharp_ind202: +;main.c,758 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } +0x1551 0x3080 MOVLW 128 +0x1552 0x0143 MOVLB 3 +0x1553 0x063C XORWF _SWR+1, 0 +0x1554 0x00F0 MOVWF R0 +0x1555 0x3080 MOVLW 128 +0x1556 0x065D XORWF sharp_ind_min_SWR_L0+1, 0 +0x1557 0x0270 SUBWF R0, 0 +0x1558 0x1D03 BTFSS STATUS, 2 +0x1559 0x2D5C GOTO L__sharp_ind378 +0x155A 0x085C MOVF sharp_ind_min_SWR_L0, 0 +0x155B 0x023B SUBWF _SWR, 0 +L__sharp_ind378: +0x155C 0x1C03 BTFSS STATUS, 0 +0x155D 0x2D68 GOTO L_sharp_ind204 +0x155E 0x3068 MOVLW 104 +0x155F 0x00FC MOVWF R12 +0x1560 0x30E4 MOVLW 228 +0x1561 0x00FD MOVWF R13 +L_sharp_ind205: +0x1562 0x0BFD DECFSZ R13, 1 +0x1563 0x2D62 GOTO L_sharp_ind205 +0x1564 0x0BFC DECFSZ R12, 1 +0x1565 0x2D62 GOTO L_sharp_ind205 +0x1566 0x0000 NOP +0x1567 0x2221 CALL _get_swr +L_sharp_ind204: +;main.c,759 :: if(SWR < min_SWR) { +0x1568 0x3080 MOVLW 128 +0x1569 0x0143 MOVLB 3 +0x156A 0x063C XORWF _SWR+1, 0 +0x156B 0x00F0 MOVWF R0 +0x156C 0x3080 MOVLW 128 +0x156D 0x065D XORWF sharp_ind_min_SWR_L0+1, 0 +0x156E 0x0270 SUBWF R0, 0 +0x156F 0x1D03 BTFSS STATUS, 2 +0x1570 0x2D73 GOTO L__sharp_ind379 +0x1571 0x085C MOVF sharp_ind_min_SWR_L0, 0 +0x1572 0x023B SUBWF _SWR, 0 +L__sharp_ind379: +0x1573 0x1803 BTFSC STATUS, 0 +0x1574 0x2D8A GOTO L_sharp_ind206 +;main.c,760 :: min_SWR = SWR; +0x1575 0x083B MOVF _SWR, 0 +0x1576 0x00DC MOVWF sharp_ind_min_SWR_L0 +0x1577 0x083C MOVF _SWR+1, 0 +0x1578 0x00DD MOVWF sharp_ind_min_SWR_L0+1 +;main.c,761 :: ind = count; +0x1579 0x0859 MOVF sharp_ind_count_L0, 0 +0x157A 0x0142 MOVLB 2 +0x157B 0x00BF MOVWF _ind +;main.c,762 :: if(SWR<120) break; +0x157C 0x3080 MOVLW 128 +0x157D 0x0143 MOVLB 3 +0x157E 0x063C XORWF _SWR+1, 0 +0x157F 0x00F0 MOVWF R0 +0x1580 0x3080 MOVLW 128 +0x1581 0x0270 SUBWF R0, 0 +0x1582 0x1D03 BTFSS STATUS, 2 +0x1583 0x2D86 GOTO L__sharp_ind380 +0x1584 0x3078 MOVLW 120 +0x1585 0x023B SUBWF _SWR, 0 +L__sharp_ind380: +0x1586 0x1803 BTFSC STATUS, 0 +0x1587 0x2D89 GOTO L_sharp_ind207 +0x1588 0x2D8D GOTO L_sharp_ind199 +L_sharp_ind207: +;main.c,763 :: } +0x1589 0x2D8B GOTO L_sharp_ind208 +L_sharp_ind206: +;main.c,764 :: else break; +0x158A 0x2D8D GOTO L_sharp_ind199 +L_sharp_ind208: +;main.c,753 :: for(count=min_range+1; count<=max_range; count++) { +0x158B 0x0AD9 INCF sharp_ind_count_L0, 1 +;main.c,765 :: } +0x158C 0x2D1E GOTO L_sharp_ind198 +L_sharp_ind199: +;main.c,766 :: Relay_set(ind, cap, SW); +0x158D 0x0142 MOVLB 2 +0x158E 0x083F MOVF _ind, 0 +0x158F 0x0144 MOVLB 4 +0x1590 0x00A0 MOVWF FARG_Relay_set_L +0x1591 0x0141 MOVLB 1 +0x1592 0x086F MOVF _cap, 0 +0x1593 0x0144 MOVLB 4 +0x1594 0x00A1 MOVWF FARG_Relay_set_C +0x1595 0x0141 MOVLB 1 +0x1596 0x086E MOVF _SW, 0 +0x1597 0x0144 MOVLB 4 +0x1598 0x00A2 MOVWF FARG_Relay_set_I +0x1599 0x3180 MOVLP 0 +0x159A 0x2621 CALL _Relay_set +0x159B 0x3190 MOVLP 16 +;main.c,767 :: return; +;main.c,768 :: } +L_end_sharp_ind: +0x159C 0x0008 RETURN +; end of _sharp_ind +_tune: +;main.c,771 :: void tune() { +;main.c,773 :: asm CLRWDT; +0x159D 0x0064 CLRWDT +;main.c,774 :: Key_out = 0; +0x159E 0x0140 MOVLB 0 +0x159F 0x1119 BCF LATD2_bit, BitPos(LATD2_bit+0) +;main.c,775 :: Delay_ms(100); +0x15A0 0x3005 MOVLW 5 +0x15A1 0x00FB MOVWF R11 +0x15A2 0x300F MOVLW 15 +0x15A3 0x00FC MOVWF R12 +0x15A4 0x30F1 MOVLW 241 +0x15A5 0x00FD MOVWF R13 +L_tune209: +0x15A6 0x0BFD DECFSZ R13, 1 +0x15A7 0x2DA6 GOTO L_tune209 +0x15A8 0x0BFC DECFSZ R12, 1 +0x15A9 0x2DA6 GOTO L_tune209 +0x15AA 0x0BFB DECFSZ R11, 1 +0x15AB 0x2DA6 GOTO L_tune209 +;main.c,776 :: get_swr(); if(SWR<110) { Key_out = 1; return; } +0x15AC 0x2221 CALL _get_swr +0x15AD 0x3080 MOVLW 128 +0x15AE 0x0143 MOVLB 3 +0x15AF 0x063C XORWF _SWR+1, 0 +0x15B0 0x00F0 MOVWF R0 +0x15B1 0x3080 MOVLW 128 +0x15B2 0x0270 SUBWF R0, 0 +0x15B3 0x1D03 BTFSS STATUS, 2 +0x15B4 0x2DB7 GOTO L__tune382 +0x15B5 0x306E MOVLW 110 +0x15B6 0x023B SUBWF _SWR, 0 +L__tune382: +0x15B7 0x1803 BTFSC STATUS, 0 +0x15B8 0x2DBC GOTO L_tune210 +0x15B9 0x0140 MOVLB 0 +0x15BA 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x15BB 0x2F4A GOTO L_end_tune +L_tune210: +;main.c,777 :: atu_reset(); +0x15BC 0x3180 MOVLP 0 +0x15BD 0x27C8 CALL _atu_reset +0x15BE 0x3190 MOVLP 16 +;main.c,778 :: Delay_ms(50); +0x15BF 0x3003 MOVLW 3 +0x15C0 0x00FB MOVWF R11 +0x15C1 0x3008 MOVLW 8 +0x15C2 0x00FC MOVWF R12 +0x15C3 0x3077 MOVLW 119 +0x15C4 0x00FD MOVWF R13 +L_tune211: +0x15C5 0x0BFD DECFSZ R13, 1 +0x15C6 0x2DC5 GOTO L_tune211 +0x15C7 0x0BFC DECFSZ R12, 1 +0x15C8 0x2DC5 GOTO L_tune211 +0x15C9 0x0BFB DECFSZ R11, 1 +0x15CA 0x2DC5 GOTO L_tune211 +;main.c,779 :: get_swr(); if(SWR<110) { Key_out = 1; return; } +0x15CB 0x2221 CALL _get_swr +0x15CC 0x3080 MOVLW 128 +0x15CD 0x0143 MOVLB 3 +0x15CE 0x063C XORWF _SWR+1, 0 +0x15CF 0x00F0 MOVWF R0 +0x15D0 0x3080 MOVLW 128 +0x15D1 0x0270 SUBWF R0, 0 +0x15D2 0x1D03 BTFSS STATUS, 2 +0x15D3 0x2DD6 GOTO L__tune383 +0x15D4 0x306E MOVLW 110 +0x15D5 0x023B SUBWF _SWR, 0 +L__tune383: +0x15D6 0x1803 BTFSC STATUS, 0 +0x15D7 0x2DDB GOTO L_tune212 +0x15D8 0x0140 MOVLB 0 +0x15D9 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x15DA 0x2F4A GOTO L_end_tune +L_tune212: +;main.c,781 :: swr_mem = SWR; +0x15DB 0x0143 MOVLB 3 +0x15DC 0x083B MOVF _SWR, 0 +0x15DD 0x00D2 MOVWF tune_swr_mem_L0 +0x15DE 0x083C MOVF _SWR+1, 0 +0x15DF 0x00D3 MOVWF tune_swr_mem_L0+1 +;main.c,782 :: coarse_tune(); if(SWR==0) {atu_reset(); Key_out = 1; return;} +0x15E0 0x243F CALL _coarse_tune +0x15E1 0x3000 MOVLW 0 +0x15E2 0x0143 MOVLB 3 +0x15E3 0x063C XORWF _SWR+1, 0 +0x15E4 0x1D03 BTFSS STATUS, 2 +0x15E5 0x2DE8 GOTO L__tune384 +0x15E6 0x3000 MOVLW 0 +0x15E7 0x063B XORWF _SWR, 0 +L__tune384: +0x15E8 0x1D03 BTFSS STATUS, 2 +0x15E9 0x2DEF GOTO L_tune213 +0x15EA 0x3180 MOVLP 0 +0x15EB 0x27C8 CALL _atu_reset +0x15EC 0x3190 MOVLP 16 +0x15ED 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x15EE 0x2F4A GOTO L_end_tune +L_tune213: +;main.c,783 :: get_swr(); if(SWR<120) { Key_out = 1; return; } +0x15EF 0x2221 CALL _get_swr +0x15F0 0x3080 MOVLW 128 +0x15F1 0x0143 MOVLB 3 +0x15F2 0x063C XORWF _SWR+1, 0 +0x15F3 0x00F0 MOVWF R0 +0x15F4 0x3080 MOVLW 128 +0x15F5 0x0270 SUBWF R0, 0 +0x15F6 0x1D03 BTFSS STATUS, 2 +0x15F7 0x2DFA GOTO L__tune385 +0x15F8 0x3078 MOVLW 120 +0x15F9 0x023B SUBWF _SWR, 0 +L__tune385: +0x15FA 0x1803 BTFSC STATUS, 0 +0x15FB 0x2DFF GOTO L_tune214 +0x15FC 0x0140 MOVLB 0 +0x15FD 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x15FE 0x2F4A GOTO L_end_tune +L_tune214: +;main.c,784 :: sharp_ind(); if(SWR==0) {atu_reset(); Key_out = 1; return;} +0x15FF 0x24DC CALL _sharp_ind +0x1600 0x3000 MOVLW 0 +0x1601 0x0143 MOVLB 3 +0x1602 0x063C XORWF _SWR+1, 0 +0x1603 0x1D03 BTFSS STATUS, 2 +0x1604 0x2E07 GOTO L__tune386 +0x1605 0x3000 MOVLW 0 +0x1606 0x063B XORWF _SWR, 0 +L__tune386: +0x1607 0x1D03 BTFSS STATUS, 2 +0x1608 0x2E0E GOTO L_tune215 +0x1609 0x3180 MOVLP 0 +0x160A 0x27C8 CALL _atu_reset +0x160B 0x3190 MOVLP 16 +0x160C 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x160D 0x2F4A GOTO L_end_tune +L_tune215: +;main.c,785 :: get_swr(); if(SWR<120) { Key_out = 1; return; } +0x160E 0x2221 CALL _get_swr +0x160F 0x3080 MOVLW 128 +0x1610 0x0143 MOVLB 3 +0x1611 0x063C XORWF _SWR+1, 0 +0x1612 0x00F0 MOVWF R0 +0x1613 0x3080 MOVLW 128 +0x1614 0x0270 SUBWF R0, 0 +0x1615 0x1D03 BTFSS STATUS, 2 +0x1616 0x2E19 GOTO L__tune387 +0x1617 0x3078 MOVLW 120 +0x1618 0x023B SUBWF _SWR, 0 +L__tune387: +0x1619 0x1803 BTFSC STATUS, 0 +0x161A 0x2E1E GOTO L_tune216 +0x161B 0x0140 MOVLB 0 +0x161C 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x161D 0x2F4A GOTO L_end_tune +L_tune216: +;main.c,786 :: sharp_cap(); if(SWR==0) {atu_reset(); Key_out = 1; return;} +0x161E 0x237E CALL _sharp_cap +0x161F 0x3000 MOVLW 0 +0x1620 0x0143 MOVLB 3 +0x1621 0x063C XORWF _SWR+1, 0 +0x1622 0x1D03 BTFSS STATUS, 2 +0x1623 0x2E26 GOTO L__tune388 +0x1624 0x3000 MOVLW 0 +0x1625 0x063B XORWF _SWR, 0 +L__tune388: +0x1626 0x1D03 BTFSS STATUS, 2 +0x1627 0x2E2D GOTO L_tune217 +0x1628 0x3180 MOVLP 0 +0x1629 0x27C8 CALL _atu_reset +0x162A 0x3190 MOVLP 16 +0x162B 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x162C 0x2F4A GOTO L_end_tune +L_tune217: +;main.c,787 :: get_swr(); if(SWR<120) { Key_out = 1; return; } +0x162D 0x2221 CALL _get_swr +0x162E 0x3080 MOVLW 128 +0x162F 0x0143 MOVLB 3 +0x1630 0x063C XORWF _SWR+1, 0 +0x1631 0x00F0 MOVWF R0 +0x1632 0x3080 MOVLW 128 +0x1633 0x0270 SUBWF R0, 0 +0x1634 0x1D03 BTFSS STATUS, 2 +0x1635 0x2E38 GOTO L__tune389 +0x1636 0x3078 MOVLW 120 +0x1637 0x023B SUBWF _SWR, 0 +L__tune389: +0x1638 0x1803 BTFSC STATUS, 0 +0x1639 0x2E3D GOTO L_tune218 +0x163A 0x0140 MOVLB 0 +0x163B 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x163C 0x2F4A GOTO L_end_tune +L_tune218: +;main.c,789 :: if(SWR<200 & SWR100) { Key_out = 1; return; } +0x163D 0x3080 MOVLW 128 +0x163E 0x0143 MOVLB 3 +0x163F 0x063C XORWF _SWR+1, 0 +0x1640 0x00F1 MOVWF R1 +0x1641 0x3080 MOVLW 128 +0x1642 0x0271 SUBWF R1, 0 +0x1643 0x1D03 BTFSS STATUS, 2 +0x1644 0x2E47 GOTO L__tune390 +0x1645 0x30C8 MOVLW 200 +0x1646 0x023B SUBWF _SWR, 0 +L__tune390: +0x1647 0x3001 MOVLW 1 +0x1648 0x1803 BTFSC STATUS, 0 +0x1649 0x3000 MOVLW 0 +0x164A 0x00F1 MOVWF R1 +0x164B 0x3080 MOVLW 128 +0x164C 0x063C XORWF _SWR+1, 0 +0x164D 0x00F0 MOVWF R0 +0x164E 0x3080 MOVLW 128 +0x164F 0x0653 XORWF tune_swr_mem_L0+1, 0 +0x1650 0x0270 SUBWF R0, 0 +0x1651 0x1D03 BTFSS STATUS, 2 +0x1652 0x2E55 GOTO L__tune391 +0x1653 0x0852 MOVF tune_swr_mem_L0, 0 +0x1654 0x023B SUBWF _SWR, 0 +L__tune391: +0x1655 0x3001 MOVLW 1 +0x1656 0x1803 BTFSC STATUS, 0 +0x1657 0x3000 MOVLW 0 +0x1658 0x00F0 MOVWF R0 +0x1659 0x0870 MOVF R0, 0 +0x165A 0x0571 ANDWF R1, 0 +0x165B 0x00F3 MOVWF R3 +0x165C 0x083B MOVF _SWR, 0 +0x165D 0x0252 SUBWF tune_swr_mem_L0, 0 +0x165E 0x00F1 MOVWF R1 +0x165F 0x083C MOVF _SWR+1, 0 +0x1660 0x3B53 SUBWFB tune_swr_mem_L0+1, 0 +0x1661 0x00F2 MOVWF R2 +0x1662 0x3080 MOVLW 128 +0x1663 0x00F0 MOVWF R0 +0x1664 0x3080 MOVLW 128 +0x1665 0x0672 XORWF R2, 0 +0x1666 0x0270 SUBWF R0, 0 +0x1667 0x1D03 BTFSS STATUS, 2 +0x1668 0x2E6B GOTO L__tune392 +0x1669 0x0871 MOVF R1, 0 +0x166A 0x3C64 SUBLW 100 +L__tune392: +0x166B 0x3001 MOVLW 1 +0x166C 0x1803 BTFSC STATUS, 0 +0x166D 0x3000 MOVLW 0 +0x166E 0x00F0 MOVWF R0 +0x166F 0x0873 MOVF R3, 0 +0x1670 0x05F0 ANDWF R0, 1 +0x1671 0x1903 BTFSC STATUS, 2 +0x1672 0x2E76 GOTO L_tune219 +0x1673 0x0140 MOVLB 0 +0x1674 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x1675 0x2F4A GOTO L_end_tune +L_tune219: +;main.c,790 :: swr_mem = SWR; +0x1676 0x0143 MOVLB 3 +0x1677 0x083B MOVF _SWR, 0 +0x1678 0x00D2 MOVWF tune_swr_mem_L0 +0x1679 0x083C MOVF _SWR+1, 0 +0x167A 0x00D3 MOVWF tune_swr_mem_L0+1 +;main.c,791 :: ind_mem = ind; +0x167B 0x0142 MOVLB 2 +0x167C 0x083F MOVF _ind, 0 +0x167D 0x0143 MOVLB 3 +0x167E 0x00D4 MOVWF tune_ind_mem_L0 +0x167F 0x01D5 CLRF tune_ind_mem_L0+1 +;main.c,792 :: cap_mem = cap; +0x1680 0x0141 MOVLB 1 +0x1681 0x086F MOVF _cap, 0 +0x1682 0x0143 MOVLB 3 +0x1683 0x00D6 MOVWF tune_cap_mem_L0 +0x1684 0x01D7 CLRF tune_cap_mem_L0+1 +;main.c,794 :: if(SW==1) SW = 0; else SW = 1; +0x1685 0x0141 MOVLB 1 +0x1686 0x086E MOVF _SW, 0 +0x1687 0x3A01 XORLW 1 +0x1688 0x1D03 BTFSS STATUS, 2 +0x1689 0x2E8C GOTO L_tune220 +0x168A 0x01EE CLRF _SW +0x168B 0x2E8E GOTO L_tune221 +L_tune220: +0x168C 0x3001 MOVLW 1 +0x168D 0x00EE MOVWF _SW +L_tune221: +;main.c,795 :: atu_reset(); +0x168E 0x3180 MOVLP 0 +0x168F 0x27C8 CALL _atu_reset +0x1690 0x3190 MOVLP 16 +;main.c,796 :: Relay_set(ind, cap, SW); +0x1691 0x0142 MOVLB 2 +0x1692 0x083F MOVF _ind, 0 +0x1693 0x0144 MOVLB 4 +0x1694 0x00A0 MOVWF FARG_Relay_set_L +0x1695 0x0141 MOVLB 1 +0x1696 0x086F MOVF _cap, 0 +0x1697 0x0144 MOVLB 4 +0x1698 0x00A1 MOVWF FARG_Relay_set_C +0x1699 0x0141 MOVLB 1 +0x169A 0x086E MOVF _SW, 0 +0x169B 0x0144 MOVLB 4 +0x169C 0x00A2 MOVWF FARG_Relay_set_I +0x169D 0x3180 MOVLP 0 +0x169E 0x2621 CALL _Relay_set +0x169F 0x3190 MOVLP 16 +;main.c,797 :: Delay_ms(50); +0x16A0 0x3003 MOVLW 3 +0x16A1 0x00FB MOVWF R11 +0x16A2 0x3008 MOVLW 8 +0x16A3 0x00FC MOVWF R12 +0x16A4 0x3077 MOVLW 119 +0x16A5 0x00FD MOVWF R13 +L_tune222: +0x16A6 0x0BFD DECFSZ R13, 1 +0x16A7 0x2EA6 GOTO L_tune222 +0x16A8 0x0BFC DECFSZ R12, 1 +0x16A9 0x2EA6 GOTO L_tune222 +0x16AA 0x0BFB DECFSZ R11, 1 +0x16AB 0x2EA6 GOTO L_tune222 +;main.c,798 :: get_swr(); if(SWR<120) { Key_out = 1; return; } +0x16AC 0x2221 CALL _get_swr +0x16AD 0x3080 MOVLW 128 +0x16AE 0x0143 MOVLB 3 +0x16AF 0x063C XORWF _SWR+1, 0 +0x16B0 0x00F0 MOVWF R0 +0x16B1 0x3080 MOVLW 128 +0x16B2 0x0270 SUBWF R0, 0 +0x16B3 0x1D03 BTFSS STATUS, 2 +0x16B4 0x2EB7 GOTO L__tune393 +0x16B5 0x3078 MOVLW 120 +0x16B6 0x023B SUBWF _SWR, 0 +L__tune393: +0x16B7 0x1803 BTFSC STATUS, 0 +0x16B8 0x2EBC GOTO L_tune223 +0x16B9 0x0140 MOVLB 0 +0x16BA 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x16BB 0x2F4A GOTO L_end_tune +L_tune223: +;main.c,800 :: coarse_tune(); if(SWR==0) {atu_reset(); Key_out = 1; return;} +0x16BC 0x243F CALL _coarse_tune +0x16BD 0x3000 MOVLW 0 +0x16BE 0x0143 MOVLB 3 +0x16BF 0x063C XORWF _SWR+1, 0 +0x16C0 0x1D03 BTFSS STATUS, 2 +0x16C1 0x2EC4 GOTO L__tune394 +0x16C2 0x3000 MOVLW 0 +0x16C3 0x063B XORWF _SWR, 0 +L__tune394: +0x16C4 0x1D03 BTFSS STATUS, 2 +0x16C5 0x2ECB GOTO L_tune224 +0x16C6 0x3180 MOVLP 0 +0x16C7 0x27C8 CALL _atu_reset +0x16C8 0x3190 MOVLP 16 +0x16C9 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x16CA 0x2F4A GOTO L_end_tune +L_tune224: +;main.c,801 :: get_swr(); if(SWR<120) { Key_out = 1; return; } +0x16CB 0x2221 CALL _get_swr +0x16CC 0x3080 MOVLW 128 +0x16CD 0x0143 MOVLB 3 +0x16CE 0x063C XORWF _SWR+1, 0 +0x16CF 0x00F0 MOVWF R0 +0x16D0 0x3080 MOVLW 128 +0x16D1 0x0270 SUBWF R0, 0 +0x16D2 0x1D03 BTFSS STATUS, 2 +0x16D3 0x2ED6 GOTO L__tune395 +0x16D4 0x3078 MOVLW 120 +0x16D5 0x023B SUBWF _SWR, 0 +L__tune395: +0x16D6 0x1803 BTFSC STATUS, 0 +0x16D7 0x2EDB GOTO L_tune225 +0x16D8 0x0140 MOVLB 0 +0x16D9 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x16DA 0x2F4A GOTO L_end_tune +L_tune225: +;main.c,802 :: sharp_ind(); if(SWR==0) {atu_reset(); Key_out = 1; return;} +0x16DB 0x24DC CALL _sharp_ind +0x16DC 0x3000 MOVLW 0 +0x16DD 0x0143 MOVLB 3 +0x16DE 0x063C XORWF _SWR+1, 0 +0x16DF 0x1D03 BTFSS STATUS, 2 +0x16E0 0x2EE3 GOTO L__tune396 +0x16E1 0x3000 MOVLW 0 +0x16E2 0x063B XORWF _SWR, 0 +L__tune396: +0x16E3 0x1D03 BTFSS STATUS, 2 +0x16E4 0x2EEA GOTO L_tune226 +0x16E5 0x3180 MOVLP 0 +0x16E6 0x27C8 CALL _atu_reset +0x16E7 0x3190 MOVLP 16 +0x16E8 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x16E9 0x2F4A GOTO L_end_tune +L_tune226: +;main.c,803 :: get_swr(); if(SWR<120) { Key_out = 1; return; } +0x16EA 0x2221 CALL _get_swr +0x16EB 0x3080 MOVLW 128 +0x16EC 0x0143 MOVLB 3 +0x16ED 0x063C XORWF _SWR+1, 0 +0x16EE 0x00F0 MOVWF R0 +0x16EF 0x3080 MOVLW 128 +0x16F0 0x0270 SUBWF R0, 0 +0x16F1 0x1D03 BTFSS STATUS, 2 +0x16F2 0x2EF5 GOTO L__tune397 +0x16F3 0x3078 MOVLW 120 +0x16F4 0x023B SUBWF _SWR, 0 +L__tune397: +0x16F5 0x1803 BTFSC STATUS, 0 +0x16F6 0x2EFA GOTO L_tune227 +0x16F7 0x0140 MOVLB 0 +0x16F8 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x16F9 0x2F4A GOTO L_end_tune +L_tune227: +;main.c,804 :: sharp_cap(); if(SWR==0) {atu_reset(); Key_out = 1; return;} +0x16FA 0x237E CALL _sharp_cap +0x16FB 0x3000 MOVLW 0 +0x16FC 0x0143 MOVLB 3 +0x16FD 0x063C XORWF _SWR+1, 0 +0x16FE 0x1D03 BTFSS STATUS, 2 +0x16FF 0x2F02 GOTO L__tune398 +0x1700 0x3000 MOVLW 0 +0x1701 0x063B XORWF _SWR, 0 +L__tune398: +0x1702 0x1D03 BTFSS STATUS, 2 +0x1703 0x2F09 GOTO L_tune228 +0x1704 0x3180 MOVLP 0 +0x1705 0x27C8 CALL _atu_reset +0x1706 0x3190 MOVLP 16 +0x1707 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x1708 0x2F4A GOTO L_end_tune +L_tune228: +;main.c,805 :: get_swr(); if(SWR<120) { Key_out = 1; return; } +0x1709 0x2221 CALL _get_swr +0x170A 0x3080 MOVLW 128 +0x170B 0x0143 MOVLB 3 +0x170C 0x063C XORWF _SWR+1, 0 +0x170D 0x00F0 MOVWF R0 +0x170E 0x3080 MOVLW 128 +0x170F 0x0270 SUBWF R0, 0 +0x1710 0x1D03 BTFSS STATUS, 2 +0x1711 0x2F14 GOTO L__tune399 +0x1712 0x3078 MOVLW 120 +0x1713 0x023B SUBWF _SWR, 0 +L__tune399: +0x1714 0x1803 BTFSC STATUS, 0 +0x1715 0x2F19 GOTO L_tune229 +0x1716 0x0140 MOVLB 0 +0x1717 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +0x1718 0x2F4A GOTO L_end_tune +L_tune229: +;main.c,807 :: if(SWR>swr_mem) { +0x1719 0x3080 MOVLW 128 +0x171A 0x0143 MOVLB 3 +0x171B 0x0653 XORWF tune_swr_mem_L0+1, 0 +0x171C 0x00F0 MOVWF R0 +0x171D 0x3080 MOVLW 128 +0x171E 0x063C XORWF _SWR+1, 0 +0x171F 0x0270 SUBWF R0, 0 +0x1720 0x1D03 BTFSS STATUS, 2 +0x1721 0x2F24 GOTO L__tune400 +0x1722 0x083B MOVF _SWR, 0 +0x1723 0x0252 SUBWF tune_swr_mem_L0, 0 +L__tune400: +0x1724 0x1803 BTFSC STATUS, 0 +0x1725 0x2F46 GOTO L_tune230 +;main.c,808 :: if(SW==1) SW = 0; else SW = 1; +0x1726 0x0141 MOVLB 1 +0x1727 0x086E MOVF _SW, 0 +0x1728 0x3A01 XORLW 1 +0x1729 0x1D03 BTFSS STATUS, 2 +0x172A 0x2F2D GOTO L_tune231 +0x172B 0x01EE CLRF _SW +0x172C 0x2F2F GOTO L_tune232 +L_tune231: +0x172D 0x3001 MOVLW 1 +0x172E 0x00EE MOVWF _SW +L_tune232: +;main.c,809 :: ind = ind_mem; +0x172F 0x0143 MOVLB 3 +0x1730 0x0854 MOVF tune_ind_mem_L0, 0 +0x1731 0x0142 MOVLB 2 +0x1732 0x00BF MOVWF _ind +;main.c,810 :: cap = cap_mem; +0x1733 0x0143 MOVLB 3 +0x1734 0x0856 MOVF tune_cap_mem_L0, 0 +0x1735 0x0141 MOVLB 1 +0x1736 0x00EF MOVWF _cap +;main.c,811 :: Relay_set(ind, cap, sw); +0x1737 0x0143 MOVLB 3 +0x1738 0x0854 MOVF tune_ind_mem_L0, 0 +0x1739 0x0144 MOVLB 4 +0x173A 0x00A0 MOVWF FARG_Relay_set_L +0x173B 0x0143 MOVLB 3 +0x173C 0x0856 MOVF tune_cap_mem_L0, 0 +0x173D 0x0144 MOVLB 4 +0x173E 0x00A1 MOVWF FARG_Relay_set_C +0x173F 0x0141 MOVLB 1 +0x1740 0x086E MOVF _SW, 0 +0x1741 0x0144 MOVLB 4 +0x1742 0x00A2 MOVWF FARG_Relay_set_I +0x1743 0x3180 MOVLP 0 +0x1744 0x2621 CALL _Relay_set +0x1745 0x3190 MOVLP 16 +;main.c,812 :: } +L_tune230: +;main.c,814 :: asm CLRWDT; +0x1746 0x0064 CLRWDT +;main.c,815 :: get_SWR(); +0x1747 0x2221 CALL _get_swr +;main.c,816 :: Key_out = 1; +0x1748 0x0140 MOVLB 0 +0x1749 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +;main.c,817 :: return; +;main.c,818 :: } +L_end_tune: +0x174A 0x0008 RETURN +; end of _tune +_Btn_long: +;main.c,334 :: void Btn_long(){ +;main.c,335 :: Green = 0; +0x174B 0x0140 MOVLB 0 +0x174C 0x1197 BCF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,336 :: oled_wr_str(2, 0, "TUNE ", 9); +0x174D 0x3002 MOVLW 2 +0x174E 0x0144 MOVLB 4 +0x174F 0x00A3 MOVWF FARG_oled_wr_str_page +0x1750 0x01A4 CLRF FARG_oled_wr_str_col +0x1751 0x30D5 MOVLW ?lstr15_main +0x1752 0x00A5 MOVWF FARG_oled_wr_str_str +0x1753 0x3000 MOVLW hi_addr(?lstr15_main) +0x1754 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1755 0x3009 MOVLW 9 +0x1756 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1757 0x3180 MOVLP 0 +0x1758 0x246D CALL _oled_wr_str +0x1759 0x3190 MOVLP 16 +;main.c,337 :: tune(); +0x175A 0x259D CALL _tune +;main.c,338 :: SWR_ind = SWR; +0x175B 0x0143 MOVLB 3 +0x175C 0x083B MOVF _SWR, 0 +0x175D 0x0142 MOVLB 2 +0x175E 0x00C0 MOVWF _SWR_ind +0x175F 0x0143 MOVLB 3 +0x1760 0x083C MOVF _SWR+1, 0 +0x1761 0x0142 MOVLB 2 +0x1762 0x00C1 MOVWF _SWR_ind+1 +;main.c,339 :: SWR_fixed_old = SWR; +0x1763 0x0143 MOVLB 3 +0x1764 0x083B MOVF _SWR, 0 +0x1765 0x0142 MOVLB 2 +0x1766 0x00CA MOVWF _SWR_fixed_old +0x1767 0x0143 MOVLB 3 +0x1768 0x083C MOVF _SWR+1, 0 +0x1769 0x0142 MOVLB 2 +0x176A 0x00CB MOVWF _SWR_fixed_old+1 +;main.c,340 :: oled_wr_str(2, 0, "SWR ", 4); +0x176B 0x3002 MOVLW 2 +0x176C 0x0144 MOVLB 4 +0x176D 0x00A3 MOVWF FARG_oled_wr_str_page +0x176E 0x01A4 CLRF FARG_oled_wr_str_col +0x176F 0x30DF MOVLW ?lstr16_main +0x1770 0x00A5 MOVWF FARG_oled_wr_str_str +0x1771 0x3000 MOVLW hi_addr(?lstr16_main) +0x1772 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1773 0x3004 MOVLW 4 +0x1774 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1775 0x3180 MOVLP 0 +0x1776 0x246D CALL _oled_wr_str +0x1777 0x3190 MOVLP 16 +;main.c,341 :: oled_wr_str(2, 42, "=", 1); +0x1778 0x3002 MOVLW 2 +0x1779 0x0144 MOVLB 4 +0x177A 0x00A3 MOVWF FARG_oled_wr_str_page +0x177B 0x302A MOVLW 42 +0x177C 0x00A4 MOVWF FARG_oled_wr_str_col +0x177D 0x30E4 MOVLW ?lstr17_main +0x177E 0x00A5 MOVWF FARG_oled_wr_str_str +0x177F 0x3000 MOVLW hi_addr(?lstr17_main) +0x1780 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1781 0x3001 MOVLW 1 +0x1782 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1783 0x3180 MOVLP 0 +0x1784 0x246D CALL _oled_wr_str +0x1785 0x3190 MOVLP 16 +;main.c,342 :: draw_swr(SWR_ind); +0x1786 0x0142 MOVLB 2 +0x1787 0x0840 MOVF _SWR_ind, 0 +0x1788 0x0144 MOVLB 4 +0x1789 0x00A0 MOVWF FARG_draw_swr_s +0x178A 0x0142 MOVLB 2 +0x178B 0x0841 MOVF _SWR_ind+1, 0 +0x178C 0x0144 MOVLB 4 +0x178D 0x00A1 MOVWF FARG_draw_swr_s+1 +0x178E 0x3180 MOVLP 0 +0x178F 0x26D2 CALL _draw_swr +0x1790 0x3190 MOVLP 16 +;main.c,343 :: Green = 1; +0x1791 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,344 :: B_long = 0; +0x1792 0x0143 MOVLB 3 +0x1793 0x12A0 BCF _B_long, BitPos(_B_long+0) +;main.c,345 :: E_long = 0; +0x1794 0x10A0 BCF _E_long, BitPos(_E_long+0) +;main.c,346 :: btn_1_cnt = 0; +0x1795 0x0140 MOVLB 0 +0x1796 0x01E4 CLRF _btn_1_cnt +;main.c,347 :: volt_cnt = Tick; +0x1797 0x0142 MOVLB 2 +0x1798 0x084C MOVF _Tick, 0 +0x1799 0x00C2 MOVWF _volt_cnt +0x179A 0x084D MOVF _Tick+1, 0 +0x179B 0x00C3 MOVWF _volt_cnt+1 +0x179C 0x084E MOVF _Tick+2, 0 +0x179D 0x00C4 MOVWF _volt_cnt+2 +0x179E 0x084F MOVF _Tick+3, 0 +0x179F 0x00C5 MOVWF _volt_cnt+3 +;main.c,348 :: watch_cnt = Tick; +0x17A0 0x084C MOVF _Tick, 0 +0x17A1 0x00D0 MOVWF _watch_cnt +0x17A2 0x084D MOVF _Tick+1, 0 +0x17A3 0x00D1 MOVWF _watch_cnt+1 +0x17A4 0x084E MOVF _Tick+2, 0 +0x17A5 0x00D2 MOVWF _watch_cnt+2 +0x17A6 0x084F MOVF _Tick+3, 0 +0x17A7 0x00D3 MOVWF _watch_cnt+3 +;main.c,349 :: return; +;main.c,350 :: } +L_end_Btn_long: +0x17A8 0x0008 RETURN +; end of _Btn_long +_ADC_Init: +;__Lib_ADC_18xxx.c,24 :: +;__Lib_ADC_18xxx.c,25 :: +0x17A9 0x306C MOVLW _ADC_Get_Sample +0x17AA 0x0143 MOVLB 3 +0x17AB 0x00A1 MOVWF _ADC_Get_Sample_Ptr +0x17AC 0x3003 MOVLW hi_addr(_ADC_Get_Sample) +0x17AD 0x00A2 MOVWF _ADC_Get_Sample_Ptr+1 +0x17AE 0x3023 MOVLW FARG_ADC_Get_Sample_channel +0x17AF 0x00A3 MOVWF _ADC_Get_Sample_Ptr+2 +0x17B0 0x3002 MOVLW hi_addr(FARG_ADC_Get_Sample_channel) +0x17B1 0x00A4 MOVWF _ADC_Get_Sample_Ptr+3 +;__Lib_ADC_18xxx.c,27 :: +0x17B2 0x0141 MOVLB 1 +0x17B3 0x0193 CLRF ADCON0 +;__Lib_ADC_18xxx.c,28 :: +0x17B4 0x0194 CLRF ADCON1 +;__Lib_ADC_18xxx.c,29 :: +0x17B5 0x0195 CLRF ADCON2 +;__Lib_ADC_18xxx.c,30 :: +0x17B6 0x0196 CLRF ADCON3 +;__Lib_ADC_18xxx.c,32 :: +0x17B7 0x30EC MOVLW 236 +0x17B8 0x059A ANDWF ADREF, 1 +;__Lib_ADC_18xxx.c,34 :: +0x17B9 0x1613 BSF ADCON0, 4 +;__Lib_ADC_18xxx.c,35 :: +0x17BA 0x1513 BSF ADCON0, 2 +;__Lib_ADC_18xxx.c,36 :: +0x17BB 0x1793 BSF ADCON0, 7 +;__Lib_ADC_18xxx.c,37 :: +L_end_ADC_Init: +0x17BC 0x0008 RETURN +; end of _ADC_Init +_oled_voltage: +;oled_control.c,226 :: void oled_voltage(int Voltage) { +;oled_control.c,228 :: Soft_I2C_Start(); +0x1800 0x3180 MOVLP 0 +0x1801 0x2182 CALL _Soft_I2C_Start +0x1802 0x3198 MOVLP 24 +;oled_control.c,229 :: Soft_I2C_Write(oled_addr); // device addres +0x1803 0x0141 MOVLB 1 +0x1804 0x0847 MOVF oled_control_oled_addr, 0 +0x1805 0x0144 MOVLB 4 +0x1806 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x1807 0x3180 MOVLP 0 +0x1808 0x212A CALL _Soft_I2C_Write +0x1809 0x3198 MOVLP 24 +;oled_control.c,230 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data +0x180A 0x3040 MOVLW 64 +0x180B 0x0144 MOVLB 4 +0x180C 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x180D 0x3180 MOVLP 0 +0x180E 0x212A CALL _Soft_I2C_Write +0x180F 0x3198 MOVLP 24 +;oled_control.c,232 :: Voltage /= 10; +0x1810 0x300A MOVLW 10 +0x1811 0x00F4 MOVWF R4 +0x1812 0x3000 MOVLW 0 +0x1813 0x00F5 MOVWF R5 +0x1814 0x0143 MOVLB 3 +0x1815 0x0849 MOVF FARG_oled_voltage_Voltage, 0 +0x1816 0x00F0 MOVWF R0 +0x1817 0x084A MOVF FARG_oled_voltage_Voltage+1, 0 +0x1818 0x00F1 MOVWF R1 +0x1819 0x3190 MOVLP 16 +0x181A 0x2285 CALL _Div_16x16_S +0x181B 0x3198 MOVLP 24 +0x181C 0x0870 MOVF R0, 0 +0x181D 0x0143 MOVLB 3 +0x181E 0x00C9 MOVWF FARG_oled_voltage_Voltage +0x181F 0x0871 MOVF R1, 0 +0x1820 0x00CA MOVWF FARG_oled_voltage_Voltage+1 +;oled_control.c,233 :: if(Voltage < 300) Voltage = 300; +0x1821 0x3080 MOVLW 128 +0x1822 0x0671 XORWF R1, 0 +0x1823 0x00F2 MOVWF R2 +0x1824 0x3080 MOVLW 128 +0x1825 0x3A01 XORLW 1 +0x1826 0x0272 SUBWF R2, 0 +0x1827 0x1D03 BTFSS STATUS, 2 +0x1828 0x282B GOTO L__oled_voltage136 +0x1829 0x302C MOVLW 44 +0x182A 0x0270 SUBWF R0, 0 +L__oled_voltage136: +0x182B 0x1803 BTFSC STATUS, 0 +0x182C 0x2832 GOTO L_oled_voltage48 +0x182D 0x302C MOVLW 44 +0x182E 0x00C9 MOVWF FARG_oled_voltage_Voltage +0x182F 0x3001 MOVLW 1 +0x1830 0x00CA MOVWF FARG_oled_voltage_Voltage+1 +0x1831 0x2842 GOTO L_oled_voltage49 +L_oled_voltage48: +;oled_control.c,234 :: else if(Voltage > 420) Voltage = 420; +0x1832 0x3080 MOVLW 128 +0x1833 0x3A01 XORLW 1 +0x1834 0x00F0 MOVWF R0 +0x1835 0x3080 MOVLW 128 +0x1836 0x064A XORWF FARG_oled_voltage_Voltage+1, 0 +0x1837 0x0270 SUBWF R0, 0 +0x1838 0x1D03 BTFSS STATUS, 2 +0x1839 0x283C GOTO L__oled_voltage137 +0x183A 0x0849 MOVF FARG_oled_voltage_Voltage, 0 +0x183B 0x3CA4 SUBLW 164 +L__oled_voltage137: +0x183C 0x1803 BTFSC STATUS, 0 +0x183D 0x2842 GOTO L_oled_voltage50 +0x183E 0x30A4 MOVLW 164 +0x183F 0x00C9 MOVWF FARG_oled_voltage_Voltage +0x1840 0x3001 MOVLW 1 +0x1841 0x00CA MOVWF FARG_oled_voltage_Voltage+1 +L_oled_voltage50: +L_oled_voltage49: +;oled_control.c,235 :: Voltage = Voltage - 300; // 0 - 120 +0x1842 0x302C MOVLW 44 +0x1843 0x0249 SUBWF FARG_oled_voltage_Voltage, 0 +0x1844 0x00F3 MOVWF R3 +0x1845 0x3001 MOVLW 1 +0x1846 0x3B4A SUBWFB FARG_oled_voltage_Voltage+1, 0 +0x1847 0x00F4 MOVWF R4 +0x1848 0x0873 MOVF R3, 0 +0x1849 0x00C9 MOVWF FARG_oled_voltage_Voltage +0x184A 0x0874 MOVF R4, 0 +0x184B 0x00CA MOVWF FARG_oled_voltage_Voltage+1 +;oled_control.c,236 :: Voltage = Voltage * 32; +0x184C 0x3005 MOVLW 5 +0x184D 0x00F2 MOVWF R2 +0x184E 0x0873 MOVF R3, 0 +0x184F 0x00F0 MOVWF R0 +0x1850 0x0874 MOVF R4, 0 +0x1851 0x00F1 MOVWF R1 +0x1852 0x0872 MOVF R2, 0 +L__oled_voltage138: +0x1853 0x1903 BTFSC STATUS, 2 +0x1854 0x2859 GOTO L__oled_voltage139 +0x1855 0x35F0 LSLF R0, 1 +0x1856 0x0DF1 RLF R1, 1 +0x1857 0x3EFF ADDLW 255 +0x1858 0x2853 GOTO L__oled_voltage138 +L__oled_voltage139: +0x1859 0x0870 MOVF R0, 0 +0x185A 0x00C9 MOVWF FARG_oled_voltage_Voltage +0x185B 0x0871 MOVF R1, 0 +0x185C 0x00CA MOVWF FARG_oled_voltage_Voltage+1 +;oled_control.c,237 :: v = Voltage / 120; +0x185D 0x3078 MOVLW 120 +0x185E 0x00F4 MOVWF R4 +0x185F 0x3000 MOVLW 0 +0x1860 0x00F5 MOVWF R5 +0x1861 0x3190 MOVLP 16 +0x1862 0x2285 CALL _Div_16x16_S +0x1863 0x3198 MOVLP 24 +0x1864 0x0870 MOVF R0, 0 +0x1865 0x0143 MOVLB 3 +0x1866 0x00CC MOVWF oled_voltage_v_L0 +;oled_control.c,240 :: if(v >= 25) { u0 = v - 24; u1 = 8; u2 = 8; u3 = 8; } +0x1867 0x3019 MOVLW 25 +0x1868 0x0270 SUBWF R0, 0 +0x1869 0x1C03 BTFSS STATUS, 0 +0x186A 0x2875 GOTO L_oled_voltage51 +0x186B 0x3018 MOVLW 24 +0x186C 0x024C SUBWF oled_voltage_v_L0, 0 +0x186D 0x00CD MOVWF oled_voltage_u0_L0 +0x186E 0x3008 MOVLW 8 +0x186F 0x00CE MOVWF oled_voltage_u1_L0 +0x1870 0x3008 MOVLW 8 +0x1871 0x00CF MOVWF oled_voltage_u2_L0 +0x1872 0x3008 MOVLW 8 +0x1873 0x00D0 MOVWF oled_voltage_u3_L0 +0x1874 0x2893 GOTO L_oled_voltage52 +L_oled_voltage51: +;oled_control.c,241 :: else if(v >= 17) { u0 = 0; u1 = v - 16; u2 = 8; u3 = 8; } +0x1875 0x3011 MOVLW 17 +0x1876 0x024C SUBWF oled_voltage_v_L0, 0 +0x1877 0x1C03 BTFSS STATUS, 0 +0x1878 0x2882 GOTO L_oled_voltage53 +0x1879 0x01CD CLRF oled_voltage_u0_L0 +0x187A 0x3010 MOVLW 16 +0x187B 0x024C SUBWF oled_voltage_v_L0, 0 +0x187C 0x00CE MOVWF oled_voltage_u1_L0 +0x187D 0x3008 MOVLW 8 +0x187E 0x00CF MOVWF oled_voltage_u2_L0 +0x187F 0x3008 MOVLW 8 +0x1880 0x00D0 MOVWF oled_voltage_u3_L0 +0x1881 0x2893 GOTO L_oled_voltage54 +L_oled_voltage53: +;oled_control.c,242 :: else if(v >= 9 ) { u0 = 0; u1 = 0; u2 = v - 8; u3 = 8; } +0x1882 0x3009 MOVLW 9 +0x1883 0x024C SUBWF oled_voltage_v_L0, 0 +0x1884 0x1C03 BTFSS STATUS, 0 +0x1885 0x288E GOTO L_oled_voltage55 +0x1886 0x01CD CLRF oled_voltage_u0_L0 +0x1887 0x01CE CLRF oled_voltage_u1_L0 +0x1888 0x3008 MOVLW 8 +0x1889 0x024C SUBWF oled_voltage_v_L0, 0 +0x188A 0x00CF MOVWF oled_voltage_u2_L0 +0x188B 0x3008 MOVLW 8 +0x188C 0x00D0 MOVWF oled_voltage_u3_L0 +0x188D 0x2893 GOTO L_oled_voltage56 +L_oled_voltage55: +;oled_control.c,243 :: else { u0 = 0; u1 = 0; u2 = 0; u3 = v ; } +0x188E 0x01CD CLRF oled_voltage_u0_L0 +0x188F 0x01CE CLRF oled_voltage_u1_L0 +0x1890 0x01CF CLRF oled_voltage_u2_L0 +0x1891 0x084C MOVF oled_voltage_v_L0, 0 +0x1892 0x00D0 MOVWF oled_voltage_u3_L0 +L_oled_voltage56: +L_oled_voltage54: +L_oled_voltage52: +;oled_control.c,245 :: m = 128; +0x1893 0x3080 MOVLW 128 +0x1894 0x00D1 MOVWF oled_voltage_m_L0 +;oled_control.c,246 :: m = 255 - (m >> (u0-1)) +1; +0x1895 0x3001 MOVLW 1 +0x1896 0x024D SUBWF oled_voltage_u0_L0, 0 +0x1897 0x00F0 MOVWF R0 +0x1898 0x01F1 CLRF R1 +0x1899 0x3000 MOVLW 0 +0x189A 0x3BF1 SUBWFB R1, 1 +0x189B 0x0870 MOVF R0, 0 +0x189C 0x00F1 MOVWF R1 +0x189D 0x0851 MOVF oled_voltage_m_L0, 0 +0x189E 0x00F0 MOVWF R0 +0x189F 0x0871 MOVF R1, 0 +L__oled_voltage140: +0x18A0 0x1903 BTFSC STATUS, 2 +0x18A1 0x28A5 GOTO L__oled_voltage141 +0x18A2 0x36F0 LSRF R0, 1 +0x18A3 0x3EFF ADDLW 255 +0x18A4 0x28A0 GOTO L__oled_voltage140 +L__oled_voltage141: +0x18A5 0x0870 MOVF R0, 0 +0x18A6 0x3CFF SUBLW 255 +0x18A7 0x00D1 MOVWF oled_voltage_m_L0 +0x18A8 0x0AD1 INCF oled_voltage_m_L0, 1 +;oled_control.c,247 :: m = m | 0b00000011; +0x18A9 0x3003 MOVLW 3 +0x18AA 0x04D1 IORWF oled_voltage_m_L0, 1 +;oled_control.c,248 :: set_addressing (0, 119); +0x18AB 0x0144 MOVLB 4 +0x18AC 0x01AD CLRF FARG_set_addressing_pagenum +0x18AD 0x3077 MOVLW 119 +0x18AE 0x00AE MOVWF FARG_set_addressing_c_start +0x18AF 0x3180 MOVLP 0 +0x18B0 0x220B CALL _set_addressing +0x18B1 0x3198 MOVLP 24 +;oled_control.c,249 :: Soft_I2C_Write(m); +0x18B2 0x0143 MOVLB 3 +0x18B3 0x0851 MOVF oled_voltage_m_L0, 0 +0x18B4 0x0144 MOVLB 4 +0x18B5 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x18B6 0x3180 MOVLP 0 +0x18B7 0x212A CALL _Soft_I2C_Write +0x18B8 0x3198 MOVLP 24 +;oled_control.c,250 :: Soft_I2C_Write(m); +0x18B9 0x0143 MOVLB 3 +0x18BA 0x0851 MOVF oled_voltage_m_L0, 0 +0x18BB 0x0144 MOVLB 4 +0x18BC 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x18BD 0x3180 MOVLP 0 +0x18BE 0x212A CALL _Soft_I2C_Write +0x18BF 0x3198 MOVLP 24 +;oled_control.c,251 :: Soft_I2C_Write(m); +0x18C0 0x0143 MOVLB 3 +0x18C1 0x0851 MOVF oled_voltage_m_L0, 0 +0x18C2 0x0144 MOVLB 4 +0x18C3 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x18C4 0x3180 MOVLP 0 +0x18C5 0x212A CALL _Soft_I2C_Write +0x18C6 0x3198 MOVLP 24 +;oled_control.c,252 :: m = m | 0b00011111; +0x18C7 0x301F MOVLW 31 +0x18C8 0x0143 MOVLB 3 +0x18C9 0x04D1 IORWF oled_voltage_m_L0, 1 +;oled_control.c,253 :: set_addressing (0, 117); +0x18CA 0x0144 MOVLB 4 +0x18CB 0x01AD CLRF FARG_set_addressing_pagenum +0x18CC 0x3075 MOVLW 117 +0x18CD 0x00AE MOVWF FARG_set_addressing_c_start +0x18CE 0x3180 MOVLP 0 +0x18CF 0x220B CALL _set_addressing +0x18D0 0x3198 MOVLP 24 +;oled_control.c,254 :: Soft_I2C_Write(m); +0x18D1 0x0143 MOVLB 3 +0x18D2 0x0851 MOVF oled_voltage_m_L0, 0 +0x18D3 0x0144 MOVLB 4 +0x18D4 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x18D5 0x3180 MOVLP 0 +0x18D6 0x212A CALL _Soft_I2C_Write +0x18D7 0x3198 MOVLP 24 +;oled_control.c,255 :: Soft_I2C_Write(m); +0x18D8 0x0143 MOVLB 3 +0x18D9 0x0851 MOVF oled_voltage_m_L0, 0 +0x18DA 0x0144 MOVLB 4 +0x18DB 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x18DC 0x3180 MOVLP 0 +0x18DD 0x212A CALL _Soft_I2C_Write +0x18DE 0x3198 MOVLP 24 +;oled_control.c,256 :: set_addressing (0, 122); +0x18DF 0x0144 MOVLB 4 +0x18E0 0x01AD CLRF FARG_set_addressing_pagenum +0x18E1 0x307A MOVLW 122 +0x18E2 0x00AE MOVWF FARG_set_addressing_c_start +0x18E3 0x3180 MOVLP 0 +0x18E4 0x220B CALL _set_addressing +0x18E5 0x3198 MOVLP 24 +;oled_control.c,257 :: Soft_I2C_Write(m); +0x18E6 0x0143 MOVLB 3 +0x18E7 0x0851 MOVF oled_voltage_m_L0, 0 +0x18E8 0x0144 MOVLB 4 +0x18E9 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x18EA 0x3180 MOVLP 0 +0x18EB 0x212A CALL _Soft_I2C_Write +0x18EC 0x3198 MOVLP 24 +;oled_control.c,258 :: Soft_I2C_Write(m); +0x18ED 0x0143 MOVLB 3 +0x18EE 0x0851 MOVF oled_voltage_m_L0, 0 +0x18EF 0x0144 MOVLB 4 +0x18F0 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x18F1 0x3180 MOVLP 0 +0x18F2 0x212A CALL _Soft_I2C_Write +0x18F3 0x3198 MOVLP 24 +;oled_control.c,260 :: m = 128; +0x18F4 0x3080 MOVLW 128 +0x18F5 0x0143 MOVLB 3 +0x18F6 0x00D1 MOVWF oled_voltage_m_L0 +;oled_control.c,261 :: m = 255 - (m >> (u1-1)) + 1; +0x18F7 0x3001 MOVLW 1 +0x18F8 0x024E SUBWF oled_voltage_u1_L0, 0 +0x18F9 0x00F0 MOVWF R0 +0x18FA 0x01F1 CLRF R1 +0x18FB 0x3000 MOVLW 0 +0x18FC 0x3BF1 SUBWFB R1, 1 +0x18FD 0x0870 MOVF R0, 0 +0x18FE 0x00F1 MOVWF R1 +0x18FF 0x0851 MOVF oled_voltage_m_L0, 0 +0x1900 0x00F0 MOVWF R0 +0x1901 0x0871 MOVF R1, 0 +L__oled_voltage142: +0x1902 0x1903 BTFSC STATUS, 2 +0x1903 0x2907 GOTO L__oled_voltage143 +0x1904 0x36F0 LSRF R0, 1 +0x1905 0x3EFF ADDLW 255 +0x1906 0x2902 GOTO L__oled_voltage142 +L__oled_voltage143: +0x1907 0x0870 MOVF R0, 0 +0x1908 0x3CFF SUBLW 255 +0x1909 0x00D1 MOVWF oled_voltage_m_L0 +0x190A 0x0AD1 INCF oled_voltage_m_L0, 1 +;oled_control.c,262 :: set_addressing (1, 117); +0x190B 0x3001 MOVLW 1 +0x190C 0x0144 MOVLB 4 +0x190D 0x00AD MOVWF FARG_set_addressing_pagenum +0x190E 0x3075 MOVLW 117 +0x190F 0x00AE MOVWF FARG_set_addressing_c_start +0x1910 0x3180 MOVLP 0 +0x1911 0x220B CALL _set_addressing +0x1912 0x3198 MOVLP 24 +;oled_control.c,263 :: for(i=0; i<=6; i++) Soft_I2C_Write(m); +0x1913 0x0143 MOVLB 3 +0x1914 0x01CB CLRF oled_voltage_i_L0 +L_oled_voltage57: +0x1915 0x084B MOVF oled_voltage_i_L0, 0 +0x1916 0x3C06 SUBLW 6 +0x1917 0x1C03 BTFSS STATUS, 0 +0x1918 0x2922 GOTO L_oled_voltage58 +0x1919 0x0851 MOVF oled_voltage_m_L0, 0 +0x191A 0x0144 MOVLB 4 +0x191B 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x191C 0x3180 MOVLP 0 +0x191D 0x212A CALL _Soft_I2C_Write +0x191E 0x3198 MOVLP 24 +0x191F 0x0143 MOVLB 3 +0x1920 0x0ACB INCF oled_voltage_i_L0, 1 +0x1921 0x2915 GOTO L_oled_voltage57 +L_oled_voltage58: +;oled_control.c,265 :: m = 128; +0x1922 0x3080 MOVLW 128 +0x1923 0x00D1 MOVWF oled_voltage_m_L0 +;oled_control.c,266 :: m = 255 - (m >> (u2-1)) + 1; +0x1924 0x3001 MOVLW 1 +0x1925 0x024F SUBWF oled_voltage_u2_L0, 0 +0x1926 0x00F0 MOVWF R0 +0x1927 0x01F1 CLRF R1 +0x1928 0x3000 MOVLW 0 +0x1929 0x3BF1 SUBWFB R1, 1 +0x192A 0x0870 MOVF R0, 0 +0x192B 0x00F1 MOVWF R1 +0x192C 0x0851 MOVF oled_voltage_m_L0, 0 +0x192D 0x00F0 MOVWF R0 +0x192E 0x0871 MOVF R1, 0 +L__oled_voltage144: +0x192F 0x1903 BTFSC STATUS, 2 +0x1930 0x2934 GOTO L__oled_voltage145 +0x1931 0x36F0 LSRF R0, 1 +0x1932 0x3EFF ADDLW 255 +0x1933 0x292F GOTO L__oled_voltage144 +L__oled_voltage145: +0x1934 0x0870 MOVF R0, 0 +0x1935 0x3CFF SUBLW 255 +0x1936 0x00D1 MOVWF oled_voltage_m_L0 +0x1937 0x0AD1 INCF oled_voltage_m_L0, 1 +;oled_control.c,267 :: set_addressing (2, 117); +0x1938 0x3002 MOVLW 2 +0x1939 0x0144 MOVLB 4 +0x193A 0x00AD MOVWF FARG_set_addressing_pagenum +0x193B 0x3075 MOVLW 117 +0x193C 0x00AE MOVWF FARG_set_addressing_c_start +0x193D 0x3180 MOVLP 0 +0x193E 0x220B CALL _set_addressing +0x193F 0x3198 MOVLP 24 +;oled_control.c,268 :: for(i=0; i<=6; i++) Soft_I2C_Write(m); +0x1940 0x0143 MOVLB 3 +0x1941 0x01CB CLRF oled_voltage_i_L0 +L_oled_voltage60: +0x1942 0x084B MOVF oled_voltage_i_L0, 0 +0x1943 0x3C06 SUBLW 6 +0x1944 0x1C03 BTFSS STATUS, 0 +0x1945 0x294F GOTO L_oled_voltage61 +0x1946 0x0851 MOVF oled_voltage_m_L0, 0 +0x1947 0x0144 MOVLB 4 +0x1948 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x1949 0x3180 MOVLP 0 +0x194A 0x212A CALL _Soft_I2C_Write +0x194B 0x3198 MOVLP 24 +0x194C 0x0143 MOVLB 3 +0x194D 0x0ACB INCF oled_voltage_i_L0, 1 +0x194E 0x2942 GOTO L_oled_voltage60 +L_oled_voltage61: +;oled_control.c,270 :: m = 128; +0x194F 0x3080 MOVLW 128 +0x1950 0x00D1 MOVWF oled_voltage_m_L0 +;oled_control.c,271 :: m = 255 - (m >> (u3-1)) +1; +0x1951 0x3001 MOVLW 1 +0x1952 0x0250 SUBWF oled_voltage_u3_L0, 0 +0x1953 0x00F0 MOVWF R0 +0x1954 0x01F1 CLRF R1 +0x1955 0x3000 MOVLW 0 +0x1956 0x3BF1 SUBWFB R1, 1 +0x1957 0x0870 MOVF R0, 0 +0x1958 0x00F1 MOVWF R1 +0x1959 0x0851 MOVF oled_voltage_m_L0, 0 +0x195A 0x00F0 MOVWF R0 +0x195B 0x0871 MOVF R1, 0 +L__oled_voltage146: +0x195C 0x1903 BTFSC STATUS, 2 +0x195D 0x2961 GOTO L__oled_voltage147 +0x195E 0x36F0 LSRF R0, 1 +0x195F 0x3EFF ADDLW 255 +0x1960 0x295C GOTO L__oled_voltage146 +L__oled_voltage147: +0x1961 0x0870 MOVF R0, 0 +0x1962 0x3CFF SUBLW 255 +0x1963 0x00D1 MOVWF oled_voltage_m_L0 +0x1964 0x0AD1 INCF oled_voltage_m_L0, 1 +;oled_control.c,272 :: m = m | 0b11000000; +0x1965 0x30C0 MOVLW 192 +0x1966 0x04D1 IORWF oled_voltage_m_L0, 1 +;oled_control.c,273 :: set_addressing (3, 117); +0x1967 0x3003 MOVLW 3 +0x1968 0x0144 MOVLB 4 +0x1969 0x00AD MOVWF FARG_set_addressing_pagenum +0x196A 0x3075 MOVLW 117 +0x196B 0x00AE MOVWF FARG_set_addressing_c_start +0x196C 0x3180 MOVLP 0 +0x196D 0x220B CALL _set_addressing +0x196E 0x3198 MOVLP 24 +;oled_control.c,274 :: for(i=0; i<=6; i++) Soft_I2C_Write(m); +0x196F 0x0143 MOVLB 3 +0x1970 0x01CB CLRF oled_voltage_i_L0 +L_oled_voltage63: +0x1971 0x084B MOVF oled_voltage_i_L0, 0 +0x1972 0x3C06 SUBLW 6 +0x1973 0x1C03 BTFSS STATUS, 0 +0x1974 0x297E GOTO L_oled_voltage64 +0x1975 0x0851 MOVF oled_voltage_m_L0, 0 +0x1976 0x0144 MOVLB 4 +0x1977 0x00B4 MOVWF FARG_Soft_I2C_Write_d +0x1978 0x3180 MOVLP 0 +0x1979 0x212A CALL _Soft_I2C_Write +0x197A 0x3198 MOVLP 24 +0x197B 0x0143 MOVLB 3 +0x197C 0x0ACB INCF oled_voltage_i_L0, 1 +0x197D 0x2971 GOTO L_oled_voltage63 +L_oled_voltage64: +;oled_control.c,276 :: Soft_I2C_Stop (); +0x197E 0x3180 MOVLP 0 +0x197F 0x21F4 CALL _Soft_I2C_Stop +0x1980 0x3198 MOVLP 24 +;oled_control.c,277 :: return; +;oled_control.c,278 :: } +L_end_oled_voltage: +0x1981 0x0008 RETURN +; end of _oled_voltage +_power_off: +;main.c,449 :: void power_off(void){ +;main.c,452 :: GIE_bit = 0; +0x1982 0x138B BCF GIE_bit, BitPos(GIE_bit+0) +;main.c,453 :: T0EN_bit = 0; +0x1983 0x0140 MOVLB 0 +0x1984 0x139E BCF T0EN_bit, BitPos(T0EN_bit+0) +;main.c,454 :: TMR0IF_bit = 0; +0x1985 0x014E MOVLB 14 +0x1986 0x128C BCF TMR0IF_bit, BitPos(TMR0IF_bit+0) +;main.c,455 :: IOCIE_bit = 1; +0x1987 0x1616 BSF IOCIE_bit, BitPos(IOCIE_bit+0) +;main.c,456 :: IOCBF5_bit = 0; +0x1988 0x017E MOVLB 62 +0x1989 0x12CA BCF IOCBF5_bit, BitPos(IOCBF5_bit+0) +;main.c,457 :: IOCBN5_bit = 1; +0x198A 0x16C9 BSF IOCBN5_bit, BitPos(IOCBN5_bit+0) +;main.c,459 :: OLED_PWD = 0; +0x198B 0x0140 MOVLB 0 +0x198C 0x1216 BCF LATA4_bit, BitPos(LATA4_bit+0) +;main.c,460 :: RED = 1; +0x198D 0x1617 BSF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,461 :: Green = 1; +0x198E 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,463 :: C_sw = 0; +0x198F 0x101A BCF LATE0_bit, BitPos(LATE0_bit+0) +;main.c,464 :: SYSCMD_bit = 1; +0x1990 0x014F MOVLB 15 +0x1991 0x1796 BSF SYSCMD_bit, BitPos(SYSCMD_bit+0) +;main.c,466 :: btn_cnt = 0; +0x1992 0x0143 MOVLB 3 +0x1993 0x01C9 CLRF power_off_btn_cnt_L0 +;main.c,467 :: while(1){ +L_power_off100: +;main.c,468 :: if(btn_cnt==0){ Delay_ms(100); IOCBF5_bit = 0; asm sleep; } +0x1994 0x0849 MOVF power_off_btn_cnt_L0, 0 +0x1995 0x3A00 XORLW 0 +0x1996 0x1D03 BTFSS STATUS, 2 +0x1997 0x29A7 GOTO L_power_off102 +0x1998 0x3005 MOVLW 5 +0x1999 0x00FB MOVWF R11 +0x199A 0x300F MOVLW 15 +0x199B 0x00FC MOVWF R12 +0x199C 0x30F1 MOVLW 241 +0x199D 0x00FD MOVWF R13 +L_power_off103: +0x199E 0x0BFD DECFSZ R13, 1 +0x199F 0x299E GOTO L_power_off103 +0x19A0 0x0BFC DECFSZ R12, 1 +0x19A1 0x299E GOTO L_power_off103 +0x19A2 0x0BFB DECFSZ R11, 1 +0x19A3 0x299E GOTO L_power_off103 +0x19A4 0x017E MOVLB 62 +0x19A5 0x12CA BCF IOCBF5_bit, BitPos(IOCBF5_bit+0) +0x19A6 0x0063 SLEEP +L_power_off102: +;main.c,469 :: asm NOP; +0x19A7 0x0000 NOP +;main.c,470 :: Delay_ms(100); +0x19A8 0x3005 MOVLW 5 +0x19A9 0x00FB MOVWF R11 +0x19AA 0x300F MOVLW 15 +0x19AB 0x00FC MOVWF R12 +0x19AC 0x30F1 MOVLW 241 +0x19AD 0x00FD MOVWF R13 +L_power_off104: +0x19AE 0x0BFD DECFSZ R13, 1 +0x19AF 0x29AE GOTO L_power_off104 +0x19B0 0x0BFC DECFSZ R12, 1 +0x19B1 0x29AE GOTO L_power_off104 +0x19B2 0x0BFB DECFSZ R11, 1 +0x19B3 0x29AE GOTO L_power_off104 +;main.c,471 :: if(GetButton) btn_cnt++; +0x19B4 0x0140 MOVLB 0 +0x19B5 0x1A8D BTFSC PORTB, 5 +0x19B6 0x29B9 GOTO L__power_off326 +0x19B7 0x1403 BSF STATUS, 0 +0x19B8 0x29BA GOTO L__power_off327 +L__power_off326: +0x19B9 0x1003 BCF STATUS, 0 +L__power_off327: +0x19BA 0x1C03 BTFSS STATUS, 0 +0x19BB 0x29BF GOTO L_power_off105 +0x19BC 0x0143 MOVLB 3 +0x19BD 0x0AC9 INCF power_off_btn_cnt_L0, 1 +0x19BE 0x29C1 GOTO L_power_off106 +L_power_off105: +0x19BF 0x0143 MOVLB 3 +;main.c,472 :: else btn_cnt = 0; +0x19C0 0x01C9 CLRF power_off_btn_cnt_L0 +L_power_off106: +;main.c,473 :: if(btn_cnt>15) break; +0x19C1 0x0849 MOVF power_off_btn_cnt_L0, 0 +0x19C2 0x3C0F SUBLW 15 +0x19C3 0x1803 BTFSC STATUS, 0 +0x19C4 0x29C6 GOTO L_power_off107 +0x19C5 0x29C7 GOTO L_power_off101 +L_power_off107: +;main.c,474 :: } +0x19C6 0x2994 GOTO L_power_off100 +L_power_off101: +;main.c,476 :: SYSCMD_bit = 0; +0x19C7 0x014F MOVLB 15 +0x19C8 0x1396 BCF SYSCMD_bit, BitPos(SYSCMD_bit+0) +;main.c,478 :: IOCIE_bit = 0; +0x19C9 0x014E MOVLB 14 +0x19CA 0x1216 BCF IOCIE_bit, BitPos(IOCIE_bit+0) +;main.c,479 :: IOCBN5_bit = 0; +0x19CB 0x017E MOVLB 62 +0x19CC 0x12C9 BCF IOCBN5_bit, BitPos(IOCBN5_bit+0) +;main.c,480 :: IOCBF5_bit = 0; +0x19CD 0x12CA BCF IOCBF5_bit, BitPos(IOCBF5_bit+0) +;main.c,481 :: T0EN_bit = 1; +0x19CE 0x0140 MOVLB 0 +0x19CF 0x179E BSF T0EN_bit, BitPos(T0EN_bit+0) +;main.c,482 :: GIE_bit = 1; +0x19D0 0x178B BSF GIE_bit, BitPos(GIE_bit+0) +;main.c,484 :: gre = 1; +0x19D1 0x0143 MOVLB 3 +0x19D2 0x15A0 BSF _gre, BitPos(_gre+0) +;main.c,485 :: oled_start(); +0x19D3 0x3188 MOVLP 8 +0x19D4 0x22D4 CALL _oled_start +0x19D5 0x3198 MOVLP 24 +;main.c,486 :: while(GetButton){asm NOP;} +L_power_off108: +0x19D6 0x0140 MOVLB 0 +0x19D7 0x1A8D BTFSC PORTB, 5 +0x19D8 0x29DB GOTO L__power_off328 +0x19D9 0x1403 BSF STATUS, 0 +0x19DA 0x29DC GOTO L__power_off329 +L__power_off328: +0x19DB 0x1003 BCF STATUS, 0 +L__power_off329: +0x19DC 0x1C03 BTFSS STATUS, 0 +0x19DD 0x29E0 GOTO L_power_off109 +0x19DE 0x0000 NOP +0x19DF 0x29D6 GOTO L_power_off108 +L_power_off109: +;main.c,487 :: B_short = 0; +0x19E0 0x0143 MOVLB 3 +0x19E1 0x1320 BCF _B_short, BitPos(_B_short+0) +;main.c,488 :: B_long = 0; +0x19E2 0x12A0 BCF _B_long, BitPos(_B_long+0) +;main.c,489 :: B_xlong = 0; +0x19E3 0x1220 BCF _B_xlong, BitPos(_B_xlong+0) +;main.c,490 :: E_long = 0; +0x19E4 0x10A0 BCF _E_long, BitPos(_E_long+0) +;main.c,491 :: btn_1_cnt = 0; +0x19E5 0x0140 MOVLB 0 +0x19E6 0x01E4 CLRF _btn_1_cnt +;main.c,492 :: btn_cnt = Tick; +0x19E7 0x0142 MOVLB 2 +0x19E8 0x084C MOVF _Tick, 0 +0x19E9 0x0143 MOVLB 3 +0x19EA 0x00C9 MOVWF power_off_btn_cnt_L0 +;main.c,493 :: return; +;main.c,494 :: } +L_end_power_off: +0x19EB 0x0008 RETURN +; end of _power_off +_watch_swr: +;main.c,174 :: void watch_swr(void){ +;main.c,176 :: int delta = Auto_delta - 100; +0x19EC 0x3064 MOVLW 100 +0x19ED 0x0141 MOVLB 1 +0x19EE 0x026A SUBWF _Auto_delta, 0 +0x19EF 0x0143 MOVLB 3 +0x19F0 0x00C3 MOVWF watch_swr_delta_L0 +0x19F1 0x3000 MOVLW 0 +0x19F2 0x0141 MOVLB 1 +0x19F3 0x3B6B SUBWFB _Auto_delta+1, 0 +0x19F4 0x0143 MOVLB 3 +0x19F5 0x00C4 MOVWF watch_swr_delta_L0+1 +;main.c,179 :: Delay_ms(50); +0x19F6 0x3003 MOVLW 3 +0x19F7 0x00FB MOVWF R11 +0x19F8 0x3008 MOVLW 8 +0x19F9 0x00FC MOVWF R12 +0x19FA 0x3077 MOVLW 119 +0x19FB 0x00FD MOVWF R13 +L_watch_swr39: +0x19FC 0x0BFD DECFSZ R13, 1 +0x19FD 0x29FC GOTO L_watch_swr39 +0x19FE 0x0BFC DECFSZ R12, 1 +0x19FF 0x29FC GOTO L_watch_swr39 +0x1A00 0x0BFB DECFSZ R11, 1 +0x1A01 0x29FC GOTO L_watch_swr39 +;main.c,181 :: cnt = 600; +0x1A02 0x3058 MOVLW 88 +0x1A03 0x00C2 MOVWF watch_swr_cnt_L0 +;main.c,182 :: PWR_fixed = 0; +0x1A04 0x01C5 CLRF watch_swr_PWR_fixed_L0 +0x1A05 0x01C6 CLRF watch_swr_PWR_fixed_L0+1 +;main.c,183 :: SWR_fixed = 0; +0x1A06 0x01C7 CLRF watch_swr_SWR_fixed_L0 +0x1A07 0x01C8 CLRF watch_swr_SWR_fixed_L0+1 +;main.c,184 :: for(peak_cnt=0; peak_cntPWR_fixed) {PWR_fixed = PWR; SWR_fixed = SWR;} +0x1A10 0x3080 MOVLW 128 +0x1A11 0x0646 XORWF watch_swr_PWR_fixed_L0+1, 0 +0x1A12 0x00F0 MOVWF R0 +0x1A13 0x3080 MOVLW 128 +0x1A14 0x0628 XORWF _PWR+1, 0 +0x1A15 0x0270 SUBWF R0, 0 +0x1A16 0x1D03 BTFSS STATUS, 2 +0x1A17 0x2A1A GOTO L__watch_swr260 +0x1A18 0x0827 MOVF _PWR, 0 +0x1A19 0x0245 SUBWF watch_swr_PWR_fixed_L0, 0 +L__watch_swr260: +0x1A1A 0x1803 BTFSC STATUS, 0 +0x1A1B 0x2A24 GOTO L_watch_swr43 +0x1A1C 0x0827 MOVF _PWR, 0 +0x1A1D 0x00C5 MOVWF watch_swr_PWR_fixed_L0 +0x1A1E 0x0828 MOVF _PWR+1, 0 +0x1A1F 0x00C6 MOVWF watch_swr_PWR_fixed_L0+1 +0x1A20 0x083B MOVF _SWR, 0 +0x1A21 0x00C7 MOVWF watch_swr_SWR_fixed_L0 +0x1A22 0x083C MOVF _SWR+1, 0 +0x1A23 0x00C8 MOVWF watch_swr_SWR_fixed_L0+1 +L_watch_swr43: +;main.c,187 :: Delay_ms(1); +0x1A24 0x300B MOVLW 11 +0x1A25 0x00FC MOVWF R12 +0x1A26 0x3062 MOVLW 98 +0x1A27 0x00FD MOVWF R13 +L_watch_swr44: +0x1A28 0x0BFD DECFSZ R13, 1 +0x1A29 0x2A28 GOTO L_watch_swr44 +0x1A2A 0x0BFC DECFSZ R12, 1 +0x1A2B 0x2A28 GOTO L_watch_swr44 +0x1A2C 0x0000 NOP +;main.c,184 :: for(peak_cnt=0; peak_cnt0){ +0x1A2F 0x3080 MOVLW 128 +0x1A30 0x00F0 MOVWF R0 +0x1A31 0x3080 MOVLW 128 +0x1A32 0x0646 XORWF watch_swr_PWR_fixed_L0+1, 0 +0x1A33 0x0270 SUBWF R0, 0 +0x1A34 0x1D03 BTFSS STATUS, 2 +0x1A35 0x2A38 GOTO L__watch_swr261 +0x1A36 0x0845 MOVF watch_swr_PWR_fixed_L0, 0 +0x1A37 0x3C00 SUBLW 0 +L__watch_swr261: +0x1A38 0x1803 BTFSC STATUS, 0 +0x1A39 0x2A85 GOTO L_watch_swr45 +;main.c,191 :: if(OLED_PWD){ +0x1A3A 0x0140 MOVLB 0 +0x1A3B 0x1E16 BTFSS LATA4_bit, BitPos(LATA4_bit+0) +0x1A3C 0x2A82 GOTO L_watch_swr46 +;main.c,192 :: disp_cnt = Tick + Disp_time*1000; +0x1A3D 0x0853 MOVF _Disp_time, 0 +0x1A3E 0x00F0 MOVWF R0 +0x1A3F 0x0854 MOVF _Disp_time+1, 0 +0x1A40 0x00F1 MOVWF R1 +0x1A41 0x0855 MOVF _Disp_time+2, 0 +0x1A42 0x00F2 MOVWF R2 +0x1A43 0x0856 MOVF _Disp_time+3, 0 +0x1A44 0x00F3 MOVWF R3 +0x1A45 0x30E8 MOVLW 232 +0x1A46 0x00F4 MOVWF R4 +0x1A47 0x3003 MOVLW 3 +0x1A48 0x00F5 MOVWF R5 +0x1A49 0x01F6 CLRF R6 +0x1A4A 0x01F7 CLRF R7 +0x1A4B 0x3180 MOVLP 0 +0x1A4C 0x21BE CALL _Mul_32x32_U +0x1A4D 0x3198 MOVLP 24 +0x1A4E 0x0870 MOVF R0, 0 +0x1A4F 0x0142 MOVLB 2 +0x1A50 0x074C ADDWF _Tick, 0 +0x1A51 0x0143 MOVLB 3 +0x1A52 0x00BD MOVWF _disp_cnt +0x1A53 0x0871 MOVF R1, 0 +0x1A54 0x0142 MOVLB 2 +0x1A55 0x3D4D ADDWFC _Tick+1, 0 +0x1A56 0x0143 MOVLB 3 +0x1A57 0x00BE MOVWF _disp_cnt+1 +0x1A58 0x0872 MOVF R2, 0 +0x1A59 0x0142 MOVLB 2 +0x1A5A 0x3D4E ADDWFC _Tick+2, 0 +0x1A5B 0x0143 MOVLB 3 +0x1A5C 0x00BF MOVWF _disp_cnt+2 +0x1A5D 0x0873 MOVF R3, 0 +0x1A5E 0x0142 MOVLB 2 +0x1A5F 0x3D4F ADDWFC _Tick+3, 0 +0x1A60 0x0143 MOVLB 3 +0x1A61 0x00C0 MOVWF _disp_cnt+3 +;main.c,193 :: off_cnt = Tick + Off_time*1000; +0x1A62 0x0140 MOVLB 0 +0x1A63 0x0857 MOVF _Off_time, 0 +0x1A64 0x00F0 MOVWF R0 +0x1A65 0x0858 MOVF _Off_time+1, 0 +0x1A66 0x00F1 MOVWF R1 +0x1A67 0x0859 MOVF _Off_time+2, 0 +0x1A68 0x00F2 MOVWF R2 +0x1A69 0x085A MOVF _Off_time+3, 0 +0x1A6A 0x00F3 MOVWF R3 +0x1A6B 0x30E8 MOVLW 232 +0x1A6C 0x00F4 MOVWF R4 +0x1A6D 0x3003 MOVLW 3 +0x1A6E 0x00F5 MOVWF R5 +0x1A6F 0x01F6 CLRF R6 +0x1A70 0x01F7 CLRF R7 +0x1A71 0x3180 MOVLP 0 +0x1A72 0x21BE CALL _Mul_32x32_U +0x1A73 0x3198 MOVLP 24 +0x1A74 0x0870 MOVF R0, 0 +0x1A75 0x0142 MOVLB 2 +0x1A76 0x074C ADDWF _Tick, 0 +0x1A77 0x00EC MOVWF _off_cnt +0x1A78 0x0871 MOVF R1, 0 +0x1A79 0x3D4D ADDWFC _Tick+1, 0 +0x1A7A 0x00ED MOVWF _off_cnt+1 +0x1A7B 0x0872 MOVF R2, 0 +0x1A7C 0x3D4E ADDWFC _Tick+2, 0 +0x1A7D 0x00EE MOVWF _off_cnt+2 +0x1A7E 0x0873 MOVF R3, 0 +0x1A7F 0x3D4F ADDWFC _Tick+3, 0 +0x1A80 0x00EF MOVWF _off_cnt+3 +;main.c,194 :: } +0x1A81 0x2A85 GOTO L_watch_swr47 +L_watch_swr46: +;main.c,195 :: else oled_start(); +0x1A82 0x3188 MOVLP 8 +0x1A83 0x22D4 CALL _oled_start +0x1A84 0x3198 MOVLP 24 +L_watch_swr47: +;main.c,196 :: }; +L_watch_swr45: +;main.c,198 :: if(PWR_fixed!=PWR_fixed_old){ +0x1A85 0x0143 MOVLB 3 +0x1A86 0x0846 MOVF watch_swr_PWR_fixed_L0+1, 0 +0x1A87 0x0142 MOVLB 2 +0x1A88 0x0647 XORWF _PWR_fixed_old+1, 0 +0x1A89 0x1D03 BTFSS STATUS, 2 +0x1A8A 0x2A8E GOTO L__watch_swr262 +0x1A8B 0x0846 MOVF _PWR_fixed_old, 0 +0x1A8C 0x0143 MOVLB 3 +0x1A8D 0x0645 XORWF watch_swr_PWR_fixed_L0, 0 +L__watch_swr262: +0x1A8E 0x1903 BTFSC STATUS, 2 +0x1A8F 0x2ABE GOTO L_watch_swr48 +;main.c,199 :: if(Overflow) +0x1A90 0x0143 MOVLB 3 +0x1A91 0x1D20 BTFSS _Overflow, BitPos(_Overflow+0) +0x1A92 0x2AA1 GOTO L_watch_swr49 +;main.c,200 :: oled_wr_str(0, 42, ">", 1); +0x1A93 0x0144 MOVLB 4 +0x1A94 0x01A3 CLRF FARG_oled_wr_str_page +0x1A95 0x302A MOVLW 42 +0x1A96 0x00A4 MOVWF FARG_oled_wr_str_col +0x1A97 0x30E6 MOVLW ?lstr5_main +0x1A98 0x00A5 MOVWF FARG_oled_wr_str_str +0x1A99 0x3000 MOVLW hi_addr(?lstr5_main) +0x1A9A 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1A9B 0x3001 MOVLW 1 +0x1A9C 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1A9D 0x3180 MOVLP 0 +0x1A9E 0x246D CALL _oled_wr_str +0x1A9F 0x3198 MOVLP 24 +0x1AA0 0x2AAE GOTO L_watch_swr50 +L_watch_swr49: +;main.c,202 :: oled_wr_str(0, 42, "=", 1); +0x1AA1 0x0144 MOVLB 4 +0x1AA2 0x01A3 CLRF FARG_oled_wr_str_page +0x1AA3 0x302A MOVLW 42 +0x1AA4 0x00A4 MOVWF FARG_oled_wr_str_col +0x1AA5 0x30E8 MOVLW ?lstr6_main +0x1AA6 0x00A5 MOVWF FARG_oled_wr_str_str +0x1AA7 0x3000 MOVLW hi_addr(?lstr6_main) +0x1AA8 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1AA9 0x3001 MOVLW 1 +0x1AAA 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1AAB 0x3180 MOVLP 0 +0x1AAC 0x246D CALL _oled_wr_str +0x1AAD 0x3198 MOVLP 24 +L_watch_swr50: +;main.c,203 :: PWR_fixed_old = PWR_fixed; +0x1AAE 0x0143 MOVLB 3 +0x1AAF 0x0845 MOVF watch_swr_PWR_fixed_L0, 0 +0x1AB0 0x0142 MOVLB 2 +0x1AB1 0x00C6 MOVWF _PWR_fixed_old +0x1AB2 0x0143 MOVLB 3 +0x1AB3 0x0846 MOVF watch_swr_PWR_fixed_L0+1, 0 +0x1AB4 0x0142 MOVLB 2 +0x1AB5 0x00C7 MOVWF _PWR_fixed_old+1 +;main.c,204 :: draw_power(PWR_fixed); +0x1AB6 0x0143 MOVLB 3 +0x1AB7 0x0845 MOVF watch_swr_PWR_fixed_L0, 0 +0x1AB8 0x00E6 MOVWF FARG_draw_power_p +0x1AB9 0x0846 MOVF watch_swr_PWR_fixed_L0+1, 0 +0x1ABA 0x00E7 MOVWF FARG_draw_power_p+1 +0x1ABB 0x3190 MOVLP 16 +0x1ABC 0x2075 CALL _draw_power +0x1ABD 0x3198 MOVLP 24 +;main.c,205 :: } +L_watch_swr48: +;main.c,207 :: if(PWR_fixed<10){ +0x1ABE 0x3080 MOVLW 128 +0x1ABF 0x0143 MOVLB 3 +0x1AC0 0x0646 XORWF watch_swr_PWR_fixed_L0+1, 0 +0x1AC1 0x00F0 MOVWF R0 +0x1AC2 0x3080 MOVLW 128 +0x1AC3 0x0270 SUBWF R0, 0 +0x1AC4 0x1D03 BTFSS STATUS, 2 +0x1AC5 0x2AC8 GOTO L__watch_swr263 +0x1AC6 0x300A MOVLW 10 +0x1AC7 0x0245 SUBWF watch_swr_PWR_fixed_L0, 0 +L__watch_swr263: +0x1AC8 0x1803 BTFSC STATUS, 0 +0x1AC9 0x2AD8 GOTO L_watch_swr51 +;main.c,208 :: SWR_fixed = 0; +0x1ACA 0x01C7 CLRF watch_swr_SWR_fixed_L0 +0x1ACB 0x01C8 CLRF watch_swr_SWR_fixed_L0+1 +;main.c,210 :: draw_swr(SWR_ind); +0x1ACC 0x0142 MOVLB 2 +0x1ACD 0x0840 MOVF _SWR_ind, 0 +0x1ACE 0x0144 MOVLB 4 +0x1ACF 0x00A0 MOVWF FARG_draw_swr_s +0x1AD0 0x0142 MOVLB 2 +0x1AD1 0x0841 MOVF _SWR_ind+1, 0 +0x1AD2 0x0144 MOVLB 4 +0x1AD3 0x00A1 MOVWF FARG_draw_swr_s+1 +0x1AD4 0x3180 MOVLP 0 +0x1AD5 0x26D2 CALL _draw_swr +0x1AD6 0x3198 MOVLP 24 +;main.c,211 :: return; +0x1AD7 0x2C12 GOTO L_end_watch_swr +;main.c,212 :: } +L_watch_swr51: +;main.c,214 :: if(Overflow){ +0x1AD8 0x0143 MOVLB 3 +0x1AD9 0x1D20 BTFSS _Overflow, BitPos(_Overflow+0) +0x1ADA 0x2B4F GOTO L_watch_swr52 +;main.c,215 :: for(cnt=3; cnt!=0; cnt--){ +0x1ADB 0x3003 MOVLW 3 +0x1ADC 0x00C2 MOVWF watch_swr_cnt_L0 +L_watch_swr53: +0x1ADD 0x0842 MOVF watch_swr_cnt_L0, 0 +0x1ADE 0x3A00 XORLW 0 +0x1ADF 0x1903 BTFSC STATUS, 2 +0x1AE0 0x2B19 GOTO L_watch_swr54 +;main.c,216 :: oled_wr_str(2, 6, "OVERLOAD ", 9); +0x1AE1 0x3002 MOVLW 2 +0x1AE2 0x0144 MOVLB 4 +0x1AE3 0x00A3 MOVWF FARG_oled_wr_str_page +0x1AE4 0x3006 MOVLW 6 +0x1AE5 0x00A4 MOVWF FARG_oled_wr_str_col +0x1AE6 0x3020 MOVLW ?lstr7_main +0x1AE7 0x00A5 MOVWF FARG_oled_wr_str_str +0x1AE8 0x3001 MOVLW hi_addr(?lstr7_main) +0x1AE9 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1AEA 0x3009 MOVLW 9 +0x1AEB 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1AEC 0x3180 MOVLP 0 +0x1AED 0x246D CALL _oled_wr_str +0x1AEE 0x3198 MOVLP 24 +;main.c,217 :: Delay_ms(500); +0x1AEF 0x3015 MOVLW 21 +0x1AF0 0x00FB MOVWF R11 +0x1AF1 0x304B MOVLW 75 +0x1AF2 0x00FC MOVWF R12 +0x1AF3 0x30BE MOVLW 190 +0x1AF4 0x00FD MOVWF R13 +L_watch_swr56: +0x1AF5 0x0BFD DECFSZ R13, 1 +0x1AF6 0x2AF5 GOTO L_watch_swr56 +0x1AF7 0x0BFC DECFSZ R12, 1 +0x1AF8 0x2AF5 GOTO L_watch_swr56 +0x1AF9 0x0BFB DECFSZ R11, 1 +0x1AFA 0x2AF5 GOTO L_watch_swr56 +0x1AFB 0x0000 NOP +;main.c,218 :: oled_wr_str(2, 0, " ", 9); +0x1AFC 0x3002 MOVLW 2 +0x1AFD 0x0144 MOVLB 4 +0x1AFE 0x00A3 MOVWF FARG_oled_wr_str_page +0x1AFF 0x01A4 CLRF FARG_oled_wr_str_col +0x1B00 0x30CB MOVLW ?lstr8_main +0x1B01 0x00A5 MOVWF FARG_oled_wr_str_str +0x1B02 0x3000 MOVLW hi_addr(?lstr8_main) +0x1B03 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1B04 0x3009 MOVLW 9 +0x1B05 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1B06 0x3180 MOVLP 0 +0x1B07 0x246D CALL _oled_wr_str +0x1B08 0x3198 MOVLP 24 +;main.c,219 :: Delay_ms(500); +0x1B09 0x3015 MOVLW 21 +0x1B0A 0x00FB MOVWF R11 +0x1B0B 0x304B MOVLW 75 +0x1B0C 0x00FC MOVWF R12 +0x1B0D 0x30BE MOVLW 190 +0x1B0E 0x00FD MOVWF R13 +L_watch_swr57: +0x1B0F 0x0BFD DECFSZ R13, 1 +0x1B10 0x2B0F GOTO L_watch_swr57 +0x1B11 0x0BFC DECFSZ R12, 1 +0x1B12 0x2B0F GOTO L_watch_swr57 +0x1B13 0x0BFB DECFSZ R11, 1 +0x1B14 0x2B0F GOTO L_watch_swr57 +0x1B15 0x0000 NOP +;main.c,215 :: for(cnt=3; cnt!=0; cnt--){ +0x1B16 0x0143 MOVLB 3 +0x1B17 0x03C2 DECF watch_swr_cnt_L0, 1 +;main.c,220 :: } +0x1B18 0x2ADD GOTO L_watch_swr53 +L_watch_swr54: +;main.c,221 :: oled_wr_str(2, 0, "SWR ", 9); +0x1B19 0x3002 MOVLW 2 +0x1B1A 0x0144 MOVLB 4 +0x1B1B 0x00A3 MOVWF FARG_oled_wr_str_page +0x1B1C 0x01A4 CLRF FARG_oled_wr_str_col +0x1B1D 0x30B6 MOVLW ?lstr9_main +0x1B1E 0x00A5 MOVWF FARG_oled_wr_str_str +0x1B1F 0x3000 MOVLW hi_addr(?lstr9_main) +0x1B20 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1B21 0x3009 MOVLW 9 +0x1B22 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1B23 0x3180 MOVLP 0 +0x1B24 0x246D CALL _oled_wr_str +0x1B25 0x3198 MOVLP 24 +;main.c,222 :: oled_wr_str(2, 42, "=", 1); +0x1B26 0x3002 MOVLW 2 +0x1B27 0x0144 MOVLB 4 +0x1B28 0x00A3 MOVWF FARG_oled_wr_str_page +0x1B29 0x302A MOVLW 42 +0x1B2A 0x00A4 MOVWF FARG_oled_wr_str_col +0x1B2B 0x30C0 MOVLW ?lstr10_main +0x1B2C 0x00A5 MOVWF FARG_oled_wr_str_str +0x1B2D 0x3000 MOVLW hi_addr(?lstr10_main) +0x1B2E 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1B2F 0x3001 MOVLW 1 +0x1B30 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1B31 0x3180 MOVLP 0 +0x1B32 0x246D CALL _oled_wr_str +0x1B33 0x3198 MOVLP 24 +;main.c,223 :: draw_swr(SWR_fixed); +0x1B34 0x0143 MOVLB 3 +0x1B35 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1B36 0x0144 MOVLB 4 +0x1B37 0x00A0 MOVWF FARG_draw_swr_s +0x1B38 0x0143 MOVLB 3 +0x1B39 0x0848 MOVF watch_swr_SWR_fixed_L0+1, 0 +0x1B3A 0x0144 MOVLB 4 +0x1B3B 0x00A1 MOVWF FARG_draw_swr_s+1 +0x1B3C 0x3180 MOVLP 0 +0x1B3D 0x26D2 CALL _draw_swr +0x1B3E 0x3198 MOVLP 24 +;main.c,224 :: Delay_ms(500); +0x1B3F 0x3015 MOVLW 21 +0x1B40 0x00FB MOVWF R11 +0x1B41 0x304B MOVLW 75 +0x1B42 0x00FC MOVWF R12 +0x1B43 0x30BE MOVLW 190 +0x1B44 0x00FD MOVWF R13 +L_watch_swr58: +0x1B45 0x0BFD DECFSZ R13, 1 +0x1B46 0x2B45 GOTO L_watch_swr58 +0x1B47 0x0BFC DECFSZ R12, 1 +0x1B48 0x2B45 GOTO L_watch_swr58 +0x1B49 0x0BFB DECFSZ R11, 1 +0x1B4A 0x2B45 GOTO L_watch_swr58 +0x1B4B 0x0000 NOP +;main.c,225 :: Overflow = 0; +0x1B4C 0x0143 MOVLB 3 +0x1B4D 0x1120 BCF _Overflow, BitPos(_Overflow+0) +;main.c,226 :: } +0x1B4E 0x2BE9 GOTO L_watch_swr59 +L_watch_swr52: +;main.c,228 :: else if(PWR_fixed>=min_for_start && PWR_fixed=Auto_delta || SWR_Fixed>900 ) { +0x1B4F 0x3080 MOVLW 128 +0x1B50 0x0646 XORWF watch_swr_PWR_fixed_L0+1, 0 +0x1B51 0x00F0 MOVWF R0 +0x1B52 0x3080 MOVLW 128 +0x1B53 0x0141 MOVLB 1 +0x1B54 0x0643 XORWF _min_for_start+1, 0 +0x1B55 0x0270 SUBWF R0, 0 +0x1B56 0x1D03 BTFSS STATUS, 2 +0x1B57 0x2B5B GOTO L__watch_swr264 +0x1B58 0x0842 MOVF _min_for_start, 0 +0x1B59 0x0143 MOVLB 3 +0x1B5A 0x0245 SUBWF watch_swr_PWR_fixed_L0, 0 +L__watch_swr264: +0x1B5B 0x1C03 BTFSS STATUS, 0 +0x1B5C 0x2B7C GOTO L__watch_swr238 +0x1B5D 0x0143 MOVLB 3 +0x1B5E 0x3080 MOVLW 128 +0x1B5F 0x0646 XORWF watch_swr_PWR_fixed_L0+1, 0 +0x1B60 0x00F0 MOVWF R0 +0x1B61 0x3080 MOVLW 128 +0x1B62 0x0141 MOVLB 1 +0x1B63 0x0629 XORWF _max_for_start+1, 0 +0x1B64 0x0270 SUBWF R0, 0 +0x1B65 0x1D03 BTFSS STATUS, 2 +0x1B66 0x2B6A GOTO L__watch_swr265 +0x1B67 0x0828 MOVF _max_for_start, 0 +0x1B68 0x0143 MOVLB 3 +0x1B69 0x0245 SUBWF watch_swr_PWR_fixed_L0, 0 +L__watch_swr265: +0x1B6A 0x1803 BTFSC STATUS, 0 +0x1B6B 0x2B7C GOTO L__watch_swr238 +0x1B6C 0x0143 MOVLB 3 +0x1B6D 0x3080 MOVLW 128 +0x1B6E 0x0648 XORWF watch_swr_SWR_fixed_L0+1, 0 +0x1B6F 0x00F0 MOVWF R0 +0x1B70 0x3080 MOVLW 128 +0x1B71 0x0141 MOVLB 1 +0x1B72 0x066B XORWF _Auto_delta+1, 0 +0x1B73 0x0270 SUBWF R0, 0 +0x1B74 0x1D03 BTFSS STATUS, 2 +0x1B75 0x2B79 GOTO L__watch_swr266 +0x1B76 0x086A MOVF _Auto_delta, 0 +0x1B77 0x0143 MOVLB 3 +0x1B78 0x0247 SUBWF watch_swr_SWR_fixed_L0, 0 +L__watch_swr266: +0x1B79 0x1C03 BTFSS STATUS, 0 +0x1B7A 0x2B7C GOTO L__watch_swr238 +0x1B7B 0x2B8A GOTO L__watch_swr237 +L__watch_swr238: +0x1B7C 0x0143 MOVLB 3 +0x1B7D 0x3080 MOVLW 128 +0x1B7E 0x3A03 XORLW 3 +0x1B7F 0x00F0 MOVWF R0 +0x1B80 0x3080 MOVLW 128 +0x1B81 0x0648 XORWF watch_swr_SWR_fixed_L0+1, 0 +0x1B82 0x0270 SUBWF R0, 0 +0x1B83 0x1D03 BTFSS STATUS, 2 +0x1B84 0x2B87 GOTO L__watch_swr267 +0x1B85 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1B86 0x3C84 SUBLW 132 +L__watch_swr267: +0x1B87 0x1C03 BTFSS STATUS, 0 +0x1B88 0x2B8A GOTO L__watch_swr237 +0x1B89 0x2BE9 GOTO L_watch_swr64 +L__watch_swr237: +;main.c,229 :: if( (SWR_fixed>SWR_fixed_old && (SWR_fixed-SWR_fixed_old)>delta) || (SWR_fixeddelta) || SWR_Fixed>900 ) { +0x1B8A 0x3080 MOVLW 128 +0x1B8B 0x0142 MOVLB 2 +0x1B8C 0x064B XORWF _SWR_fixed_old+1, 0 +0x1B8D 0x00F0 MOVWF R0 +0x1B8E 0x3080 MOVLW 128 +0x1B8F 0x0143 MOVLB 3 +0x1B90 0x0648 XORWF watch_swr_SWR_fixed_L0+1, 0 +0x1B91 0x0270 SUBWF R0, 0 +0x1B92 0x1D03 BTFSS STATUS, 2 +0x1B93 0x2B97 GOTO L__watch_swr268 +0x1B94 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1B95 0x0142 MOVLB 2 +0x1B96 0x024A SUBWF _SWR_fixed_old, 0 +L__watch_swr268: +0x1B97 0x1803 BTFSC STATUS, 0 +0x1B98 0x2BB0 GOTO L__watch_swr236 +0x1B99 0x0142 MOVLB 2 +0x1B9A 0x084A MOVF _SWR_fixed_old, 0 +0x1B9B 0x0143 MOVLB 3 +0x1B9C 0x0247 SUBWF watch_swr_SWR_fixed_L0, 0 +0x1B9D 0x00F1 MOVWF R1 +0x1B9E 0x0142 MOVLB 2 +0x1B9F 0x084B MOVF _SWR_fixed_old+1, 0 +0x1BA0 0x0143 MOVLB 3 +0x1BA1 0x3B48 SUBWFB watch_swr_SWR_fixed_L0+1, 0 +0x1BA2 0x00F2 MOVWF R2 +0x1BA3 0x3080 MOVLW 128 +0x1BA4 0x0644 XORWF watch_swr_delta_L0+1, 0 +0x1BA5 0x00F0 MOVWF R0 +0x1BA6 0x3080 MOVLW 128 +0x1BA7 0x0672 XORWF R2, 0 +0x1BA8 0x0270 SUBWF R0, 0 +0x1BA9 0x1D03 BTFSS STATUS, 2 +0x1BAA 0x2BAD GOTO L__watch_swr269 +0x1BAB 0x0871 MOVF R1, 0 +0x1BAC 0x0243 SUBWF watch_swr_delta_L0, 0 +L__watch_swr269: +0x1BAD 0x1803 BTFSC STATUS, 0 +0x1BAE 0x2BB0 GOTO L__watch_swr236 +0x1BAF 0x2BE5 GOTO L__watch_swr234 +L__watch_swr236: +0x1BB0 0x0143 MOVLB 3 +0x1BB1 0x3080 MOVLW 128 +0x1BB2 0x0648 XORWF watch_swr_SWR_fixed_L0+1, 0 +0x1BB3 0x00F0 MOVWF R0 +0x1BB4 0x3080 MOVLW 128 +0x1BB5 0x0142 MOVLB 2 +0x1BB6 0x064B XORWF _SWR_fixed_old+1, 0 +0x1BB7 0x0270 SUBWF R0, 0 +0x1BB8 0x1D03 BTFSS STATUS, 2 +0x1BB9 0x2BBD GOTO L__watch_swr270 +0x1BBA 0x084A MOVF _SWR_fixed_old, 0 +0x1BBB 0x0143 MOVLB 3 +0x1BBC 0x0247 SUBWF watch_swr_SWR_fixed_L0, 0 +L__watch_swr270: +0x1BBD 0x1803 BTFSC STATUS, 0 +0x1BBE 0x2BD7 GOTO L__watch_swr235 +0x1BBF 0x0143 MOVLB 3 +0x1BC0 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1BC1 0x0142 MOVLB 2 +0x1BC2 0x024A SUBWF _SWR_fixed_old, 0 +0x1BC3 0x00F1 MOVWF R1 +0x1BC4 0x0143 MOVLB 3 +0x1BC5 0x0848 MOVF watch_swr_SWR_fixed_L0+1, 0 +0x1BC6 0x0142 MOVLB 2 +0x1BC7 0x3B4B SUBWFB _SWR_fixed_old+1, 0 +0x1BC8 0x00F2 MOVWF R2 +0x1BC9 0x3080 MOVLW 128 +0x1BCA 0x0143 MOVLB 3 +0x1BCB 0x0644 XORWF watch_swr_delta_L0+1, 0 +0x1BCC 0x00F0 MOVWF R0 +0x1BCD 0x3080 MOVLW 128 +0x1BCE 0x0672 XORWF R2, 0 +0x1BCF 0x0270 SUBWF R0, 0 +0x1BD0 0x1D03 BTFSS STATUS, 2 +0x1BD1 0x2BD4 GOTO L__watch_swr271 +0x1BD2 0x0871 MOVF R1, 0 +0x1BD3 0x0243 SUBWF watch_swr_delta_L0, 0 +L__watch_swr271: +0x1BD4 0x1803 BTFSC STATUS, 0 +0x1BD5 0x2BD7 GOTO L__watch_swr235 +0x1BD6 0x2BE5 GOTO L__watch_swr234 +L__watch_swr235: +0x1BD7 0x0143 MOVLB 3 +0x1BD8 0x3080 MOVLW 128 +0x1BD9 0x3A03 XORLW 3 +0x1BDA 0x00F0 MOVWF R0 +0x1BDB 0x3080 MOVLW 128 +0x1BDC 0x0648 XORWF watch_swr_SWR_fixed_L0+1, 0 +0x1BDD 0x0270 SUBWF R0, 0 +0x1BDE 0x1D03 BTFSS STATUS, 2 +0x1BDF 0x2BE2 GOTO L__watch_swr272 +0x1BE0 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1BE1 0x3C84 SUBLW 132 +L__watch_swr272: +0x1BE2 0x1C03 BTFSS STATUS, 0 +0x1BE3 0x2BE5 GOTO L__watch_swr234 +0x1BE4 0x2BE9 GOTO L_watch_swr71 +L__watch_swr234: +;main.c,230 :: Btn_long(); +0x1BE5 0x3190 MOVLP 16 +0x1BE6 0x274B CALL _Btn_long +0x1BE7 0x3198 MOVLP 24 +;main.c,231 :: return; +0x1BE8 0x2C12 GOTO L_end_watch_swr +;main.c,232 :: } +L_watch_swr71: +;main.c,233 :: } +L_watch_swr64: +L_watch_swr59: +;main.c,235 :: if(SWR_fixed>99 && SWR_fixed!=SWR_ind){ +0x1BE9 0x3080 MOVLW 128 +0x1BEA 0x00F0 MOVWF R0 +0x1BEB 0x3080 MOVLW 128 +0x1BEC 0x0143 MOVLB 3 +0x1BED 0x0648 XORWF watch_swr_SWR_fixed_L0+1, 0 +0x1BEE 0x0270 SUBWF R0, 0 +0x1BEF 0x1D03 BTFSS STATUS, 2 +0x1BF0 0x2BF3 GOTO L__watch_swr273 +0x1BF1 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1BF2 0x3C63 SUBLW 99 +L__watch_swr273: +0x1BF3 0x1803 BTFSC STATUS, 0 +0x1BF4 0x2C12 GOTO L_watch_swr74 +0x1BF5 0x0848 MOVF watch_swr_SWR_fixed_L0+1, 0 +0x1BF6 0x0142 MOVLB 2 +0x1BF7 0x0641 XORWF _SWR_ind+1, 0 +0x1BF8 0x1D03 BTFSS STATUS, 2 +0x1BF9 0x2BFD GOTO L__watch_swr274 +0x1BFA 0x0840 MOVF _SWR_ind, 0 +0x1BFB 0x0143 MOVLB 3 +0x1BFC 0x0647 XORWF watch_swr_SWR_fixed_L0, 0 +L__watch_swr274: +0x1BFD 0x1903 BTFSC STATUS, 2 +0x1BFE 0x2C12 GOTO L_watch_swr74 +L__watch_swr233: +0x1BFF 0x0143 MOVLB 3 +;main.c,236 :: SWR_ind = SWR_fixed; +0x1C00 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1C01 0x0142 MOVLB 2 +0x1C02 0x00C0 MOVWF _SWR_ind +0x1C03 0x0143 MOVLB 3 +0x1C04 0x0848 MOVF watch_swr_SWR_fixed_L0+1, 0 +0x1C05 0x0142 MOVLB 2 +0x1C06 0x00C1 MOVWF _SWR_ind+1 +;main.c,237 :: draw_swr(SWR_ind); +0x1C07 0x0143 MOVLB 3 +0x1C08 0x0847 MOVF watch_swr_SWR_fixed_L0, 0 +0x1C09 0x0144 MOVLB 4 +0x1C0A 0x00A0 MOVWF FARG_draw_swr_s +0x1C0B 0x0143 MOVLB 3 +0x1C0C 0x0848 MOVF watch_swr_SWR_fixed_L0+1, 0 +0x1C0D 0x0144 MOVLB 4 +0x1C0E 0x00A1 MOVWF FARG_draw_swr_s+1 +0x1C0F 0x3180 MOVLP 0 +0x1C10 0x26D2 CALL _draw_swr +0x1C11 0x3198 MOVLP 24 +;main.c,238 :: } +L_watch_swr74: +;main.c,240 :: return; +;main.c,241 :: } +L_end_watch_swr: +0x1C12 0x0008 RETURN +; end of _watch_swr +_Voltage_show: +;main.c,287 :: void Voltage_show(){ +;main.c,288 :: get_batt(); +0x1C13 0x3180 MOVLP 0 +0x1C14 0x2707 CALL _get_batt +0x1C15 0x3198 MOVLP 24 +;main.c,289 :: if(Voltage != Voltage_old) { Voltage_old = Voltage; oled_voltage(Voltage); } +0x1C16 0x082A MOVF _Voltage+1, 0 +0x1C17 0x0142 MOVLB 2 +0x1C18 0x0649 XORWF _Voltage_old+1, 0 +0x1C19 0x1D03 BTFSS STATUS, 2 +0x1C1A 0x2C1E GOTO L__Voltage_show282 +0x1C1B 0x0848 MOVF _Voltage_old, 0 +0x1C1C 0x0143 MOVLB 3 +0x1C1D 0x0629 XORWF _Voltage, 0 +L__Voltage_show282: +0x1C1E 0x1903 BTFSC STATUS, 2 +0x1C1F 0x2C2E GOTO L_Voltage_show83 +0x1C20 0x0143 MOVLB 3 +0x1C21 0x0829 MOVF _Voltage, 0 +0x1C22 0x0142 MOVLB 2 +0x1C23 0x00C8 MOVWF _Voltage_old +0x1C24 0x0143 MOVLB 3 +0x1C25 0x082A MOVF _Voltage+1, 0 +0x1C26 0x0142 MOVLB 2 +0x1C27 0x00C9 MOVWF _Voltage_old+1 +0x1C28 0x0143 MOVLB 3 +0x1C29 0x0829 MOVF _Voltage, 0 +0x1C2A 0x00C9 MOVWF FARG_oled_voltage_Voltage +0x1C2B 0x082A MOVF _Voltage+1, 0 +0x1C2C 0x00CA MOVWF FARG_oled_voltage_Voltage+1 +0x1C2D 0x2000 CALL _oled_voltage +L_Voltage_show83: +;main.c,292 :: if(Voltage>3700){ +0x1C2E 0x3080 MOVLW 128 +0x1C2F 0x3A0E XORLW 14 +0x1C30 0x00F0 MOVWF R0 +0x1C31 0x3080 MOVLW 128 +0x1C32 0x0143 MOVLB 3 +0x1C33 0x062A XORWF _Voltage+1, 0 +0x1C34 0x0270 SUBWF R0, 0 +0x1C35 0x1D03 BTFSS STATUS, 2 +0x1C36 0x2C39 GOTO L__Voltage_show283 +0x1C37 0x0829 MOVF _Voltage, 0 +0x1C38 0x3C74 SUBLW 116 +L__Voltage_show283: +0x1C39 0x1803 BTFSC STATUS, 0 +0x1C3A 0x2C4D GOTO L_Voltage_show84 +;main.c,293 :: Green = 0; +0x1C3B 0x0140 MOVLB 0 +0x1C3C 0x1197 BCF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,294 :: Red = 1; +0x1C3D 0x1617 BSF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,295 :: Delay_ms(30); +0x1C3E 0x3002 MOVLW 2 +0x1C3F 0x00FB MOVWF R11 +0x1C40 0x3038 MOVLW 56 +0x1C41 0x00FC MOVWF R12 +0x1C42 0x30AD MOVLW 173 +0x1C43 0x00FD MOVWF R13 +L_Voltage_show85: +0x1C44 0x0BFD DECFSZ R13, 1 +0x1C45 0x2C44 GOTO L_Voltage_show85 +0x1C46 0x0BFC DECFSZ R12, 1 +0x1C47 0x2C44 GOTO L_Voltage_show85 +0x1C48 0x0BFB DECFSZ R11, 1 +0x1C49 0x2C44 GOTO L_Voltage_show85 +;main.c,296 :: Green = 1; +0x1C4A 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,297 :: Red = 1; +0x1C4B 0x1617 BSF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,298 :: } +0x1C4C 0x2C7D GOTO L_Voltage_show86 +L_Voltage_show84: +;main.c,299 :: else if(Voltage>3590){ +0x1C4D 0x3080 MOVLW 128 +0x1C4E 0x3A0E XORLW 14 +0x1C4F 0x00F0 MOVWF R0 +0x1C50 0x3080 MOVLW 128 +0x1C51 0x0143 MOVLB 3 +0x1C52 0x062A XORWF _Voltage+1, 0 +0x1C53 0x0270 SUBWF R0, 0 +0x1C54 0x1D03 BTFSS STATUS, 2 +0x1C55 0x2C58 GOTO L__Voltage_show284 +0x1C56 0x0829 MOVF _Voltage, 0 +0x1C57 0x3C06 SUBLW 6 +L__Voltage_show284: +0x1C58 0x1803 BTFSC STATUS, 0 +0x1C59 0x2C6C GOTO L_Voltage_show87 +;main.c,300 :: Green = 0; +0x1C5A 0x0140 MOVLB 0 +0x1C5B 0x1197 BCF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,301 :: Red = 0; +0x1C5C 0x1217 BCF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,302 :: Delay_ms(30); +0x1C5D 0x3002 MOVLW 2 +0x1C5E 0x00FB MOVWF R11 +0x1C5F 0x3038 MOVLW 56 +0x1C60 0x00FC MOVWF R12 +0x1C61 0x30AD MOVLW 173 +0x1C62 0x00FD MOVWF R13 +L_Voltage_show88: +0x1C63 0x0BFD DECFSZ R13, 1 +0x1C64 0x2C63 GOTO L_Voltage_show88 +0x1C65 0x0BFC DECFSZ R12, 1 +0x1C66 0x2C63 GOTO L_Voltage_show88 +0x1C67 0x0BFB DECFSZ R11, 1 +0x1C68 0x2C63 GOTO L_Voltage_show88 +;main.c,303 :: Green = 1; +0x1C69 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,304 :: Red = 1; +0x1C6A 0x1617 BSF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,305 :: } +0x1C6B 0x2C7D GOTO L_Voltage_show89 +L_Voltage_show87: +0x1C6C 0x0140 MOVLB 0 +;main.c,307 :: Red = 0; +0x1C6D 0x1217 BCF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,308 :: Green = 1; +0x1C6E 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,309 :: Delay_ms(30); +0x1C6F 0x3002 MOVLW 2 +0x1C70 0x00FB MOVWF R11 +0x1C71 0x3038 MOVLW 56 +0x1C72 0x00FC MOVWF R12 +0x1C73 0x30AD MOVLW 173 +0x1C74 0x00FD MOVWF R13 +L_Voltage_show90: +0x1C75 0x0BFD DECFSZ R13, 1 +0x1C76 0x2C75 GOTO L_Voltage_show90 +0x1C77 0x0BFC DECFSZ R12, 1 +0x1C78 0x2C75 GOTO L_Voltage_show90 +0x1C79 0x0BFB DECFSZ R11, 1 +0x1C7A 0x2C75 GOTO L_Voltage_show90 +;main.c,310 :: Red = 1; +0x1C7B 0x1617 BSF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,311 :: Green = 1; +0x1C7C 0x1597 BSF LATB3_bit, BitPos(LATB3_bit+0) +;main.c,312 :: } +L_Voltage_show89: +L_Voltage_show86: +;main.c,314 :: if(Voltage<3400){ +0x1C7D 0x3080 MOVLW 128 +0x1C7E 0x0143 MOVLB 3 +0x1C7F 0x062A XORWF _Voltage+1, 0 +0x1C80 0x00F0 MOVWF R0 +0x1C81 0x3080 MOVLW 128 +0x1C82 0x3A0D XORLW 13 +0x1C83 0x0270 SUBWF R0, 0 +0x1C84 0x1D03 BTFSS STATUS, 2 +0x1C85 0x2C88 GOTO L__Voltage_show285 +0x1C86 0x3048 MOVLW 72 +0x1C87 0x0229 SUBWF _Voltage, 0 +L__Voltage_show285: +0x1C88 0x1803 BTFSC STATUS, 0 +0x1C89 0x2CA9 GOTO L_Voltage_show91 +;main.c,315 :: oled_clear(); +0x1C8A 0x3180 MOVLP 0 +0x1C8B 0x2449 CALL _oled_clear +0x1C8C 0x3198 MOVLP 24 +;main.c,316 :: oled_wr_str(1, 0, " LOW BATT ", 11); +0x1C8D 0x3001 MOVLW 1 +0x1C8E 0x0144 MOVLB 4 +0x1C8F 0x00A3 MOVWF FARG_oled_wr_str_page +0x1C90 0x01A4 CLRF FARG_oled_wr_str_col +0x1C91 0x30AA MOVLW ?lstr13_main +0x1C92 0x00A5 MOVWF FARG_oled_wr_str_str +0x1C93 0x3000 MOVLW hi_addr(?lstr13_main) +0x1C94 0x00A6 MOVWF FARG_oled_wr_str_str+1 +0x1C95 0x300B MOVLW 11 +0x1C96 0x00A7 MOVWF FARG_oled_wr_str_leng +0x1C97 0x3180 MOVLP 0 +0x1C98 0x246D CALL _oled_wr_str +0x1C99 0x3198 MOVLP 24 +;main.c,317 :: Delay_ms(2000); +0x1C9A 0x3052 MOVLW 82 +0x1C9B 0x00FB MOVWF R11 +0x1C9C 0x302B MOVLW 43 +0x1C9D 0x00FC MOVWF R12 +0x1C9E 0x3000 MOVLW 0 +0x1C9F 0x00FD MOVWF R13 +L_Voltage_show92: +0x1CA0 0x0BFD DECFSZ R13, 1 +0x1CA1 0x2CA0 GOTO L_Voltage_show92 +0x1CA2 0x0BFC DECFSZ R12, 1 +0x1CA3 0x2CA0 GOTO L_Voltage_show92 +0x1CA4 0x0BFB DECFSZ R11, 1 +0x1CA5 0x2CA0 GOTO L_Voltage_show92 +0x1CA6 0x0000 NOP +;main.c,318 :: OLED_PWD = 0; +0x1CA7 0x1216 BCF LATA4_bit, BitPos(LATA4_bit+0) +;main.c,319 :: power_off(); +0x1CA8 0x2182 CALL _power_off +;main.c,320 :: } +L_Voltage_show91: +;main.c,321 :: return; +;main.c,322 :: } +L_end_Voltage_show: +0x1CA9 0x0008 RETURN +; end of _Voltage_show +_pic_init: +;pic_init.c,5 :: void pic_init (void) { +;pic_init.c,7 :: ANSELA = 0; // all as digital +0x1CAA 0x017E MOVLB 62 +0x1CAB 0x01B8 CLRF ANSELA +;pic_init.c,8 :: ANSELB = 0; // all as digital +0x1CAC 0x01C3 CLRF ANSELB +;pic_init.c,9 :: ANSB0_bit = 1; // analog input +0x1CAD 0x1443 BSF ANSB0_bit, BitPos(ANSB0_bit+0) +;pic_init.c,10 :: ANSB1_bit = 1; // analog input +0x1CAE 0x14C3 BSF ANSB1_bit, BitPos(ANSB1_bit+0) +;pic_init.c,11 :: ANSB2_bit = 1; // analog input +0x1CAF 0x1543 BSF ANSB2_bit, BitPos(ANSB2_bit+0) +;pic_init.c,12 :: ANSELC = 0; // all as digital +0x1CB0 0x01CE CLRF ANSELC +;pic_init.c,13 :: ANSELE = 0; // all as digital +0x1CB1 0x01E4 CLRF ANSELE +;pic_init.c,14 :: ANSELD = 0; // all as digital +0x1CB2 0x01D9 CLRF ANSELD +;pic_init.c,16 :: C1ON_bit = 0; // Disable comparators +0x1CB3 0x0153 MOVLB 19 +0x1CB4 0x1390 BCF C1ON_bit, BitPos(C1ON_bit+0) +;pic_init.c,17 :: C2ON_bit = 0; +0x1CB5 0x1394 BCF C2ON_bit, BitPos(C2ON_bit+0) +;pic_init.c,19 :: PORTA = 0; +0x1CB6 0x0140 MOVLB 0 +0x1CB7 0x018C CLRF PORTA +;pic_init.c,20 :: PORTB = 0; +0x1CB8 0x018D CLRF PORTB +;pic_init.c,21 :: PORTC = 0; +0x1CB9 0x018E CLRF PORTC +;pic_init.c,22 :: PORTD = 0; +0x1CBA 0x018F CLRF PORTD +;pic_init.c,23 :: PORTE = 0; +0x1CBB 0x0190 CLRF PORTE +;pic_init.c,24 :: LATA = 0b00000000; +0x1CBC 0x0196 CLRF LATA +;pic_init.c,25 :: LATB = 0b00000000; +0x1CBD 0x0197 CLRF LATB +;pic_init.c,26 :: LATC = 0b00010000; +0x1CBE 0x3010 MOVLW 16 +0x1CBF 0x0098 MOVWF LATC +;pic_init.c,27 :: LATD = 0b00000110; +0x1CC0 0x3006 MOVLW 6 +0x1CC1 0x0099 MOVWF LATD +;pic_init.c,28 :: LATE = 0b00000000; +0x1CC2 0x019A CLRF LATE +;pic_init.c,29 :: TRISA = 0b00000000; +0x1CC3 0x0191 CLRF TRISA +;pic_init.c,30 :: TRISB = 0b00100111; +0x1CC4 0x3027 MOVLW 39 +0x1CC5 0x0092 MOVWF TRISB +;pic_init.c,31 :: TRISC = 0b00000000; +0x1CC6 0x0193 CLRF TRISC +;pic_init.c,32 :: TRISD = 0b00000000; +0x1CC7 0x0194 CLRF TRISD +;pic_init.c,33 :: TRISE = 0b00000000; +0x1CC8 0x0195 CLRF TRISE +;pic_init.c,36 :: ODCA2_bit = 1; +0x1CC9 0x017E MOVLB 62 +0x1CCA 0x153A BSF ODCA2_bit, BitPos(ODCA2_bit+0) +;pic_init.c,37 :: ODCA3_bit = 1; +0x1CCB 0x15BA BSF ODCA3_bit, BitPos(ODCA3_bit+0) +;pic_init.c,38 :: ODCD1_bit = 1; +0x1CCC 0x14DB BSF ODCD1_bit, BitPos(ODCD1_bit+0) +;pic_init.c,39 :: ODCD2_bit = 1; +0x1CCD 0x155B BSF ODCD2_bit, BitPos(ODCD2_bit+0) +;pic_init.c,42 :: T0CS0_bit = 0; // Fosc/4 +0x1CCE 0x0140 MOVLB 0 +0x1CCF 0x129F BCF T0CS0_bit, BitPos(T0CS0_bit+0) +;pic_init.c,43 :: T0CS1_bit = 1; +0x1CD0 0x171F BSF T0CS1_bit, BitPos(T0CS1_bit+0) +;pic_init.c,44 :: T0CS2_bit = 0; +0x1CD1 0x139F BCF T0CS2_bit, BitPos(T0CS2_bit+0) +;pic_init.c,45 :: T016BIT_bit = 1; +0x1CD2 0x161E BSF T016BIT_bit, BitPos(T016BIT_bit+0) +;pic_init.c,46 :: TMR0L = 0xC0; // 8_000 cycles to OF +0x1CD3 0x30C0 MOVLW 192 +0x1CD4 0x009C MOVWF TMR0L +;pic_init.c,47 :: TMR0H = 0xE0; +0x1CD5 0x30E0 MOVLW 224 +0x1CD6 0x009D MOVWF TMR0H +;pic_init.c,48 :: TMR0IF_bit = 0; +0x1CD7 0x014E MOVLB 14 +0x1CD8 0x128C BCF TMR0IF_bit, BitPos(TMR0IF_bit+0) +;pic_init.c,49 :: T0EN_bit = 1; +0x1CD9 0x0140 MOVLB 0 +0x1CDA 0x179E BSF T0EN_bit, BitPos(T0EN_bit+0) +;pic_init.c,50 :: TMR0IE_bit = 1; +0x1CDB 0x014E MOVLB 14 +0x1CDC 0x1696 BSF TMR0IE_bit, BitPos(TMR0IE_bit+0) +;pic_init.c,53 :: PMD0 = 0b00011110; // +0x1CDD 0x301E MOVLW 30 +0x1CDE 0x014F MOVLB 15 +0x1CDF 0x0096 MOVWF PMD0 +;pic_init.c,54 :: PMD1 = 0b11111110; +0x1CE0 0x30FE MOVLW 254 +0x1CE1 0x0097 MOVWF PMD1 +;pic_init.c,55 :: PMD2 = 0b01000111; +0x1CE2 0x3047 MOVLW 71 +0x1CE3 0x0098 MOVWF PMD2 +;pic_init.c,56 :: PMD3 = 0b01111111; +0x1CE4 0x307F MOVLW 127 +0x1CE5 0x0099 MOVWF PMD3 +;pic_init.c,57 :: PMD4 = 0b1110111; +0x1CE6 0x3077 MOVLW 119 +0x1CE7 0x009A MOVWF PMD4 +;pic_init.c,58 :: PMD5 = 0b11011111; +0x1CE8 0x30DF MOVLW 223 +0x1CE9 0x009B MOVWF PMD5 +;pic_init.c,60 :: GIE_bit = 1; +0x1CEA 0x178B BSF GIE_bit, BitPos(GIE_bit+0) +;pic_init.c,61 :: Delay_ms (100); +0x1CEB 0x3005 MOVLW 5 +0x1CEC 0x00FB MOVWF R11 +0x1CED 0x300F MOVLW 15 +0x1CEE 0x00FC MOVWF R12 +0x1CEF 0x30F1 MOVLW 241 +0x1CF0 0x00FD MOVWF R13 +L_pic_init0: +0x1CF1 0x0BFD DECFSZ R13, 1 +0x1CF2 0x2CF1 GOTO L_pic_init0 +0x1CF3 0x0BFC DECFSZ R12, 1 +0x1CF4 0x2CF1 GOTO L_pic_init0 +0x1CF5 0x0BFB DECFSZ R11, 1 +0x1CF6 0x2CF1 GOTO L_pic_init0 +;pic_init.c,62 :: return; +;pic_init.c,63 :: } +L_end_pic_init: +0x1CF7 0x0008 RETURN +; end of _pic_init +_main: +0x1CF8 0x31A0 MOVLP 32 +0x1CF9 0x20A4 CALL 8356 +0x1CFA 0x3198 MOVLP 24 +;main.c,74 :: void main() { +;main.c,75 :: pic_init(); +0x1CFB 0x24AA CALL _pic_init +;main.c,76 :: Red = 1; +0x1CFC 0x0140 MOVLB 0 +0x1CFD 0x1617 BSF LATB4_bit, BitPos(LATB4_bit+0) +;main.c,77 :: Key_out = 1; +0x1CFE 0x1519 BSF LATD2_bit, BitPos(LATD2_bit+0) +;main.c,78 :: gre = 1; +0x1CFF 0x0143 MOVLB 3 +0x1D00 0x15A0 BSF _gre, BitPos(_gre+0) +;main.c,79 :: oled_start(); +0x1D01 0x3188 MOVLP 8 +0x1D02 0x22D4 CALL _oled_start +0x1D03 0x3198 MOVLP 24 +;main.c,81 :: ADC_Init(); +0x1D04 0x3190 MOVLP 16 +0x1D05 0x27A9 CALL _ADC_Init +0x1D06 0x3198 MOVLP 24 +;main.c,82 :: Overflow = 0; +0x1D07 0x0143 MOVLB 3 +0x1D08 0x1120 BCF _Overflow, BitPos(_Overflow+0) +;main.c,83 :: B_short = 0; +0x1D09 0x1320 BCF _B_short, BitPos(_B_short+0) +;main.c,84 :: B_long = 0; +0x1D0A 0x12A0 BCF _B_long, BitPos(_B_long+0) +;main.c,85 :: B_xlong = 0; +0x1D0B 0x1220 BCF _B_xlong, BitPos(_B_xlong+0) +;main.c,86 :: E_short = 0; +0x1D0C 0x1020 BCF _E_short, BitPos(_E_short+0) +;main.c,87 :: E_long = 0; +0x1D0D 0x10A0 BCF _E_long, BitPos(_E_long+0) +;main.c,89 :: disp_cnt = Tick + Disp_time*1000; +0x1D0E 0x0140 MOVLB 0 +0x1D0F 0x0853 MOVF _Disp_time, 0 +0x1D10 0x00F0 MOVWF R0 +0x1D11 0x0854 MOVF _Disp_time+1, 0 +0x1D12 0x00F1 MOVWF R1 +0x1D13 0x0855 MOVF _Disp_time+2, 0 +0x1D14 0x00F2 MOVWF R2 +0x1D15 0x0856 MOVF _Disp_time+3, 0 +0x1D16 0x00F3 MOVWF R3 +0x1D17 0x30E8 MOVLW 232 +0x1D18 0x00F4 MOVWF R4 +0x1D19 0x3003 MOVLW 3 +0x1D1A 0x00F5 MOVWF R5 +0x1D1B 0x01F6 CLRF R6 +0x1D1C 0x01F7 CLRF R7 +0x1D1D 0x3180 MOVLP 0 +0x1D1E 0x21BE CALL _Mul_32x32_U +0x1D1F 0x3198 MOVLP 24 +0x1D20 0x0870 MOVF R0, 0 +0x1D21 0x0142 MOVLB 2 +0x1D22 0x074C ADDWF _Tick, 0 +0x1D23 0x0143 MOVLB 3 +0x1D24 0x00BD MOVWF _disp_cnt +0x1D25 0x0871 MOVF R1, 0 +0x1D26 0x0142 MOVLB 2 +0x1D27 0x3D4D ADDWFC _Tick+1, 0 +0x1D28 0x0143 MOVLB 3 +0x1D29 0x00BE MOVWF _disp_cnt+1 +0x1D2A 0x0872 MOVF R2, 0 +0x1D2B 0x0142 MOVLB 2 +0x1D2C 0x3D4E ADDWFC _Tick+2, 0 +0x1D2D 0x0143 MOVLB 3 +0x1D2E 0x00BF MOVWF _disp_cnt+2 +0x1D2F 0x0873 MOVF R3, 0 +0x1D30 0x0142 MOVLB 2 +0x1D31 0x3D4F ADDWFC _Tick+3, 0 +0x1D32 0x0143 MOVLB 3 +0x1D33 0x00C0 MOVWF _disp_cnt+3 +;main.c,90 :: off_cnt = Tick + Off_time*1000; +0x1D34 0x0140 MOVLB 0 +0x1D35 0x0857 MOVF _Off_time, 0 +0x1D36 0x00F0 MOVWF R0 +0x1D37 0x0858 MOVF _Off_time+1, 0 +0x1D38 0x00F1 MOVWF R1 +0x1D39 0x0859 MOVF _Off_time+2, 0 +0x1D3A 0x00F2 MOVWF R2 +0x1D3B 0x085A MOVF _Off_time+3, 0 +0x1D3C 0x00F3 MOVWF R3 +0x1D3D 0x30E8 MOVLW 232 +0x1D3E 0x00F4 MOVWF R4 +0x1D3F 0x3003 MOVLW 3 +0x1D40 0x00F5 MOVWF R5 +0x1D41 0x01F6 CLRF R6 +0x1D42 0x01F7 CLRF R7 +0x1D43 0x3180 MOVLP 0 +0x1D44 0x21BE CALL _Mul_32x32_U +0x1D45 0x3198 MOVLP 24 +0x1D46 0x0870 MOVF R0, 0 +0x1D47 0x0142 MOVLB 2 +0x1D48 0x074C ADDWF _Tick, 0 +0x1D49 0x00EC MOVWF _off_cnt +0x1D4A 0x0871 MOVF R1, 0 +0x1D4B 0x3D4D ADDWFC _Tick+1, 0 +0x1D4C 0x00ED MOVWF _off_cnt+1 +0x1D4D 0x0872 MOVF R2, 0 +0x1D4E 0x3D4E ADDWFC _Tick+2, 0 +0x1D4F 0x00EE MOVWF _off_cnt+2 +0x1D50 0x0873 MOVF R3, 0 +0x1D51 0x3D4F ADDWFC _Tick+3, 0 +0x1D52 0x00EF MOVWF _off_cnt+3 +;main.c,93 :: rldl = Rel_Del; +0x1D53 0x0141 MOVLB 1 +0x1D54 0x0844 MOVF _Rel_Del, 0 +0x1D55 0x0143 MOVLB 3 +0x1D56 0x00A5 MOVWF _rldl +0x1D57 0x0141 MOVLB 1 +0x1D58 0x0845 MOVF _Rel_Del+1, 0 +0x1D59 0x0143 MOVLB 3 +0x1D5A 0x00A6 MOVWF _rldl+1 +;main.c,96 :: while(1) { +L_main16: +;main.c,97 :: if(Tick>=volt_cnt){ // every 3 second +0x1D5B 0x0142 MOVLB 2 +0x1D5C 0x0845 MOVF _volt_cnt+3, 0 +0x1D5D 0x024F SUBWF _Tick+3, 0 +0x1D5E 0x1D03 BTFSS STATUS, 2 +0x1D5F 0x2D6A GOTO L__main254 +0x1D60 0x0844 MOVF _volt_cnt+2, 0 +0x1D61 0x024E SUBWF _Tick+2, 0 +0x1D62 0x1D03 BTFSS STATUS, 2 +0x1D63 0x2D6A GOTO L__main254 +0x1D64 0x0843 MOVF _volt_cnt+1, 0 +0x1D65 0x024D SUBWF _Tick+1, 0 +0x1D66 0x1D03 BTFSS STATUS, 2 +0x1D67 0x2D6A GOTO L__main254 +0x1D68 0x0842 MOVF _volt_cnt, 0 +0x1D69 0x024C SUBWF _Tick, 0 +L__main254: +0x1D6A 0x1C03 BTFSS STATUS, 0 +0x1D6B 0x2D74 GOTO L_main18 +;main.c,98 :: volt_cnt += 3000; +0x1D6C 0x30B8 MOVLW 184 +0x1D6D 0x07C2 ADDWF _volt_cnt, 1 +0x1D6E 0x300B MOVLW 11 +0x1D6F 0x3DC3 ADDWFC _volt_cnt+1, 1 +0x1D70 0x3000 MOVLW 0 +0x1D71 0x3DC4 ADDWFC _volt_cnt+2, 1 +0x1D72 0x3DC5 ADDWFC _volt_cnt+3, 1 +;main.c,99 :: Voltage_show(); +0x1D73 0x2413 CALL _Voltage_show +;main.c,100 :: } +L_main18: +;main.c,102 :: if(Tick>=watch_cnt){ // every 300 ms unless power off +0x1D74 0x0142 MOVLB 2 +0x1D75 0x0853 MOVF _watch_cnt+3, 0 +0x1D76 0x024F SUBWF _Tick+3, 0 +0x1D77 0x1D03 BTFSS STATUS, 2 +0x1D78 0x2D83 GOTO L__main255 +0x1D79 0x0852 MOVF _watch_cnt+2, 0 +0x1D7A 0x024E SUBWF _Tick+2, 0 +0x1D7B 0x1D03 BTFSS STATUS, 2 +0x1D7C 0x2D83 GOTO L__main255 +0x1D7D 0x0851 MOVF _watch_cnt+1, 0 +0x1D7E 0x024D SUBWF _Tick+1, 0 +0x1D7F 0x1D03 BTFSS STATUS, 2 +0x1D80 0x2D83 GOTO L__main255 +0x1D81 0x0850 MOVF _watch_cnt, 0 +0x1D82 0x024C SUBWF _Tick, 0 +L__main255: +0x1D83 0x1C03 BTFSS STATUS, 0 +0x1D84 0x2D8D GOTO L_main19 +;main.c,103 :: watch_cnt += 300; +0x1D85 0x302C MOVLW 44 +0x1D86 0x07D0 ADDWF _watch_cnt, 1 +0x1D87 0x3001 MOVLW 1 +0x1D88 0x3DD1 ADDWFC _watch_cnt+1, 1 +0x1D89 0x3000 MOVLW 0 +0x1D8A 0x3DD2 ADDWFC _watch_cnt+2, 1 +0x1D8B 0x3DD3 ADDWFC _watch_cnt+3, 1 +;main.c,104 :: watch_swr(); +0x1D8C 0x21EC CALL _watch_swr +;main.c,105 :: } +L_main19: +;main.c,107 :: if(Tick>=disp_cnt){ // Display off +0x1D8D 0x0143 MOVLB 3 +0x1D8E 0x0840 MOVF _disp_cnt+3, 0 +0x1D8F 0x0142 MOVLB 2 +0x1D90 0x024F SUBWF _Tick+3, 0 +0x1D91 0x1D03 BTFSS STATUS, 2 +0x1D92 0x2DA3 GOTO L__main256 +0x1D93 0x0143 MOVLB 3 +0x1D94 0x083F MOVF _disp_cnt+2, 0 +0x1D95 0x0142 MOVLB 2 +0x1D96 0x024E SUBWF _Tick+2, 0 +0x1D97 0x1D03 BTFSS STATUS, 2 +0x1D98 0x2DA3 GOTO L__main256 +0x1D99 0x0143 MOVLB 3 +0x1D9A 0x083E MOVF _disp_cnt+1, 0 +0x1D9B 0x0142 MOVLB 2 +0x1D9C 0x024D SUBWF _Tick+1, 0 +0x1D9D 0x1D03 BTFSS STATUS, 2 +0x1D9E 0x2DA3 GOTO L__main256 +0x1D9F 0x0143 MOVLB 3 +0x1DA0 0x083D MOVF _disp_cnt, 0 +0x1DA1 0x0142 MOVLB 2 +0x1DA2 0x024C SUBWF _Tick, 0 +L__main256: +0x1DA3 0x1C03 BTFSS STATUS, 0 +0x1DA4 0x2DA7 GOTO L_main20 +;main.c,109 :: OLED_PWD = 0; +0x1DA5 0x0140 MOVLB 0 +0x1DA6 0x1216 BCF LATA4_bit, BitPos(LATA4_bit+0) +;main.c,110 :: } +L_main20: +;main.c,112 :: if(Tick>=off_cnt){ // Go to power off +0x1DA7 0x0142 MOVLB 2 +0x1DA8 0x086F MOVF _off_cnt+3, 0 +0x1DA9 0x024F SUBWF _Tick+3, 0 +0x1DAA 0x1D03 BTFSS STATUS, 2 +0x1DAB 0x2DB6 GOTO L__main257 +0x1DAC 0x086E MOVF _off_cnt+2, 0 +0x1DAD 0x024E SUBWF _Tick+2, 0 +0x1DAE 0x1D03 BTFSS STATUS, 2 +0x1DAF 0x2DB6 GOTO L__main257 +0x1DB0 0x086D MOVF _off_cnt+1, 0 +0x1DB1 0x024D SUBWF _Tick+1, 0 +0x1DB2 0x1D03 BTFSS STATUS, 2 +0x1DB3 0x2DB6 GOTO L__main257 +0x1DB4 0x086C MOVF _off_cnt, 0 +0x1DB5 0x024C SUBWF _Tick, 0 +L__main257: +0x1DB6 0x1C03 BTFSS STATUS, 0 +0x1DB7 0x2DB9 GOTO L_main21 +;main.c,113 :: power_off(); +0x1DB8 0x2182 CALL _power_off +;main.c,114 :: } +L_main21: +0x1DB9 0x0143 MOVLB 3 +;main.c,116 :: if(B_short){ +0x1DBA 0x1F20 BTFSS _B_short, BitPos(_B_short+0) +0x1DBB 0x2DC6 GOTO L_main22 +;main.c,117 :: if(OLED_PWD) Btn_short(); +0x1DBC 0x0140 MOVLB 0 +0x1DBD 0x1E16 BTFSS LATA4_bit, BitPos(LATA4_bit+0) +0x1DBE 0x2DC3 GOTO L_main23 +0x1DBF 0x3190 MOVLP 16 +0x1DC0 0x2000 CALL _Btn_short +0x1DC1 0x3198 MOVLP 24 +0x1DC2 0x2DC6 GOTO L_main24 +L_main23: +;main.c,118 :: else oled_start(); +0x1DC3 0x3188 MOVLP 8 +0x1DC4 0x22D4 CALL _oled_start +0x1DC5 0x3198 MOVLP 24 +L_main24: +;main.c,119 :: } +L_main22: +;main.c,120 :: if(B_long){ +0x1DC6 0x0143 MOVLB 3 +0x1DC7 0x1EA0 BTFSS _B_long, BitPos(_B_long+0) +0x1DC8 0x2DD3 GOTO L_main25 +;main.c,121 :: if(OLED_PWD) Btn_long(); +0x1DC9 0x0140 MOVLB 0 +0x1DCA 0x1E16 BTFSS LATA4_bit, BitPos(LATA4_bit+0) +0x1DCB 0x2DD0 GOTO L_main26 +0x1DCC 0x3190 MOVLP 16 +0x1DCD 0x274B CALL _Btn_long +0x1DCE 0x3198 MOVLP 24 +0x1DCF 0x2DD3 GOTO L_main27 +L_main26: +;main.c,122 :: else oled_start(); +0x1DD0 0x3188 MOVLP 8 +0x1DD1 0x22D4 CALL _oled_start +0x1DD2 0x3198 MOVLP 24 +L_main27: +;main.c,123 :: } +L_main25: +;main.c,124 :: if(B_xlong){ +0x1DD3 0x0143 MOVLB 3 +0x1DD4 0x1E20 BTFSS _B_xlong, BitPos(_B_xlong+0) +0x1DD5 0x2DE0 GOTO L_main28 +;main.c,125 :: if(OLED_PWD) Btn_xlong(); +0x1DD6 0x0140 MOVLB 0 +0x1DD7 0x1E16 BTFSS LATA4_bit, BitPos(LATA4_bit+0) +0x1DD8 0x2DDD GOTO L_main29 +0x1DD9 0x3188 MOVLP 8 +0x1DDA 0x27B8 CALL _Btn_xlong +0x1DDB 0x3198 MOVLP 24 +0x1DDC 0x2DE0 GOTO L_main30 +L_main29: +;main.c,126 :: else oled_start(); +0x1DDD 0x3188 MOVLP 8 +0x1DDE 0x22D4 CALL _oled_start +0x1DDF 0x3198 MOVLP 24 +L_main30: +;main.c,127 :: } +L_main28: +;main.c,129 :: if(E_short){ +0x1DE0 0x0143 MOVLB 3 +0x1DE1 0x1C20 BTFSS _E_short, BitPos(_E_short+0) +0x1DE2 0x2DEC GOTO L_main31 +;main.c,130 :: if(OLED_PWD==0) oled_start(); +0x1DE3 0x0140 MOVLB 0 +0x1DE4 0x1A16 BTFSC LATA4_bit, BitPos(LATA4_bit+0) +0x1DE5 0x2DE9 GOTO L_main32 +0x1DE6 0x3188 MOVLP 8 +0x1DE7 0x22D4 CALL _oled_start +0x1DE8 0x3198 MOVLP 24 +L_main32: +;main.c,131 :: Btn_short(); +0x1DE9 0x3190 MOVLP 16 +0x1DEA 0x2000 CALL _Btn_short +0x1DEB 0x3198 MOVLP 24 +;main.c,132 :: } +L_main31: +;main.c,133 :: if(E_long){ +0x1DEC 0x0143 MOVLB 3 +0x1DED 0x1CA0 BTFSS _E_long, BitPos(_E_long+0) +0x1DEE 0x2DFC GOTO L_main33 +;main.c,134 :: if(OLED_PWD==0) { Ext_long(); oled_start(); } +0x1DEF 0x0140 MOVLB 0 +0x1DF0 0x1A16 BTFSC LATA4_bit, BitPos(LATA4_bit+0) +0x1DF1 0x2DF9 GOTO L_main34 +0x1DF2 0x3188 MOVLP 8 +0x1DF3 0x27E0 CALL _Ext_long +0x1DF4 0x3198 MOVLP 24 +0x1DF5 0x3188 MOVLP 8 +0x1DF6 0x22D4 CALL _oled_start +0x1DF7 0x3198 MOVLP 24 +0x1DF8 0x2DFC GOTO L_main35 +L_main34: +;main.c,135 :: else Btn_long(); +0x1DF9 0x3190 MOVLP 16 +0x1DFA 0x274B CALL _Btn_long +0x1DFB 0x3198 MOVLP 24 +L_main35: +;main.c,136 :: } +L_main33: +;main.c,138 :: } // while(1) +0x1DFC 0x2D5B GOTO L_main16 +;main.c,139 :: } // main +L_end_main: +0x1DFD 0x2DFD GOTO $+0 +; end of _main +0x20A4 0x30BD MOVLW 189 +0x20A5 0x0084 MOVWF FSR0 +0x20A6 0x3097 MOVLW 151 +0x20A7 0x0085 MOVWF FSR0H +0x20A8 0x3040 MOVLW 64 +0x20A9 0x00F0 MOVWF R0 +0x20AA 0x3001 MOVLW 1 +0x20AB 0x00F1 MOVWF R1 +0x20AC 0x302F MOVLW 47 +0x20AD 0x0086 MOVWF FSR1 +0x20AE 0x3000 MOVLW 0 +0x20AF 0x0087 MOVWF FSR1H +0x20B0 0x3180 MOVLP 0 +0x20B1 0x27F0 CALL 2032 +0x20B2 0x31A0 MOVLP 32 +0x20B3 0x3059 MOVLW 89 +0x20B4 0x0084 MOVWF FSR0 +0x20B5 0x30A0 MOVLW 160 +0x20B6 0x0085 MOVWF FSR0H +0x20B7 0x3026 MOVLW 38 +0x20B8 0x00F0 MOVWF R0 +0x20B9 0x3001 MOVLW 1 +0x20BA 0x00F1 MOVWF R1 +0x20BB 0x30A0 MOVLW 160 +0x20BC 0x0086 MOVWF FSR1 +0x20BD 0x3000 MOVLW 0 +0x20BE 0x0087 MOVWF FSR1H +0x20BF 0x3180 MOVLP 0 +0x20C0 0x27F0 CALL 2032 +0x20C1 0x31A0 MOVLP 32 +0x20C2 0x3003 MOVLW 3 +0x20C3 0x0084 MOVWF FSR0 +0x20C4 0x3080 MOVLW 128 +0x20C5 0x0085 MOVWF FSR0H +0x20C6 0x3001 MOVLW 1 +0x20C7 0x00F0 MOVWF R0 +0x20C8 0x3001 MOVLW 1 +0x20C9 0x00F1 MOVWF R1 +0x20CA 0x306F MOVLW 111 +0x20CB 0x0086 MOVWF FSR1 +0x20CC 0x3000 MOVLW 0 +0x20CD 0x0087 MOVWF FSR1H +0x20CE 0x3180 MOVLP 0 +0x20CF 0x27F0 CALL 2032 +0x20D0 0x31A0 MOVLP 32 +0x20D1 0x307F MOVLW 127 +0x20D2 0x0084 MOVWF FSR0 +0x20D3 0x30A0 MOVLW 160 +0x20D4 0x0085 MOVWF FSR0H +0x20D5 0x3024 MOVLW 36 +0x20D6 0x00F0 MOVWF R0 +0x20D7 0x3001 MOVLW 1 +0x20D8 0x00F1 MOVWF R1 +0x20D9 0x30C6 MOVLW 198 +0x20DA 0x0086 MOVWF FSR1 +0x20DB 0x3000 MOVLW 0 +0x20DC 0x0087 MOVWF FSR1H +0x20DD 0x3180 MOVLP 0 +0x20DE 0x27F0 CALL 2032 +0x20DF 0x31A0 MOVLP 32 +0x20E0 0x30DF MOVLW 223 +0x20E1 0x0084 MOVWF FSR0 +0x20E2 0x309F MOVLW 159 +0x20E3 0x0085 MOVWF FSR0H +0x20E4 0x300A MOVLW 10 +0x20E5 0x00F0 MOVWF R0 +0x20E6 0x3001 MOVLW 1 +0x20E7 0x00F1 MOVWF R1 +0x20E8 0x3020 MOVLW 32 +0x20E9 0x0086 MOVWF FSR1 +0x20EA 0x3001 MOVLW 1 +0x20EB 0x0087 MOVWF FSR1H +0x20EC 0x3180 MOVLP 0 +0x20ED 0x27F0 CALL 2032 +0x20EE 0x31A0 MOVLP 32 +0x20EF 0x30FD MOVLW 253 +0x20F0 0x0084 MOVWF FSR0 +0x20F1 0x3097 MOVLW 151 +0x20F2 0x0085 MOVWF FSR0H +0x20F3 0x3002 MOVLW 2 +0x20F4 0x00F0 MOVWF R0 +0x20F5 0x3001 MOVLW 1 +0x20F6 0x00F1 MOVWF R1 +0x20F7 0x30EA MOVLW 234 +0x20F8 0x0086 MOVWF FSR1 +0x20F9 0x3000 MOVLW 0 +0x20FA 0x0087 MOVWF FSR1H +0x20FB 0x3180 MOVLP 0 +0x20FC 0x27F0 CALL 2032 +0x20FD 0x31A0 MOVLP 32 +0x20FE 0x30F9 MOVLW 249 +0x20FF 0x0084 MOVWF FSR0 +0x2100 0x3087 MOVLW 135 +0x2101 0x0085 MOVWF FSR0H +0x2102 0x3005 MOVLW 5 +0x2103 0x00F0 MOVWF R0 +0x2104 0x3001 MOVLW 1 +0x2105 0x00F1 MOVWF R1 +0x2106 0x302A MOVLW 42 +0x2107 0x0086 MOVWF FSR1 +0x2108 0x3001 MOVLW 1 +0x2109 0x0087 MOVWF FSR1H +0x210A 0x3180 MOVLP 0 +0x210B 0x27F0 CALL 2032 +0x210C 0x31A0 MOVLP 32 +0x210D 0x30FF MOVLW 255 +0x210E 0x0084 MOVWF FSR0 +0x210F 0x3097 MOVLW 151 +0x2110 0x0085 MOVWF FSR0H +0x2111 0x3001 MOVLW 1 +0x2112 0x00F0 MOVWF R0 +0x2113 0x3001 MOVLW 1 +0x2114 0x00F1 MOVWF R1 +0x2115 0x30EC MOVLW 236 +0x2116 0x0086 MOVWF FSR1 +0x2117 0x3000 MOVLW 0 +0x2118 0x0087 MOVWF FSR1H +0x2119 0x3180 MOVLP 0 +0x211A 0x27F0 CALL 2032 +0x211B 0x31A0 MOVLP 32 +0x211C 0x30F3 MOVLW 243 +0x211D 0x0084 MOVWF FSR0 +0x211E 0x308F MOVLW 143 +0x211F 0x0085 MOVWF FSR0H +0x2120 0x300C MOVLW 12 +0x2121 0x00F0 MOVWF R0 +0x2122 0x3001 MOVLW 1 +0x2123 0x00F1 MOVWF R1 +0x2124 0x302F MOVLW 47 +0x2125 0x0086 MOVWF FSR1 +0x2126 0x3001 MOVLW 1 +0x2127 0x0087 MOVWF FSR1H +0x2128 0x3180 MOVLP 0 +0x2129 0x27F0 CALL 2032 +0x212A 0x31A0 MOVLP 32 +0x212B 0x30FF MOVLW 255 +0x212C 0x0084 MOVWF FSR0 +0x212D 0x308F MOVLW 143 +0x212E 0x0085 MOVWF FSR0H +0x212F 0x3001 MOVLW 1 +0x2130 0x00F0 MOVWF R0 +0x2131 0x3001 MOVLW 1 +0x2132 0x00F1 MOVWF R1 +0x2133 0x30ED MOVLW 237 +0x2134 0x0086 MOVWF FSR1 +0x2135 0x3000 MOVLW 0 +0x2136 0x0087 MOVWF FSR1H +0x2137 0x3180 MOVLP 0 +0x2138 0x27F0 CALL 2032 +0x2139 0x31A0 MOVLP 32 +0x213A 0x30E9 MOVLW 233 +0x213B 0x0084 MOVWF FSR0 +0x213C 0x309F MOVLW 159 +0x213D 0x0085 MOVWF FSR0H +0x213E 0x3004 MOVLW 4 +0x213F 0x00F0 MOVWF R0 +0x2140 0x3001 MOVLW 1 +0x2141 0x00F1 MOVWF R1 +0x2142 0x303B MOVLW 59 +0x2143 0x0086 MOVWF FSR1 +0x2144 0x3001 MOVLW 1 +0x2145 0x0087 MOVWF FSR1H +0x2146 0x3180 MOVLP 0 +0x2147 0x27F0 CALL 2032 +0x2148 0x31A0 MOVLP 32 +0x2149 0x30FE MOVLW 254 +0x214A 0x0084 MOVWF FSR0 +0x214B 0x3087 MOVLW 135 +0x214C 0x0085 MOVWF FSR0H +0x214D 0x3002 MOVLW 2 +0x214E 0x00F0 MOVWF R0 +0x214F 0x3001 MOVLW 1 +0x2150 0x00F1 MOVWF R1 +0x2151 0x30EE MOVLW 238 +0x2152 0x0086 MOVWF FSR1 +0x2153 0x3000 MOVLW 0 +0x2154 0x0087 MOVWF FSR1H +0x2155 0x3180 MOVLP 0 +0x2156 0x27F0 CALL 2032 +0x2157 0x31A0 MOVLP 32 +0x2158 0x3000 MOVLW 0 +0x2159 0x0084 MOVWF FSR0 +0x215A 0x30A0 MOVLW 160 +0x215B 0x0085 MOVWF FSR0H +0x215C 0x302D MOVLW 45 +0x215D 0x00F0 MOVWF R0 +0x215E 0x3001 MOVLW 1 +0x215F 0x00F1 MOVWF R1 +0x2160 0x303F MOVLW 63 +0x2161 0x0086 MOVWF FSR1 +0x2162 0x3001 MOVLW 1 +0x2163 0x0087 MOVWF FSR1H +0x2164 0x3180 MOVLP 0 +0x2165 0x27F0 CALL 2032 +0x2166 0x31A0 MOVLP 32 +0x2167 0x0008 RETURN +;oled_control.c,0 :: ?ICSoled_control_oled_shift +0x0003 0x3402 ;?ICSoled_control_oled_shift+0 +; end of ?ICSoled_control_oled_shift +;main.c,0 :: ?ICS?lstr11_main +0x07F9 0x3430 ;?ICS?lstr11_main+0 +0x07FA 0x342E ;?ICS?lstr11_main+1 +0x07FB 0x3430 ;?ICS?lstr11_main+2 +0x07FC 0x3430 ;?ICS?lstr11_main+3 +0x07FD 0x3400 ;?ICS?lstr11_main+4 +; end of ?ICS?lstr11_main +;main.c,0 :: ?ICS_SW +0x07FE 0x3400 ;?ICS_SW+0 +; end of ?ICS_SW +;main.c,0 :: ?ICS_cap +0x07FF 0x3400 ;?ICS_cap+0 +; end of ?ICS_cap +;main.c,0 :: ?ICS?lstr14_main +0x0FF3 0x3420 ;?ICS?lstr14_main+0 +0x0FF4 0x3450 ;?ICS?lstr14_main+1 +0x0FF5 0x344F ;?ICS?lstr14_main+2 +0x0FF6 0x3457 ;?ICS?lstr14_main+3 +0x0FF7 0x3445 ;?ICS?lstr14_main+4 +0x0FF8 0x3452 ;?ICS?lstr14_main+5 +0x0FF9 0x3420 ;?ICS?lstr14_main+6 +0x0FFA 0x344F ;?ICS?lstr14_main+7 +0x0FFB 0x3446 ;?ICS?lstr14_main+8 +0x0FFC 0x3446 ;?ICS?lstr14_main+9 +0x0FFD 0x3420 ;?ICS?lstr14_main+10 +0x0FFE 0x3400 ;?ICS?lstr14_main+11 +; end of ?ICS?lstr14_main +;main.c,0 :: ?ICS_step_cap +0x0FFF 0x3400 ;?ICS_step_cap+0 +; end of ?ICS_step_cap +;main.c,0 :: ?ICS?lstr12_main +0x17BD 0x3430 ;?ICS?lstr12_main+0 +0x17BE 0x342E ;?ICS?lstr12_main+1 +0x17BF 0x3430 ;?ICS?lstr12_main+2 +0x17C0 0x3400 ;?ICS?lstr12_main+3 +; end of ?ICS?lstr12_main +;main.c,0 :: ?ICS?lstr22_main +0x17C1 0x3420 ;?ICS?lstr22_main+0 +0x17C2 0x3444 ;?ICS?lstr22_main+1 +0x17C3 0x3445 ;?ICS?lstr22_main+2 +0x17C4 0x3453 ;?ICS?lstr22_main+3 +0x17C5 0x3449 ;?ICS?lstr22_main+4 +0x17C6 0x3447 ;?ICS?lstr22_main+5 +0x17C7 0x344E ;?ICS?lstr22_main+6 +0x17C8 0x3445 ;?ICS?lstr22_main+7 +0x17C9 0x3444 ;?ICS?lstr22_main+8 +0x17CA 0x3420 ;?ICS?lstr22_main+9 +0x17CB 0x3442 ;?ICS?lstr22_main+10 +0x17CC 0x3459 ;?ICS?lstr22_main+11 +0x17CD 0x3420 ;?ICS?lstr22_main+12 +0x17CE 0x344E ;?ICS?lstr22_main+13 +0x17CF 0x3437 ;?ICS?lstr22_main+14 +0x17D0 0x3444 ;?ICS?lstr22_main+15 +0x17D1 0x3444 ;?ICS?lstr22_main+16 +0x17D2 0x3443 ;?ICS?lstr22_main+17 +0x17D3 0x3400 ;?ICS?lstr22_main+18 +; end of ?ICS?lstr22_main +;main.c,0 :: ?ICS?lstr23_main +0x17D4 0x3420 ;?ICS?lstr23_main+0 +0x17D5 0x3446 ;?ICS?lstr23_main+1 +0x17D6 0x3457 ;?ICS?lstr23_main+2 +0x17D7 0x3420 ;?ICS?lstr23_main+3 +0x17D8 0x3456 ;?ICS?lstr23_main+4 +0x17D9 0x3445 ;?ICS?lstr23_main+5 +0x17DA 0x3452 ;?ICS?lstr23_main+6 +0x17DB 0x3453 ;?ICS?lstr23_main+7 +0x17DC 0x3449 ;?ICS?lstr23_main+8 +0x17DD 0x344F ;?ICS?lstr23_main+9 +0x17DE 0x344E ;?ICS?lstr23_main+10 +0x17DF 0x3420 ;?ICS?lstr23_main+11 +0x17E0 0x3400 ;?ICS?lstr23_main+12 +; end of ?ICS?lstr23_main +;main.c,0 :: ?ICS_Disp_time +0x17E1 0x342C ;?ICS_Disp_time+0 +0x17E2 0x3401 ;?ICS_Disp_time+1 +0x17E3 0x3400 ;?ICS_Disp_time+2 +0x17E4 0x3400 ;?ICS_Disp_time+3 +; end of ?ICS_Disp_time +;main.c,0 :: ?ICS_Off_time +0x17E5 0x3408 ;?ICS_Off_time+0 +0x17E6 0x3407 ;?ICS_Off_time+1 +0x17E7 0x3400 ;?ICS_Off_time+2 +0x17E8 0x3400 ;?ICS_Off_time+3 +; end of ?ICS_Off_time +;main.c,0 :: ?ICS?lstr24_main +0x17E9 0x3431 ;?ICS?lstr24_main+0 +0x17EA 0x342E ;?ICS?lstr24_main+1 +0x17EB 0x3433 ;?ICS?lstr24_main+2 +0x17EC 0x3400 ;?ICS?lstr24_main+3 +; end of ?ICS?lstr24_main +;main.c,0 :: ?ICS?lstr21_main +0x17ED 0x3430 ;?ICS?lstr21_main+0 +0x17EE 0x342E ;?ICS?lstr21_main+1 +0x17EF 0x3430 ;?ICS?lstr21_main+2 +0x17F0 0x3430 ;?ICS?lstr21_main+3 +0x17F1 0x3400 ;?ICS?lstr21_main+4 +; end of ?ICS?lstr21_main +;main.c,0 :: ?ICS_btn_1_cnt +0x17F2 0x3400 ;?ICS_btn_1_cnt+0 +; end of ?ICS_btn_1_cnt +;main.c,0 :: ?ICS?lstr18_main +0x17F3 0x3452 ;?ICS?lstr18_main+0 +0x17F4 0x3445 ;?ICS?lstr18_main+1 +0x17F5 0x3453 ;?ICS?lstr18_main+2 +0x17F6 0x3445 ;?ICS?lstr18_main+3 +0x17F7 0x3454 ;?ICS?lstr18_main+4 +0x17F8 0x3420 ;?ICS?lstr18_main+5 +0x17F9 0x3420 ;?ICS?lstr18_main+6 +0x17FA 0x3420 ;?ICS?lstr18_main+7 +0x17FB 0x3420 ;?ICS?lstr18_main+8 +0x17FC 0x3400 ;?ICS?lstr18_main+9 +; end of ?ICS?lstr18_main +;main.c,0 :: ?ICS_Auto_delta +0x17FD 0x3482 ;?ICS_Auto_delta+0 +0x17FE 0x3400 ;?ICS_Auto_delta+1 +; end of ?ICS_Auto_delta +;main.c,0 :: ?ICS_step_ind +0x17FF 0x3400 ;?ICS_step_ind+0 +; end of ?ICS_step_ind +;oled_control.c,1 :: oled_control_font_5x8 +0x1DFF 0x3400 ;oled_control_font_5x8+0 +0x1E00 0x3400 ;oled_control_font_5x8+1 +0x1E01 0x3400 ;oled_control_font_5x8+2 +0x1E02 0x3400 ;oled_control_font_5x8+3 +0x1E03 0x3400 ;oled_control_font_5x8+4 +0x1E04 0x3400 ;oled_control_font_5x8+5 +0x1E05 0x3400 ;oled_control_font_5x8+6 +0x1E06 0x345F ;oled_control_font_5x8+7 +0x1E07 0x3400 ;oled_control_font_5x8+8 +0x1E08 0x3400 ;oled_control_font_5x8+9 +0x1E09 0x3400 ;oled_control_font_5x8+10 +0x1E0A 0x3407 ;oled_control_font_5x8+11 +0x1E0B 0x3400 ;oled_control_font_5x8+12 +0x1E0C 0x3407 ;oled_control_font_5x8+13 +0x1E0D 0x3400 ;oled_control_font_5x8+14 +0x1E0E 0x3414 ;oled_control_font_5x8+15 +0x1E0F 0x347F ;oled_control_font_5x8+16 +0x1E10 0x3414 ;oled_control_font_5x8+17 +0x1E11 0x347F ;oled_control_font_5x8+18 +0x1E12 0x3414 ;oled_control_font_5x8+19 +0x1E13 0x3424 ;oled_control_font_5x8+20 +0x1E14 0x342A ;oled_control_font_5x8+21 +0x1E15 0x347F ;oled_control_font_5x8+22 +0x1E16 0x342A ;oled_control_font_5x8+23 +0x1E17 0x3412 ;oled_control_font_5x8+24 +0x1E18 0x3423 ;oled_control_font_5x8+25 +0x1E19 0x3413 ;oled_control_font_5x8+26 +0x1E1A 0x3408 ;oled_control_font_5x8+27 +0x1E1B 0x3464 ;oled_control_font_5x8+28 +0x1E1C 0x3462 ;oled_control_font_5x8+29 +0x1E1D 0x3436 ;oled_control_font_5x8+30 +0x1E1E 0x3449 ;oled_control_font_5x8+31 +0x1E1F 0x3455 ;oled_control_font_5x8+32 +0x1E20 0x3422 ;oled_control_font_5x8+33 +0x1E21 0x3450 ;oled_control_font_5x8+34 +0x1E22 0x3400 ;oled_control_font_5x8+35 +0x1E23 0x3405 ;oled_control_font_5x8+36 +0x1E24 0x3403 ;oled_control_font_5x8+37 +0x1E25 0x3400 ;oled_control_font_5x8+38 +0x1E26 0x3400 ;oled_control_font_5x8+39 +0x1E27 0x3400 ;oled_control_font_5x8+40 +0x1E28 0x341C ;oled_control_font_5x8+41 +0x1E29 0x3422 ;oled_control_font_5x8+42 +0x1E2A 0x3441 ;oled_control_font_5x8+43 +0x1E2B 0x3400 ;oled_control_font_5x8+44 +0x1E2C 0x3400 ;oled_control_font_5x8+45 +0x1E2D 0x3441 ;oled_control_font_5x8+46 +0x1E2E 0x3422 ;oled_control_font_5x8+47 +0x1E2F 0x341C ;oled_control_font_5x8+48 +0x1E30 0x3400 ;oled_control_font_5x8+49 +0x1E31 0x3408 ;oled_control_font_5x8+50 +0x1E32 0x342A ;oled_control_font_5x8+51 +0x1E33 0x341C ;oled_control_font_5x8+52 +0x1E34 0x342A ;oled_control_font_5x8+53 +0x1E35 0x3408 ;oled_control_font_5x8+54 +0x1E36 0x3408 ;oled_control_font_5x8+55 +0x1E37 0x3408 ;oled_control_font_5x8+56 +0x1E38 0x343E ;oled_control_font_5x8+57 +0x1E39 0x3408 ;oled_control_font_5x8+58 +0x1E3A 0x3408 ;oled_control_font_5x8+59 +0x1E3B 0x3400 ;oled_control_font_5x8+60 +0x1E3C 0x3450 ;oled_control_font_5x8+61 +0x1E3D 0x3430 ;oled_control_font_5x8+62 +0x1E3E 0x3400 ;oled_control_font_5x8+63 +0x1E3F 0x3400 ;oled_control_font_5x8+64 +0x1E40 0x3408 ;oled_control_font_5x8+65 +0x1E41 0x3408 ;oled_control_font_5x8+66 +0x1E42 0x3408 ;oled_control_font_5x8+67 +0x1E43 0x3408 ;oled_control_font_5x8+68 +0x1E44 0x3408 ;oled_control_font_5x8+69 +0x1E45 0x3400 ;oled_control_font_5x8+70 +0x1E46 0x3430 ;oled_control_font_5x8+71 +0x1E47 0x3430 ;oled_control_font_5x8+72 +0x1E48 0x3400 ;oled_control_font_5x8+73 +0x1E49 0x3400 ;oled_control_font_5x8+74 +0x1E4A 0x3420 ;oled_control_font_5x8+75 +0x1E4B 0x3410 ;oled_control_font_5x8+76 +0x1E4C 0x3408 ;oled_control_font_5x8+77 +0x1E4D 0x3404 ;oled_control_font_5x8+78 +0x1E4E 0x3402 ;oled_control_font_5x8+79 +0x1E4F 0x343E ;oled_control_font_5x8+80 +0x1E50 0x3451 ;oled_control_font_5x8+81 +0x1E51 0x3449 ;oled_control_font_5x8+82 +0x1E52 0x3445 ;oled_control_font_5x8+83 +0x1E53 0x343E ;oled_control_font_5x8+84 +0x1E54 0x3400 ;oled_control_font_5x8+85 +0x1E55 0x3442 ;oled_control_font_5x8+86 +0x1E56 0x347F ;oled_control_font_5x8+87 +0x1E57 0x3440 ;oled_control_font_5x8+88 +0x1E58 0x3400 ;oled_control_font_5x8+89 +0x1E59 0x3442 ;oled_control_font_5x8+90 +0x1E5A 0x3461 ;oled_control_font_5x8+91 +0x1E5B 0x3451 ;oled_control_font_5x8+92 +0x1E5C 0x3449 ;oled_control_font_5x8+93 +0x1E5D 0x3446 ;oled_control_font_5x8+94 +0x1E5E 0x3421 ;oled_control_font_5x8+95 +0x1E5F 0x3441 ;oled_control_font_5x8+96 +0x1E60 0x3445 ;oled_control_font_5x8+97 +0x1E61 0x344B ;oled_control_font_5x8+98 +0x1E62 0x3431 ;oled_control_font_5x8+99 +0x1E63 0x3418 ;oled_control_font_5x8+100 +0x1E64 0x3414 ;oled_control_font_5x8+101 +0x1E65 0x3412 ;oled_control_font_5x8+102 +0x1E66 0x347F ;oled_control_font_5x8+103 +0x1E67 0x3410 ;oled_control_font_5x8+104 +0x1E68 0x3427 ;oled_control_font_5x8+105 +0x1E69 0x3445 ;oled_control_font_5x8+106 +0x1E6A 0x3445 ;oled_control_font_5x8+107 +0x1E6B 0x3445 ;oled_control_font_5x8+108 +0x1E6C 0x3439 ;oled_control_font_5x8+109 +0x1E6D 0x343C ;oled_control_font_5x8+110 +0x1E6E 0x344A ;oled_control_font_5x8+111 +0x1E6F 0x3449 ;oled_control_font_5x8+112 +0x1E70 0x3449 ;oled_control_font_5x8+113 +0x1E71 0x3430 ;oled_control_font_5x8+114 +0x1E72 0x3401 ;oled_control_font_5x8+115 +0x1E73 0x3471 ;oled_control_font_5x8+116 +0x1E74 0x3409 ;oled_control_font_5x8+117 +0x1E75 0x3405 ;oled_control_font_5x8+118 +0x1E76 0x3403 ;oled_control_font_5x8+119 +0x1E77 0x3436 ;oled_control_font_5x8+120 +0x1E78 0x3449 ;oled_control_font_5x8+121 +0x1E79 0x3449 ;oled_control_font_5x8+122 +0x1E7A 0x3449 ;oled_control_font_5x8+123 +0x1E7B 0x3436 ;oled_control_font_5x8+124 +0x1E7C 0x3406 ;oled_control_font_5x8+125 +0x1E7D 0x3449 ;oled_control_font_5x8+126 +0x1E7E 0x3449 ;oled_control_font_5x8+127 +0x1E7F 0x3429 ;oled_control_font_5x8+128 +0x1E80 0x341E ;oled_control_font_5x8+129 +0x1E81 0x3400 ;oled_control_font_5x8+130 +0x1E82 0x3436 ;oled_control_font_5x8+131 +0x1E83 0x3436 ;oled_control_font_5x8+132 +0x1E84 0x3400 ;oled_control_font_5x8+133 +0x1E85 0x3400 ;oled_control_font_5x8+134 +0x1E86 0x3400 ;oled_control_font_5x8+135 +0x1E87 0x3456 ;oled_control_font_5x8+136 +0x1E88 0x3436 ;oled_control_font_5x8+137 +0x1E89 0x3400 ;oled_control_font_5x8+138 +0x1E8A 0x3400 ;oled_control_font_5x8+139 +0x1E8B 0x3400 ;oled_control_font_5x8+140 +0x1E8C 0x3408 ;oled_control_font_5x8+141 +0x1E8D 0x3414 ;oled_control_font_5x8+142 +0x1E8E 0x3422 ;oled_control_font_5x8+143 +0x1E8F 0x3441 ;oled_control_font_5x8+144 +0x1E90 0x3414 ;oled_control_font_5x8+145 +0x1E91 0x3414 ;oled_control_font_5x8+146 +0x1E92 0x3414 ;oled_control_font_5x8+147 +0x1E93 0x3414 ;oled_control_font_5x8+148 +0x1E94 0x3414 ;oled_control_font_5x8+149 +0x1E95 0x3441 ;oled_control_font_5x8+150 +0x1E96 0x3422 ;oled_control_font_5x8+151 +0x1E97 0x3414 ;oled_control_font_5x8+152 +0x1E98 0x3408 ;oled_control_font_5x8+153 +0x1E99 0x3400 ;oled_control_font_5x8+154 +0x1E9A 0x3402 ;oled_control_font_5x8+155 +0x1E9B 0x3401 ;oled_control_font_5x8+156 +0x1E9C 0x3451 ;oled_control_font_5x8+157 +0x1E9D 0x3409 ;oled_control_font_5x8+158 +0x1E9E 0x3406 ;oled_control_font_5x8+159 +0x1E9F 0x3432 ;oled_control_font_5x8+160 +0x1EA0 0x3449 ;oled_control_font_5x8+161 +0x1EA1 0x3479 ;oled_control_font_5x8+162 +0x1EA2 0x3441 ;oled_control_font_5x8+163 +0x1EA3 0x343E ;oled_control_font_5x8+164 +0x1EA4 0x347E ;oled_control_font_5x8+165 +0x1EA5 0x3411 ;oled_control_font_5x8+166 +0x1EA6 0x3411 ;oled_control_font_5x8+167 +0x1EA7 0x3411 ;oled_control_font_5x8+168 +0x1EA8 0x347E ;oled_control_font_5x8+169 +0x1EA9 0x347F ;oled_control_font_5x8+170 +0x1EAA 0x3449 ;oled_control_font_5x8+171 +0x1EAB 0x3449 ;oled_control_font_5x8+172 +0x1EAC 0x3449 ;oled_control_font_5x8+173 +0x1EAD 0x3436 ;oled_control_font_5x8+174 +0x1EAE 0x343E ;oled_control_font_5x8+175 +0x1EAF 0x3441 ;oled_control_font_5x8+176 +0x1EB0 0x3441 ;oled_control_font_5x8+177 +0x1EB1 0x3441 ;oled_control_font_5x8+178 +0x1EB2 0x3422 ;oled_control_font_5x8+179 +0x1EB3 0x347F ;oled_control_font_5x8+180 +0x1EB4 0x3441 ;oled_control_font_5x8+181 +0x1EB5 0x3441 ;oled_control_font_5x8+182 +0x1EB6 0x3422 ;oled_control_font_5x8+183 +0x1EB7 0x341C ;oled_control_font_5x8+184 +0x1EB8 0x347F ;oled_control_font_5x8+185 +0x1EB9 0x3449 ;oled_control_font_5x8+186 +0x1EBA 0x3449 ;oled_control_font_5x8+187 +0x1EBB 0x3449 ;oled_control_font_5x8+188 +0x1EBC 0x3441 ;oled_control_font_5x8+189 +0x1EBD 0x347F ;oled_control_font_5x8+190 +0x1EBE 0x3409 ;oled_control_font_5x8+191 +0x1EBF 0x3409 ;oled_control_font_5x8+192 +0x1EC0 0x3401 ;oled_control_font_5x8+193 +0x1EC1 0x3401 ;oled_control_font_5x8+194 +0x1EC2 0x343E ;oled_control_font_5x8+195 +0x1EC3 0x3441 ;oled_control_font_5x8+196 +0x1EC4 0x3441 ;oled_control_font_5x8+197 +0x1EC5 0x3451 ;oled_control_font_5x8+198 +0x1EC6 0x3432 ;oled_control_font_5x8+199 +0x1EC7 0x347F ;oled_control_font_5x8+200 +0x1EC8 0x3408 ;oled_control_font_5x8+201 +0x1EC9 0x3408 ;oled_control_font_5x8+202 +0x1ECA 0x3408 ;oled_control_font_5x8+203 +0x1ECB 0x347F ;oled_control_font_5x8+204 +0x1ECC 0x3400 ;oled_control_font_5x8+205 +0x1ECD 0x3441 ;oled_control_font_5x8+206 +0x1ECE 0x347F ;oled_control_font_5x8+207 +0x1ECF 0x3441 ;oled_control_font_5x8+208 +0x1ED0 0x3400 ;oled_control_font_5x8+209 +0x1ED1 0x3420 ;oled_control_font_5x8+210 +0x1ED2 0x3440 ;oled_control_font_5x8+211 +0x1ED3 0x3441 ;oled_control_font_5x8+212 +0x1ED4 0x343F ;oled_control_font_5x8+213 +0x1ED5 0x3401 ;oled_control_font_5x8+214 +0x1ED6 0x347F ;oled_control_font_5x8+215 +0x1ED7 0x3408 ;oled_control_font_5x8+216 +0x1ED8 0x3414 ;oled_control_font_5x8+217 +0x1ED9 0x3422 ;oled_control_font_5x8+218 +0x1EDA 0x3441 ;oled_control_font_5x8+219 +0x1EDB 0x347F ;oled_control_font_5x8+220 +0x1EDC 0x3440 ;oled_control_font_5x8+221 +0x1EDD 0x3440 ;oled_control_font_5x8+222 +0x1EDE 0x3440 ;oled_control_font_5x8+223 +0x1EDF 0x3440 ;oled_control_font_5x8+224 +0x1EE0 0x347F ;oled_control_font_5x8+225 +0x1EE1 0x3402 ;oled_control_font_5x8+226 +0x1EE2 0x3404 ;oled_control_font_5x8+227 +0x1EE3 0x3402 ;oled_control_font_5x8+228 +0x1EE4 0x347F ;oled_control_font_5x8+229 +0x1EE5 0x347F ;oled_control_font_5x8+230 +0x1EE6 0x3404 ;oled_control_font_5x8+231 +0x1EE7 0x3408 ;oled_control_font_5x8+232 +0x1EE8 0x3410 ;oled_control_font_5x8+233 +0x1EE9 0x347F ;oled_control_font_5x8+234 +0x1EEA 0x343E ;oled_control_font_5x8+235 +0x1EEB 0x3441 ;oled_control_font_5x8+236 +0x1EEC 0x3441 ;oled_control_font_5x8+237 +0x1EED 0x3441 ;oled_control_font_5x8+238 +0x1EEE 0x343E ;oled_control_font_5x8+239 +0x1EEF 0x347F ;oled_control_font_5x8+240 +0x1EF0 0x3409 ;oled_control_font_5x8+241 +0x1EF1 0x3409 ;oled_control_font_5x8+242 +0x1EF2 0x3409 ;oled_control_font_5x8+243 +0x1EF3 0x3406 ;oled_control_font_5x8+244 +0x1EF4 0x343E ;oled_control_font_5x8+245 +0x1EF5 0x3441 ;oled_control_font_5x8+246 +0x1EF6 0x3451 ;oled_control_font_5x8+247 +0x1EF7 0x3421 ;oled_control_font_5x8+248 +0x1EF8 0x345E ;oled_control_font_5x8+249 +0x1EF9 0x347F ;oled_control_font_5x8+250 +0x1EFA 0x3409 ;oled_control_font_5x8+251 +0x1EFB 0x3419 ;oled_control_font_5x8+252 +0x1EFC 0x3429 ;oled_control_font_5x8+253 +0x1EFD 0x3446 ;oled_control_font_5x8+254 +0x1EFE 0x3446 ;oled_control_font_5x8+255 +0x1EFF 0x3449 ;oled_control_font_5x8+256 +0x1F00 0x3449 ;oled_control_font_5x8+257 +0x1F01 0x3449 ;oled_control_font_5x8+258 +0x1F02 0x3431 ;oled_control_font_5x8+259 +0x1F03 0x3401 ;oled_control_font_5x8+260 +0x1F04 0x3401 ;oled_control_font_5x8+261 +0x1F05 0x347F ;oled_control_font_5x8+262 +0x1F06 0x3401 ;oled_control_font_5x8+263 +0x1F07 0x3401 ;oled_control_font_5x8+264 +0x1F08 0x343F ;oled_control_font_5x8+265 +0x1F09 0x3440 ;oled_control_font_5x8+266 +0x1F0A 0x3440 ;oled_control_font_5x8+267 +0x1F0B 0x3440 ;oled_control_font_5x8+268 +0x1F0C 0x343F ;oled_control_font_5x8+269 +0x1F0D 0x341F ;oled_control_font_5x8+270 +0x1F0E 0x3420 ;oled_control_font_5x8+271 +0x1F0F 0x3440 ;oled_control_font_5x8+272 +0x1F10 0x3420 ;oled_control_font_5x8+273 +0x1F11 0x341F ;oled_control_font_5x8+274 +0x1F12 0x347F ;oled_control_font_5x8+275 +0x1F13 0x3420 ;oled_control_font_5x8+276 +0x1F14 0x3418 ;oled_control_font_5x8+277 +0x1F15 0x3420 ;oled_control_font_5x8+278 +0x1F16 0x347F ;oled_control_font_5x8+279 +0x1F17 0x3463 ;oled_control_font_5x8+280 +0x1F18 0x3414 ;oled_control_font_5x8+281 +0x1F19 0x3408 ;oled_control_font_5x8+282 +0x1F1A 0x3414 ;oled_control_font_5x8+283 +0x1F1B 0x3463 ;oled_control_font_5x8+284 +0x1F1C 0x3403 ;oled_control_font_5x8+285 +0x1F1D 0x3404 ;oled_control_font_5x8+286 +0x1F1E 0x3478 ;oled_control_font_5x8+287 +0x1F1F 0x3404 ;oled_control_font_5x8+288 +0x1F20 0x3403 ;oled_control_font_5x8+289 +0x1F21 0x3461 ;oled_control_font_5x8+290 +0x1F22 0x3451 ;oled_control_font_5x8+291 +0x1F23 0x3449 ;oled_control_font_5x8+292 +0x1F24 0x3445 ;oled_control_font_5x8+293 +0x1F25 0x3443 ;oled_control_font_5x8+294 +0x1F26 0x3400 ;oled_control_font_5x8+295 +0x1F27 0x3400 ;oled_control_font_5x8+296 +0x1F28 0x347F ;oled_control_font_5x8+297 +0x1F29 0x3441 ;oled_control_font_5x8+298 +0x1F2A 0x3441 ;oled_control_font_5x8+299 +0x1F2B 0x3402 ;oled_control_font_5x8+300 +0x1F2C 0x3404 ;oled_control_font_5x8+301 +0x1F2D 0x3408 ;oled_control_font_5x8+302 +0x1F2E 0x3410 ;oled_control_font_5x8+303 +0x1F2F 0x3420 ;oled_control_font_5x8+304 +0x1F30 0x3441 ;oled_control_font_5x8+305 +0x1F31 0x3441 ;oled_control_font_5x8+306 +0x1F32 0x347F ;oled_control_font_5x8+307 +0x1F33 0x3400 ;oled_control_font_5x8+308 +0x1F34 0x3400 ;oled_control_font_5x8+309 +0x1F35 0x3404 ;oled_control_font_5x8+310 +0x1F36 0x3402 ;oled_control_font_5x8+311 +0x1F37 0x3401 ;oled_control_font_5x8+312 +0x1F38 0x3402 ;oled_control_font_5x8+313 +0x1F39 0x3404 ;oled_control_font_5x8+314 +0x1F3A 0x3440 ;oled_control_font_5x8+315 +0x1F3B 0x3440 ;oled_control_font_5x8+316 +0x1F3C 0x3440 ;oled_control_font_5x8+317 +0x1F3D 0x3440 ;oled_control_font_5x8+318 +0x1F3E 0x3440 ;oled_control_font_5x8+319 +0x1F3F 0x3400 ;oled_control_font_5x8+320 +0x1F40 0x3401 ;oled_control_font_5x8+321 +0x1F41 0x3402 ;oled_control_font_5x8+322 +0x1F42 0x3404 ;oled_control_font_5x8+323 +0x1F43 0x3400 ;oled_control_font_5x8+324 +0x1F44 0x3420 ;oled_control_font_5x8+325 +0x1F45 0x3454 ;oled_control_font_5x8+326 +0x1F46 0x3454 ;oled_control_font_5x8+327 +0x1F47 0x3454 ;oled_control_font_5x8+328 +0x1F48 0x3478 ;oled_control_font_5x8+329 +0x1F49 0x347F ;oled_control_font_5x8+330 +0x1F4A 0x3448 ;oled_control_font_5x8+331 +0x1F4B 0x3444 ;oled_control_font_5x8+332 +0x1F4C 0x3444 ;oled_control_font_5x8+333 +0x1F4D 0x3438 ;oled_control_font_5x8+334 +0x1F4E 0x3438 ;oled_control_font_5x8+335 +0x1F4F 0x3444 ;oled_control_font_5x8+336 +0x1F50 0x3444 ;oled_control_font_5x8+337 +0x1F51 0x3444 ;oled_control_font_5x8+338 +0x1F52 0x3420 ;oled_control_font_5x8+339 +0x1F53 0x3438 ;oled_control_font_5x8+340 +0x1F54 0x3444 ;oled_control_font_5x8+341 +0x1F55 0x3444 ;oled_control_font_5x8+342 +0x1F56 0x3448 ;oled_control_font_5x8+343 +0x1F57 0x347F ;oled_control_font_5x8+344 +0x1F58 0x3438 ;oled_control_font_5x8+345 +0x1F59 0x3454 ;oled_control_font_5x8+346 +0x1F5A 0x3454 ;oled_control_font_5x8+347 +0x1F5B 0x3454 ;oled_control_font_5x8+348 +0x1F5C 0x3418 ;oled_control_font_5x8+349 +0x1F5D 0x3408 ;oled_control_font_5x8+350 +0x1F5E 0x347E ;oled_control_font_5x8+351 +0x1F5F 0x3409 ;oled_control_font_5x8+352 +0x1F60 0x3401 ;oled_control_font_5x8+353 +0x1F61 0x3402 ;oled_control_font_5x8+354 +0x1F62 0x3408 ;oled_control_font_5x8+355 +0x1F63 0x3414 ;oled_control_font_5x8+356 +0x1F64 0x3454 ;oled_control_font_5x8+357 +0x1F65 0x3454 ;oled_control_font_5x8+358 +0x1F66 0x343C ;oled_control_font_5x8+359 +0x1F67 0x347F ;oled_control_font_5x8+360 +0x1F68 0x3408 ;oled_control_font_5x8+361 +0x1F69 0x3404 ;oled_control_font_5x8+362 +0x1F6A 0x3404 ;oled_control_font_5x8+363 +0x1F6B 0x3478 ;oled_control_font_5x8+364 +0x1F6C 0x3400 ;oled_control_font_5x8+365 +0x1F6D 0x3444 ;oled_control_font_5x8+366 +0x1F6E 0x347D ;oled_control_font_5x8+367 +0x1F6F 0x3440 ;oled_control_font_5x8+368 +0x1F70 0x3400 ;oled_control_font_5x8+369 +0x1F71 0x3420 ;oled_control_font_5x8+370 +0x1F72 0x3440 ;oled_control_font_5x8+371 +0x1F73 0x3444 ;oled_control_font_5x8+372 +0x1F74 0x343D ;oled_control_font_5x8+373 +0x1F75 0x3400 ;oled_control_font_5x8+374 +0x1F76 0x3400 ;oled_control_font_5x8+375 +0x1F77 0x347F ;oled_control_font_5x8+376 +0x1F78 0x3410 ;oled_control_font_5x8+377 +0x1F79 0x3428 ;oled_control_font_5x8+378 +0x1F7A 0x3444 ;oled_control_font_5x8+379 +0x1F7B 0x3400 ;oled_control_font_5x8+380 +0x1F7C 0x3441 ;oled_control_font_5x8+381 +0x1F7D 0x347F ;oled_control_font_5x8+382 +0x1F7E 0x3440 ;oled_control_font_5x8+383 +0x1F7F 0x3400 ;oled_control_font_5x8+384 +0x1F80 0x347C ;oled_control_font_5x8+385 +0x1F81 0x3404 ;oled_control_font_5x8+386 +0x1F82 0x3418 ;oled_control_font_5x8+387 +0x1F83 0x3404 ;oled_control_font_5x8+388 +0x1F84 0x3478 ;oled_control_font_5x8+389 +0x1F85 0x347C ;oled_control_font_5x8+390 +0x1F86 0x3408 ;oled_control_font_5x8+391 +0x1F87 0x3404 ;oled_control_font_5x8+392 +0x1F88 0x3404 ;oled_control_font_5x8+393 +0x1F89 0x3478 ;oled_control_font_5x8+394 +0x1F8A 0x3438 ;oled_control_font_5x8+395 +0x1F8B 0x3444 ;oled_control_font_5x8+396 +0x1F8C 0x3444 ;oled_control_font_5x8+397 +0x1F8D 0x3444 ;oled_control_font_5x8+398 +0x1F8E 0x3438 ;oled_control_font_5x8+399 +0x1F8F 0x347C ;oled_control_font_5x8+400 +0x1F90 0x3414 ;oled_control_font_5x8+401 +0x1F91 0x3414 ;oled_control_font_5x8+402 +0x1F92 0x3414 ;oled_control_font_5x8+403 +0x1F93 0x3408 ;oled_control_font_5x8+404 +0x1F94 0x3408 ;oled_control_font_5x8+405 +0x1F95 0x3414 ;oled_control_font_5x8+406 +0x1F96 0x3414 ;oled_control_font_5x8+407 +0x1F97 0x3418 ;oled_control_font_5x8+408 +0x1F98 0x347C ;oled_control_font_5x8+409 +0x1F99 0x347C ;oled_control_font_5x8+410 +0x1F9A 0x3408 ;oled_control_font_5x8+411 +0x1F9B 0x3404 ;oled_control_font_5x8+412 +0x1F9C 0x3404 ;oled_control_font_5x8+413 +0x1F9D 0x3408 ;oled_control_font_5x8+414 +0x1F9E 0x3448 ;oled_control_font_5x8+415 +0x1F9F 0x3454 ;oled_control_font_5x8+416 +0x1FA0 0x3454 ;oled_control_font_5x8+417 +0x1FA1 0x3454 ;oled_control_font_5x8+418 +0x1FA2 0x3420 ;oled_control_font_5x8+419 +0x1FA3 0x3404 ;oled_control_font_5x8+420 +0x1FA4 0x343F ;oled_control_font_5x8+421 +0x1FA5 0x3444 ;oled_control_font_5x8+422 +0x1FA6 0x3440 ;oled_control_font_5x8+423 +0x1FA7 0x3420 ;oled_control_font_5x8+424 +0x1FA8 0x343C ;oled_control_font_5x8+425 +0x1FA9 0x3440 ;oled_control_font_5x8+426 +0x1FAA 0x3440 ;oled_control_font_5x8+427 +0x1FAB 0x3420 ;oled_control_font_5x8+428 +0x1FAC 0x347C ;oled_control_font_5x8+429 +0x1FAD 0x341C ;oled_control_font_5x8+430 +0x1FAE 0x3420 ;oled_control_font_5x8+431 +0x1FAF 0x3440 ;oled_control_font_5x8+432 +0x1FB0 0x3420 ;oled_control_font_5x8+433 +0x1FB1 0x341C ;oled_control_font_5x8+434 +0x1FB2 0x343C ;oled_control_font_5x8+435 +0x1FB3 0x3440 ;oled_control_font_5x8+436 +0x1FB4 0x3430 ;oled_control_font_5x8+437 +0x1FB5 0x3440 ;oled_control_font_5x8+438 +0x1FB6 0x343C ;oled_control_font_5x8+439 +0x1FB7 0x3444 ;oled_control_font_5x8+440 +0x1FB8 0x3428 ;oled_control_font_5x8+441 +0x1FB9 0x3410 ;oled_control_font_5x8+442 +0x1FBA 0x3428 ;oled_control_font_5x8+443 +0x1FBB 0x3444 ;oled_control_font_5x8+444 +0x1FBC 0x340C ;oled_control_font_5x8+445 +0x1FBD 0x3450 ;oled_control_font_5x8+446 +0x1FBE 0x3450 ;oled_control_font_5x8+447 +0x1FBF 0x3450 ;oled_control_font_5x8+448 +0x1FC0 0x343C ;oled_control_font_5x8+449 +0x1FC1 0x3444 ;oled_control_font_5x8+450 +0x1FC2 0x3464 ;oled_control_font_5x8+451 +0x1FC3 0x3454 ;oled_control_font_5x8+452 +0x1FC4 0x344C ;oled_control_font_5x8+453 +0x1FC5 0x3444 ;oled_control_font_5x8+454 +0x1FC6 0x3400 ;oled_control_font_5x8+455 +0x1FC7 0x3408 ;oled_control_font_5x8+456 +0x1FC8 0x3436 ;oled_control_font_5x8+457 +0x1FC9 0x3441 ;oled_control_font_5x8+458 +0x1FCA 0x3400 ;oled_control_font_5x8+459 +0x1FCB 0x3400 ;oled_control_font_5x8+460 +0x1FCC 0x3400 ;oled_control_font_5x8+461 +0x1FCD 0x347F ;oled_control_font_5x8+462 +0x1FCE 0x3400 ;oled_control_font_5x8+463 +0x1FCF 0x3400 ;oled_control_font_5x8+464 +0x1FD0 0x3400 ;oled_control_font_5x8+465 +0x1FD1 0x3441 ;oled_control_font_5x8+466 +0x1FD2 0x3436 ;oled_control_font_5x8+467 +0x1FD3 0x3408 ;oled_control_font_5x8+468 +0x1FD4 0x3400 ;oled_control_font_5x8+469 +0x1FD5 0x3408 ;oled_control_font_5x8+470 +0x1FD6 0x3408 ;oled_control_font_5x8+471 +0x1FD7 0x342A ;oled_control_font_5x8+472 +0x1FD8 0x341C ;oled_control_font_5x8+473 +0x1FD9 0x3408 ;oled_control_font_5x8+474 +0x1FDA 0x3408 ;oled_control_font_5x8+475 +0x1FDB 0x341C ;oled_control_font_5x8+476 +0x1FDC 0x342A ;oled_control_font_5x8+477 +0x1FDD 0x3408 ;oled_control_font_5x8+478 +0x1FDE 0x3408 ;oled_control_font_5x8+479 +; end of oled_control_font_5x8 +;main.c,0 :: ?ICS?lstr7_main +0x1FDF 0x344F ;?ICS?lstr7_main+0 +0x1FE0 0x3456 ;?ICS?lstr7_main+1 +0x1FE1 0x3445 ;?ICS?lstr7_main+2 +0x1FE2 0x3452 ;?ICS?lstr7_main+3 +0x1FE3 0x344C ;?ICS?lstr7_main+4 +0x1FE4 0x344F ;?ICS?lstr7_main+5 +0x1FE5 0x3441 ;?ICS?lstr7_main+6 +0x1FE6 0x3444 ;?ICS?lstr7_main+7 +0x1FE7 0x3420 ;?ICS?lstr7_main+8 +0x1FE8 0x3400 ;?ICS?lstr7_main+9 +; end of ?ICS?lstr7_main +;main.c,0 :: ?ICS_btn_cnt +0x1FE9 0x3400 ;?ICS_btn_cnt+0 +0x1FEA 0x3400 ;?ICS_btn_cnt+1 +0x1FEB 0x3400 ;?ICS_btn_cnt+2 +0x1FEC 0x3400 ;?ICS_btn_cnt+3 +; end of ?ICS_btn_cnt +;main.c,0 :: ?ICS_ind +0x2000 0x3400 ;?ICS_ind+0 +; end of ?ICS_ind +;main.c,0 :: ?ICS_SWR_ind +0x2001 0x3400 ;?ICS_SWR_ind+0 +0x2002 0x3400 ;?ICS_SWR_ind+1 +; end of ?ICS_SWR_ind +;main.c,0 :: ?ICS_volt_cnt +0x2003 0x3400 ;?ICS_volt_cnt+0 +0x2004 0x3400 ;?ICS_volt_cnt+1 +0x2005 0x3400 ;?ICS_volt_cnt+2 +0x2006 0x3400 ;?ICS_volt_cnt+3 +; end of ?ICS_volt_cnt +;main.c,0 :: ?ICS_PWR_fixed_old +0x2007 0x340F ;?ICS_PWR_fixed_old+0 +0x2008 0x3427 ;?ICS_PWR_fixed_old+1 +; end of ?ICS_PWR_fixed_old +;main.c,0 :: ?ICS_Voltage_old +0x2009 0x3400 ;?ICS_Voltage_old+0 +0x200A 0x3400 ;?ICS_Voltage_old+1 +; end of ?ICS_Voltage_old +;main.c,0 :: ?ICS_SWR_fixed_old +0x200B 0x3464 ;?ICS_SWR_fixed_old+0 +0x200C 0x3400 ;?ICS_SWR_fixed_old+1 +; end of ?ICS_SWR_fixed_old +;main.c,0 :: ?ICS_Tick +0x200D 0x3400 ;?ICS_Tick+0 +0x200E 0x3400 ;?ICS_Tick+1 +0x200F 0x3400 ;?ICS_Tick+2 +0x2010 0x3400 ;?ICS_Tick+3 +; end of ?ICS_Tick +;main.c,0 :: ?ICS_watch_cnt +0x2011 0x3400 ;?ICS_watch_cnt+0 +0x2012 0x3400 ;?ICS_watch_cnt+1 +0x2013 0x3400 ;?ICS_watch_cnt+2 +0x2014 0x3400 ;?ICS_watch_cnt+3 +; end of ?ICS_watch_cnt +;main.c,0 :: ?ICS?lstr3_main +0x2015 0x343D ;?ICS?lstr3_main+0 +0x2016 0x3400 ;?ICS?lstr3_main+1 +; end of ?ICS?lstr3_main +;main.c,0 :: ?ICS?lstr2_main +0x2017 0x3453 ;?ICS?lstr2_main+0 +0x2018 0x3457 ;?ICS?lstr2_main+1 +0x2019 0x3452 ;?ICS?lstr2_main+2 +0x201A 0x3420 ;?ICS?lstr2_main+3 +0x201B 0x3420 ;?ICS?lstr2_main+4 +0x201C 0x3420 ;?ICS?lstr2_main+5 +0x201D 0x3420 ;?ICS?lstr2_main+6 +0x201E 0x3420 ;?ICS?lstr2_main+7 +0x201F 0x3420 ;?ICS?lstr2_main+8 +0x2020 0x3400 ;?ICS?lstr2_main+9 +; end of ?ICS?lstr2_main +;main.c,0 :: ?ICS?lstr1_main +0x2021 0x3450 ;?ICS?lstr1_main+0 +0x2022 0x3457 ;?ICS?lstr1_main+1 +0x2023 0x3452 ;?ICS?lstr1_main+2 +0x2024 0x3420 ;?ICS?lstr1_main+3 +0x2025 0x3420 ;?ICS?lstr1_main+4 +0x2026 0x3420 ;?ICS?lstr1_main+5 +0x2027 0x3420 ;?ICS?lstr1_main+6 +0x2028 0x3420 ;?ICS?lstr1_main+7 +0x2029 0x3457 ;?ICS?lstr1_main+8 +0x202A 0x3400 ;?ICS?lstr1_main+9 +; end of ?ICS?lstr1_main +;main.c,0 :: ?ICS?lstr4_main +0x202B 0x343D ;?ICS?lstr4_main+0 +0x202C 0x3400 ;?ICS?lstr4_main+1 +; end of ?ICS?lstr4_main +;oled_control.c,19 :: oled_control_batt +0x202D 0x34F8 ;oled_control_batt+0 +0x202E 0x34F8 ;oled_control_batt+1 +0x202F 0x341F ;oled_control_batt+2 +0x2030 0x341F ;oled_control_batt+3 +0x2031 0x3403 ;oled_control_batt+4 +0x2032 0x3403 ;oled_control_batt+5 +0x2033 0x3403 ;oled_control_batt+6 +0x2034 0x341F ;oled_control_batt+7 +0x2035 0x341F ;oled_control_batt+8 +0x2036 0x34F8 ;oled_control_batt+9 +0x2037 0x34F8 ;oled_control_batt+10 +0x2038 0x34FF ;oled_control_batt+11 +0x2039 0x34FF ;oled_control_batt+12 +0x203A 0x3400 ;oled_control_batt+13 +0x203B 0x3400 ;oled_control_batt+14 +0x203C 0x3400 ;oled_control_batt+15 +0x203D 0x3400 ;oled_control_batt+16 +0x203E 0x3400 ;oled_control_batt+17 +0x203F 0x3400 ;oled_control_batt+18 +0x2040 0x3400 ;oled_control_batt+19 +0x2041 0x34FF ;oled_control_batt+20 +0x2042 0x34FF ;oled_control_batt+21 +0x2043 0x34FF ;oled_control_batt+22 +0x2044 0x34FF ;oled_control_batt+23 +0x2045 0x3400 ;oled_control_batt+24 +0x2046 0x3400 ;oled_control_batt+25 +0x2047 0x3400 ;oled_control_batt+26 +0x2048 0x3400 ;oled_control_batt+27 +0x2049 0x3400 ;oled_control_batt+28 +0x204A 0x3400 ;oled_control_batt+29 +0x204B 0x3400 ;oled_control_batt+30 +0x204C 0x34FF ;oled_control_batt+31 +0x204D 0x34FF ;oled_control_batt+32 +0x204E 0x34FF ;oled_control_batt+33 +0x204F 0x34FF ;oled_control_batt+34 +0x2050 0x34C0 ;oled_control_batt+35 +0x2051 0x34C0 ;oled_control_batt+36 +0x2052 0x34C0 ;oled_control_batt+37 +0x2053 0x34C0 ;oled_control_batt+38 +0x2054 0x34C0 ;oled_control_batt+39 +0x2055 0x34C0 ;oled_control_batt+40 +0x2056 0x34C0 ;oled_control_batt+41 +0x2057 0x34FF ;oled_control_batt+42 +0x2058 0x34FF ;oled_control_batt+43 +; end of oled_control_batt +;main.c,0 :: ?ICS?lstr19_main +0x2059 0x3453 ;?ICS?lstr19_main+0 +0x205A 0x3457 ;?ICS?lstr19_main+1 +0x205B 0x3452 ;?ICS?lstr19_main+2 +0x205C 0x3420 ;?ICS?lstr19_main+3 +0x205D 0x3420 ;?ICS?lstr19_main+4 +0x205E 0x3400 ;?ICS?lstr19_main+5 +; end of ?ICS?lstr19_main +;main.c,0 :: ?ICS?lstr20_main +0x205F 0x343D ;?ICS?lstr20_main+0 +0x2060 0x3400 ;?ICS?lstr20_main+1 +; end of ?ICS?lstr20_main +;main.c,0 :: ?ICS_max_for_start +0x2061 0x3496 ;?ICS_max_for_start+0 +0x2062 0x3400 ;?ICS_max_for_start+1 +; end of ?ICS_max_for_start +;main.c,0 :: ?ICS?lstr13_main +0x2063 0x3420 ;?ICS?lstr13_main+0 +0x2064 0x3420 ;?ICS?lstr13_main+1 +0x2065 0x344C ;?ICS?lstr13_main+2 +0x2066 0x344F ;?ICS?lstr13_main+3 +0x2067 0x3457 ;?ICS?lstr13_main+4 +0x2068 0x3420 ;?ICS?lstr13_main+5 +0x2069 0x3442 ;?ICS?lstr13_main+6 +0x206A 0x3441 ;?ICS?lstr13_main+7 +0x206B 0x3454 ;?ICS?lstr13_main+8 +0x206C 0x3454 ;?ICS?lstr13_main+9 +0x206D 0x3420 ;?ICS?lstr13_main+10 +0x206E 0x3400 ;?ICS?lstr13_main+11 +; end of ?ICS?lstr13_main +;main.c,0 :: ?ICS?lstr9_main +0x206F 0x3453 ;?ICS?lstr9_main+0 +0x2070 0x3457 ;?ICS?lstr9_main+1 +0x2071 0x3452 ;?ICS?lstr9_main+2 +0x2072 0x3420 ;?ICS?lstr9_main+3 +0x2073 0x3420 ;?ICS?lstr9_main+4 +0x2074 0x3420 ;?ICS?lstr9_main+5 +0x2075 0x3420 ;?ICS?lstr9_main+6 +0x2076 0x3420 ;?ICS?lstr9_main+7 +0x2077 0x3420 ;?ICS?lstr9_main+8 +0x2078 0x3400 ;?ICS?lstr9_main+9 +; end of ?ICS?lstr9_main +;main.c,0 :: ?ICS?lstr10_main +0x2079 0x343D ;?ICS?lstr10_main+0 +0x207A 0x3400 ;?ICS?lstr10_main+1 +; end of ?ICS?lstr10_main +;main.c,0 :: ?ICS_min_for_start +0x207B 0x340A ;?ICS_min_for_start+0 +0x207C 0x3400 ;?ICS_min_for_start+1 +; end of ?ICS_min_for_start +;main.c,0 :: ?ICS_Rel_Del +0x207D 0x3407 ;?ICS_Rel_Del+0 +0x207E 0x3400 ;?ICS_Rel_Del+1 +; end of ?ICS_Rel_Del +;main.c,0 :: ?ICS_btn_2_cnt +0x207F 0x3400 ;?ICS_btn_2_cnt+0 +; end of ?ICS_btn_2_cnt +;oled_control.c,0 :: ?ICSoled_control_oled_addr +0x2080 0x3478 ;?ICSoled_control_oled_addr+0 +0x2081 0x3400 ;?ICSoled_control_oled_addr+1 +; end of ?ICSoled_control_oled_addr +;oled_control.c,0 :: ?ICSoled_control_shift_line +0x2082 0x3440 ;?ICSoled_control_shift_line+0 +; end of ?ICSoled_control_shift_line +;oled_control.c,0 :: ?ICSoled_control_inversion +0x2083 0x3401 ;?ICSoled_control_inversion+0 +; end of ?ICSoled_control_inversion +;main.c,0 :: ?ICS?lstr8_main +0x2084 0x3420 ;?ICS?lstr8_main+0 +0x2085 0x3420 ;?ICS?lstr8_main+1 +0x2086 0x3420 ;?ICS?lstr8_main+2 +0x2087 0x3420 ;?ICS?lstr8_main+3 +0x2088 0x3420 ;?ICS?lstr8_main+4 +0x2089 0x3420 ;?ICS?lstr8_main+5 +0x208A 0x3420 ;?ICS?lstr8_main+6 +0x208B 0x3420 ;?ICS?lstr8_main+7 +0x208C 0x3420 ;?ICS?lstr8_main+8 +0x208D 0x3400 ;?ICS?lstr8_main+9 +; end of ?ICS?lstr8_main +;main.c,0 :: ?ICS?lstr15_main +0x208E 0x3454 ;?ICS?lstr15_main+0 +0x208F 0x3455 ;?ICS?lstr15_main+1 +0x2090 0x344E ;?ICS?lstr15_main+2 +0x2091 0x3445 ;?ICS?lstr15_main+3 +0x2092 0x3420 ;?ICS?lstr15_main+4 +0x2093 0x3420 ;?ICS?lstr15_main+5 +0x2094 0x3420 ;?ICS?lstr15_main+6 +0x2095 0x3420 ;?ICS?lstr15_main+7 +0x2096 0x3420 ;?ICS?lstr15_main+8 +0x2097 0x3400 ;?ICS?lstr15_main+9 +; end of ?ICS?lstr15_main +;main.c,0 :: ?ICS?lstr16_main +0x2098 0x3453 ;?ICS?lstr16_main+0 +0x2099 0x3457 ;?ICS?lstr16_main+1 +0x209A 0x3452 ;?ICS?lstr16_main+2 +0x209B 0x3420 ;?ICS?lstr16_main+3 +0x209C 0x3400 ;?ICS?lstr16_main+4 +; end of ?ICS?lstr16_main +;main.c,0 :: ?ICS?lstr17_main +0x209D 0x343D ;?ICS?lstr17_main+0 +0x209E 0x3400 ;?ICS?lstr17_main+1 +; end of ?ICS?lstr17_main +;main.c,0 :: ?ICS?lstr5_main +0x209F 0x343E ;?ICS?lstr5_main+0 +0x20A0 0x3400 ;?ICS?lstr5_main+1 +; end of ?ICS?lstr5_main +;main.c,0 :: ?ICS?lstr6_main +0x20A1 0x343D ;?ICS?lstr6_main+0 +0x20A2 0x3400 ;?ICS?lstr6_main+1 +; end of ?ICS?lstr6_main +Symbol List: +//** Routines locations ** +//ADDRESS SIZE PROCEDURE +//---------------------------------------------- +0x0004 [294] _interupt +0x012A [60] _Soft_I2C_Write +0x0166 [28] _Div_16X16_U +0x0182 [30] _Soft_I2C_Start +0x01A0 [6] _Delay_22us +0x01A6 [24] _Mul_8X8_U +0x01BE [54] _Mul_32x32_U +0x01F4 [23] _Soft_I2C_Stop +0x020B [64] _set_addressing +0x024B [76] _WordToStr +0x0297 [59] _ADC_Init_Advanced +0x02D2 [42] _Mul_16X16_U +0x02FC [4] _FIXSIGN32 +0x0300 [96] _VDelay_ms +0x0360 [12] _SETFUN32 +0x036C [16] _ADC_Get_Sample +0x037C [55] _oled_wr_str_s +0x03B3 [115] _IntToStr +0x0426 [7] _RES032 +0x042D [16] _send_command +0x043D [12] _SETFOV32 +0x0449 [36] _oled_clear +0x046D [321] _oled_wr_str +0x05AE [62] _Greating +0x05EC [53] _oled_bat +0x0621 [175] _Relay_set +0x06D0 [2] _Soft_I2C_Init +0x06D2 [53] _draw_swr +0x0707 [28] _get_batt +0x0723 [3] _SETFDZ32 +0x0726 [90] _NRM4032 +0x0780 [13] _SETIOV3224 +0x078D [12] _COMFREM +0x0799 [47] _NRM3232 +0x07C8 [11] _atu_reset +0x07D3 [29] _int2double +0x07F0 [9] ___CC2DW +0x0800 [300] _SDIV3232L +0x092C [244] _oled_init +0x0A20 [180] _Div_32x32_S +0x0AD4 [210] _oled_start +0x0BA6 [94] _double2int +0x0C04 [167] _Add_32x32_FP +0x0CAB [154] _get_forward +0x0D45 [102] _Mul_32x32_FP +0x0DAB [188] _Div_32x32_FP +0x0E67 [154] _get_reverse +0x0F01 [139] _correction +0x0F8C [44] _Div_16x16_S_L +0x0FB8 [40] _Btn_xlong +0x0FE0 [19] _Ext_long +0x1000 [117] _Btn_short +0x1075 [127] _draw_power +0x10F4 [301] _get_pwr +0x1221 [100] _get_swr +0x1285 [104] _Div_16x16_S +0x12ED [145] _coarse_cap +0x137E [193] _sharp_cap +0x143F [157] _coarse_tune +0x14DC [193] _sharp_ind +0x159D [430] _tune +0x174B [94] _Btn_long +0x17A9 [20] _ADC_Init +0x1800 [386] _oled_voltage +0x1982 [106] _power_off +0x19EC [551] _watch_swr +0x1C13 [151] _Voltage_show +0x1CAA [78] _pic_init +0x1CF8 [259] _main +//** Variables locations ** +//ADDRESS SIZE VARIABLE +//---------------------------------------------- +0x0000 [1] INDF0 +0x0001 [1] INDF1 +0x0003 [1] STATUS +0x0004 [1] FSR0L +0x0005 [1] FSR0H +0x0006 [1] FSR1L +0x0007 [1] FSR1H +0x000A [1] PCLATH +0x000B [0] GIE_bit +0x000C [1] PORTA +0x000D [1] PORTB +0x000E [1] PORTC +0x000F [1] PORTD +0x0010 [1] PORTE +0x0011 [1] TRISA +0x0012 [1] TRISB +0x0013 [1] TRISC +0x0014 [1] TRISD +0x0015 [1] TRISE +0x0016 [0] LATA3_bit +0x0016 [0] LATA2_bit +0x0016 [0] C_22 +0x0016 [0] OLED_PWD +0x0016 [1] LATA +0x0016 [0] C_220 +0x0016 [0] C_100 +0x0016 [0] LATA7_bit +0x0016 [0] LATA4_bit +0x0016 [0] LATA5_bit +0x0016 [0] LATA6_bit +0x0017 [1] LATB +0x0017 [0] Green +0x0017 [0] Red +0x0017 [0] LATB4_bit +0x0017 [0] LATB3_bit +0x0018 [0] L_1000 +0x0018 [0] LATC5_bit +0x0018 [0] L_220 +0x0018 [0] LATC4_bit +0x0018 [0] L_450 +0x0018 [0] LATC2_bit +0x0018 [0] LATC6_bit +0x0018 [0] Rel_to_plus_N +0x0018 [1] LATC +0x0018 [0] LATC7_bit +0x0018 [0] C_2200 +0x0018 [0] C_470 +0x0018 [0] LATC1_bit +0x0018 [0] C_1000 +0x0018 [0] LATC0_bit +0x0019 [0] Rel_to_gnd +0x0019 [1] LATD +0x0019 [0] L_100 +0x0019 [0] L_010 +0x0019 [0] L_022 +0x0019 [0] L_045 +0x0019 [0] LATD5_bit +0x0019 [0] LATD6_bit +0x0019 [0] LATD7_bit +0x0019 [0] LATD4_bit +0x0019 [0] LATD2_bit +0x0019 [0] LATD3_bit +0x001A [0] C_sw +0x001A [0] C_47 +0x001A [1] LATE +0x001A [0] LATE0_bit +0x001A [0] LATE1_bit +0x001C [1] TMR0L +0x001D [1] TMR0H +0x001E [0] T016BIT_bit +0x001E [0] T0EN_bit +0x001F [0] T0CS1_bit +0x001F [0] T0CS2_bit +0x001F [0] T0CS0_bit +0x0020 [1] ___math_tempb +0x0021 [1] __math_tempbD +0x002F [4] ?lstr12_main +0x0033 [19] ?lstr22_main +0x0046 [13] ?lstr23_main +0x0053 [4] _Disp_time +0x0057 [4] _Off_time +0x005B [4] ?lstr24_main +0x005F [5] ?lstr21_main +0x0064 [1] _btn_1_cnt +0x0065 [10] ?lstr18_main +0x006F [1] oled_control_oled_shift +0x0070 [1] R0 +0x0071 [1] R1 +0x0072 [1] R2 +0x0073 [1] R3 +0x0074 [1] R4 +0x0075 [1] R5 +0x0076 [1] R6 +0x0077 [1] R7 +0x0078 [1] R8 +0x0079 [1] R9 +0x007A [1] R10 +0x007B [1] R11 +0x007C [1] R12 +0x007D [1] R13 +0x007E [1] R14 +0x007F [1] R15 +0x008C [2] ADRES +0x0093 [1] ADCON0 +0x0094 [1] ADCON1 +0x0095 [1] ADCON2 +0x0096 [1] ADCON3 +0x009A [1] ADREF +0x009E [1] ADPCH +0x00A0 [6] ?lstr19_main +0x00A6 [2] ?lstr20_main +0x00A8 [2] _max_for_start +0x00AA [12] ?lstr13_main +0x00B6 [10] ?lstr9_main +0x00C0 [2] ?lstr10_main +0x00C2 [2] _min_for_start +0x00C4 [2] _Rel_Del +0x00C6 [1] _btn_2_cnt +0x00C7 [2] oled_control_oled_addr +0x00C9 [1] oled_control_shift_line +0x00CA [1] oled_control_inversion +0x00CB [10] ?lstr8_main +0x00D5 [10] ?lstr15_main +0x00DF [5] ?lstr16_main +0x00E4 [2] ?lstr17_main +0x00E6 [2] ?lstr5_main +0x00E8 [2] ?lstr6_main +0x00EA [2] _Auto_delta +0x00EC [1] _step_ind +0x00ED [1] _step_cap +0x00EE [1] _SW +0x00EF [1] _cap +0x0120 [10] ?lstr7_main +0x012A [5] ?lstr11_main +0x012F [12] ?lstr14_main +0x013B [4] _btn_cnt +0x013F [1] _ind +0x0140 [2] _SWR_ind +0x0142 [4] _volt_cnt +0x0146 [2] _PWR_fixed_old +0x0148 [2] _Voltage_old +0x014A [2] _SWR_fixed_old +0x014C [4] _Tick +0x0150 [4] _watch_cnt +0x0154 [2] ?lstr3_main +0x0156 [10] ?lstr2_main +0x0160 [10] ?lstr1_main +0x016A [2] ?lstr4_main +0x016C [4] _off_cnt +0x01A0 [0] _gre +0x01A0 [0] _B_xlong +0x01A0 [0] _E_long +0x01A0 [0] _E_short +0x01A0 [0] _B_long +0x01A0 [0] _Overflow +0x01A0 [0] _B_short +0x01A1 [4] _ADC_Get_Sample_Ptr +0x01A5 [2] _rldl +0x01A7 [2] _PWR +0x01A9 [2] _Voltage +0x01AB [8] _txt_2 +0x01B3 [8] _txt +0x01BB [2] _SWR +0x01BD [4] _disp_cnt +0x01C1 [1] watch_swr_peak_cnt_L0 +0x01C2 [1] watch_swr_cnt_L0 +0x01C3 [2] watch_swr_delta_L0 +0x01C5 [2] watch_swr_PWR_fixed_L0 +0x01C7 [2] watch_swr_SWR_fixed_L0 +0x01C9 [2] FARG_oled_voltage_Voltage +0x01C9 [1] power_off_btn_cnt_L0 +0x01CB [1] oled_voltage_i_L0 +0x01CC [1] oled_voltage_v_L0 +0x01CD [1] oled_voltage_u0_L0 +0x01CE [1] oled_voltage_u1_L0 +0x01CF [1] oled_voltage_u2_L0 +0x01D0 [1] oled_voltage_u3_L0 +0x01D1 [1] oled_voltage_m_L0 +0x01D2 [2] tune_swr_mem_L0 +0x01D4 [2] tune_ind_mem_L0 +0x01D6 [2] tune_cap_mem_L0 +0x01D8 [1] sharp_ind_range_L0 +0x01D8 [1] sharp_cap_range_L0 +0x01D8 [1] coarse_tune_count_L0 +0x01D9 [1] coarse_tune_mem_cap_L0 +0x01D9 [1] sharp_ind_count_L0 +0x01D9 [1] sharp_cap_count_L0 +0x01DA [1] sharp_ind_max_range_L0 +0x01DA [1] sharp_cap_max_range_L0 +0x01DA [1] coarse_tune_mem_step_cap_L0 +0x01DB [2] coarse_tune_min_swr_L0 +0x01DB [1] sharp_ind_min_range_L0 +0x01DB [1] sharp_cap_min_range_L0 +0x01DC [2] sharp_ind_min_SWR_L0 +0x01DC [2] sharp_cap_min_swr_L0 +0x01DD [1] coarse_tune_step_L0 +0x01DE [1] coarse_cap_count_L0 +0x01DF [2] coarse_cap_min_swr_L0 +0x01E1 [1] coarse_cap_step_L0 +0x01E2 [2] get_swr_tune_cnt_L0 +0x01E4 [2] get_swr_PWR_max_L0 +0x01E6 [4] get_pwr_Forward_L0 +0x01E6 [2] FARG_draw_power_p +0x01EA [4] get_pwr_Reverse_L0 +0x01EE [2] get_reverse_v_L0 +0x01EE [2] get_forward_v_L0 +0x01EE [2] FARG_correction_input +0x0220 [1] oled_init_cnt_L0 +0x0220 [2] FARG_draw_swr_s +0x0220 [1] oled_bat_i_L0 +0x0220 [1] FARG_Relay_set_L +0x0221 [1] FARG_Relay_set_C +0x0221 [1] oled_bat_g_L0 +0x0222 [1] FARG_Relay_set_I +0x0223 [1] FARG_ADC_Get_Sample_channel +0x0223 [2] FARG_IntToStr_input +0x0223 [1] FARG_ADC_Init_Advanced_reference +0x0223 [1] FARG_oled_wr_str_s_page +0x0223 [1] FARG_oled_wr_str_page +0x0223 [2] FARG_VDelay_ms_Time_ms +0x0223 [1] oled_clear_i_L0 +0x0223 [1] FARG_send_command_oled_command +0x0224 [1] FARG_oled_wr_str_col +0x0224 [1] oled_clear_r_L0 +0x0224 [1] FARG_oled_wr_str_s_col +0x0225 [2] FARG_oled_wr_str_s_str +0x0225 [2] FARG_IntToStr_output +0x0225 [4] VDelay_ms_NumberOfCyc_L0 +0x0225 [2] FARG_oled_wr_str_str +0x0227 [2] IntToStr_i_L0 +0x0227 [1] FARG_oled_wr_str_leng +0x0227 [1] FARG_oled_wr_str_s_len +0x0228 [1] oled_wr_str_i_L0 +0x0228 [1] oled_wr_str_s_i_L0 +0x0229 [1] oled_wr_str_h_L0 +0x0229 [1] oled_wr_str_s_h_L0 +0x0229 [2] IntToStr_negative_L0 +0x022A [1] oled_wr_str_g_L0 +0x022A [1] oled_wr_str_s_g_L0 +0x022B [2] IntToStr_inword_L0 +0x022B [1] oled_wr_str_w1_L0 +0x022C [1] oled_wr_str_w2_L0 +0x022D [2] FARG_WordToStr_input +0x022D [1] FARG_set_addressing_pagenum +0x022E [1] FARG_set_addressing_c_start +0x022F [2] FARG_WordToStr_output +0x022F [1] set_addressing_a_L0 +0x0230 [1] set_addressing_b_L0 +0x0231 [1] WordToStr_len_L0 +0x0231 [1] set_addressing_c_L0 +0x0232 [2] FLOC__WordToStr +0x0234 [1] FARG_Soft_I2C_Write_d +0x070C [0] TMR0IF_bit +0x0716 [0] IOCIE_bit +0x0716 [0] TMR0IE_bit +0x0796 [0] SYSCMD_bit +0x0796 [1] PMD0 +0x0797 [1] PMD1 +0x0798 [1] PMD2 +0x0799 [1] PMD3 +0x079A [1] PMD4 +0x079B [1] PMD5 +0x090C [1] FVRCON +0x0990 [0] C1ON_bit +0x0994 [0] C2ON_bit +0x1F38 [1] ANSELA +0x1F3A [0] ODCA2_bit +0x1F3A [0] ODCA3_bit +0x1F43 [0] ANSB2_bit +0x1F43 [0] ANSB1_bit +0x1F43 [0] ANSB0_bit +0x1F43 [1] ANSELB +0x1F49 [0] IOCBN5_bit +0x1F4A [0] IOCBF5_bit +0x1F4E [1] ANSELC +0x1F59 [1] ANSELD +0x1F5B [0] ODCD1_bit +0x1F5B [0] ODCD2_bit +0x1F64 [1] ANSELE +//** Constants locations ** +//ADDRESS SIZE CONSTANT +//---------------------------------------------- +0x0003 [1] ?ICSoled_control_oled_shift +0x07F9 [5] ?ICS?lstr11_main +0x07FE [1] ?ICS_SW +0x07FF [1] ?ICS_cap +0x0FF3 [12] ?ICS?lstr14_main +0x0FFF [1] ?ICS_step_cap +0x17BD [4] ?ICS?lstr12_main +0x17C1 [19] ?ICS?lstr22_main +0x17D4 [13] ?ICS?lstr23_main +0x17E1 [4] ?ICS_Disp_time +0x17E5 [4] ?ICS_Off_time +0x17E9 [4] ?ICS?lstr24_main +0x17ED [5] ?ICS?lstr21_main +0x17F2 [1] ?ICS_btn_1_cnt +0x17F3 [10] ?ICS?lstr18_main +0x17FD [2] ?ICS_Auto_delta +0x17FF [1] ?ICS_step_ind +0x1DFF [480] oled_control_font_5x8 +0x1FDF [10] ?ICS?lstr7_main +0x1FE9 [4] ?ICS_btn_cnt +0x2000 [1] ?ICS_ind +0x2001 [2] ?ICS_SWR_ind +0x2003 [4] ?ICS_volt_cnt +0x2007 [2] ?ICS_PWR_fixed_old +0x2009 [2] ?ICS_Voltage_old +0x200B [2] ?ICS_SWR_fixed_old +0x200D [4] ?ICS_Tick +0x2011 [4] ?ICS_watch_cnt +0x2015 [2] ?ICS?lstr3_main +0x2017 [10] ?ICS?lstr2_main +0x2021 [10] ?ICS?lstr1_main +0x202B [2] ?ICS?lstr4_main +0x202D [44] oled_control_batt +0x2059 [6] ?ICS?lstr19_main +0x205F [2] ?ICS?lstr20_main +0x2061 [2] ?ICS_max_for_start +0x2063 [12] ?ICS?lstr13_main +0x206F [10] ?ICS?lstr9_main +0x2079 [2] ?ICS?lstr10_main +0x207B [2] ?ICS_min_for_start +0x207D [2] ?ICS_Rel_Del +0x207F [1] ?ICS_btn_2_cnt +0x2080 [2] ?ICSoled_control_oled_addr +0x2082 [1] ?ICSoled_control_shift_line +0x2083 [1] ?ICSoled_control_inversion +0x2084 [10] ?ICS?lstr8_main +0x208E [10] ?ICS?lstr15_main +0x2098 [5] ?ICS?lstr16_main +0x209D [2] ?ICS?lstr17_main +0x209F [2] ?ICS?lstr5_main +0x20A1 [2] ?ICS?lstr6_main diff --git a/Firmware/ATU-10_FW_13/ATU-10.mcppi b/Firmware/ATU-10_FW_13/ATU-10.mcppi new file mode 100644 index 0000000..e543ce2 --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10.mcppi @@ -0,0 +1,77 @@ +[DEVICE] +Name=P16LF18877 +Clock=32000000 +[MEMORY_MODEL] +Value=0 +[BUILD_TYPE] +Value=0 +[ACTIVE_TAB] +Value=main.c +[USE_EEPROM] +Value=0 +[USE_HEAP] +Value=0 +[HEAP_SIZE] +Value=0 +[EEPROM_DEFINITION] +Value= +[FILES] +File0=pic_init.c +File1=oled_control.c +File2=Soft_I2C.c +File3=main.c +Count=4 +[BINARIES] +Count=0 +[IMAGES] +Count=0 +ActiveImageIndex=-1 +[OPENED_FILES] +File0=pic_init.c +File1=main.c +File2=main.h +File3=pic_init.h +File4=oled_control.c +File5=oled_control.h +File6=Soft_I2C.c +Count=7 +[EEPROM] +Count=0 +[ACTIVE_COMMENTS_FILES] +Count=0 +[OTHER_FILES] +Count=0 +[SEARCH_PATH] +Count=0 +[HEADER_PATH] +Count=0 +[HEADERS] +File0=pic_init.h +File1=oled_control.h +File2=Soft_I2C.h +File3=font_5x8.h +File4=main.h +Count=5 +[PLDS] +Count=0 +[Useses] +File0=Button +File1=Conversions +File2=ADC +Count=3 +[EXPANDED_NODES] +0=ATU-10.mcppi +1=Sources +Count=2 +[LIB_EXPANDED_NODES] +0=mikroE Libraries +1=System Libraries +2=ADC +Count=3 +[PROGRAMMER_TYPE] +Value=mikroE mikroProg +[CODEGRIP_OPTIONS] +CODEGRIP_SPEED=0 +CODEGRIP_VERIFY_AFTER=0 +CODEGRIP_SWBP_ENABLED=0 +CODEGRIP_PROGRAMMING_TYPE= diff --git a/Firmware/ATU-10_FW_13/ATU-10_FW_12.hex b/Firmware/ATU-10_FW_13/ATU-10_FW_12.hex new file mode 100644 index 0000000..d839cde --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10_FW_12.hex @@ -0,0 +1,1143 @@ +:0400000098312F2DD7 +:1000080070084001AE007108AD007208AC007308BA +:10001800AB007408AA007508A9007608A80077083C +:10002800A7007808A6007908A5007A08A4007B082C +:10003800A3007C08A20080314E018C1E30288C124F +:1000480001304201BB070030BC3DBD3DBE3DC03064 +:1000580040019C00E0309D00420139083E02031D2A +:100068003F2838083D02031D3F2837083C02031D7E +:100078003F2836083B02031C13290A30B607003014 +:10008800B73DB83DB93D40018D1A4C2874144D2830 +:1000980074108F1851280314522803107418582804 +:1000A80003185828741059287414741CA328400184 +:1000B8006308F0006408F1006508F2006608F300C0 +:1000C800E830F4000330F500F601F70199217008D3 +:1000D80042013B074301A000710842013C3D430136 +:1000E800A100720842013D3D4301A200730842018C +:1000F8003E3D4301A30040015F08F0006008F100A5 +:100108006108F2006208F300E830F4000330F500FB +:10011800F601F7019921700842013B074301A40049 +:10012800710842013C3D4301A500720842013D3D72 +:100138004301A600730842013E3D4301A700400168 +:100148008D1AA8280314A9280310031CC8284001E5 +:10015800FA306D020318B128ED0A6D08193A031D2B +:10016800B72842016E1440016D08FA3A0130031DA8 +:100178000030F100F001161AF00A7108F0050319B1 +:10018800C7284201EE15DF2840016D08023C013006 +:1001980003180030F10019306D02013003180030E7 +:1001A800F0007108F0050319DE2842016E174001BE +:1001B800ED01DF28ED0140018F18E4280314E5283C +:1001C8000310031CFC2819306E020318EC28EE0AF1 +:1001D8006E08143A0130031D0030F100F0010F19C8 +:1001E800F00A7108F0050319FB284201EE141329DF +:1001F80040016E08013C013003180030F1000A305C +:100208006E02013003180030F0007108F005031980 +:1002180012294201EE164001EE011329EE014001B8 +:100228002E08F0002D08F1002C08F2002B08F3002E +:100238002A08F4002908F5002808F6002708F7001E +:100248002608F8002508F9002408FA002308FB000E +:060258002208FC00090071 +:10025E00F1010830710203184E294401BF1B3A29DF +:10026E00400116113C29400116152730FD00FD0BEB +:10027E003E290000000096152730FD00FD0B452994 +:10028E000000000096114401BF35F10A30294001EB +:10029E0016152730FD00FD0B5229000000009615A3 +:1002AE0000300C190130F2002730FD00FD0B5D29E6 +:1002BE000000000096112730FD00FD0B64290000A0 +:0802CE0000007208F0000800B6 +:1002D600400196152730FD00FD0B6F290000000038 +:1002E60016152730FD00FD0B7629000000001611BB +:1002F6002730FD00FD0B7D290000000096112730F8 +:0C030600FD00FD0B842900000000080031 +:08031200FA1FF213003008008D +:10031A007B15FB1F97290130F300F201F101F0016F +:08032A00FA0DF20CFF3008008F +:1003320040012230FC00F801F901FA01FB01FC0343 +:100342000319CE290310FB0CFA0CF90CF80CF30C70 +:10035200F20CF10CF00C031CA029FC030319C029B8 +:100362007408F80775080318750FF907760803185B +:10037200760FFA0777080318770FFB07A42974088A +:10038200F80775080318750FF90776080318760F32 +:0C039200FA0777080318770FFB07080034 +:0C039E003A30FD00FD0BD12900000800E2 +:1003AA0040017008F100F0010830FC007108F40CFB +:1003BA000318E329FC0BDC29F10100340310E829B6 +:1003CA00F40C0318F107F10CF00CFC0BE5290800FA +:1003DA00400116112730FD00FD0BF1290000000035 +:1003EA0096152730FD00FD0BF829000000001615B0 +:0E03FA002730FD00FD0BFF2900000000080069 +:1004080040016F0844013B07BE006B2141013608DB +:100418004401BF002F214401BF012F2144013A08A4 +:10042800B03EBF002F2144013E080F3C031C202A88 +:100438003E08BC00BD01312A3E08F200F236F23611 +:10044800F236F2367208BD007208F000F035F03569 +:10045800F035F03570083E02BC003C08BF002F2183 +:1004680044013D08103EBF002F216B214101360891 +:100478004401BF002F2140304401BF002F21080054 +:0E048800F201F101F001F801F301003008006B +:10049600A1017208031D602A7108F2007008F100BC +:1004A600F001A1157208031D602A7108F200F1011E +:1004B600A1112116720803196E2A2108F302031DE1 +:1004C600031C722A0310F21B762AF00DF10DF20DB1 +:1004D600F30B662A722A0130FC004422792A023084 +:0E04E600FC008D21792A0430FC0089210800D9 +:1004F4006B21410136084401BF002F2140304401E3 +:10050400BF002F214401B3013308073C031C9C2A7C +:100514003308BA00BB0104224401B2014401803013 +:1005240032020318992AB20ABF012F21902A4401EA +:08053400B30A862AED2108003C +:10053C0040304401B4001F30B500B601B701403063 +:10054C00F0001F30F1000030F2000030F3003208F0 +:10055C00F4003308F500F601F70199217008440105 +:10056C00B4007108B5007208B6007308B70000300B +:10057C007302031DCB2A00307202031DCB2A0230FA +:10058C007102031DCB2AB23070020318CE2AFD2A49 +:10059C00B230B4020230B53B0030B63BB73B05304D +:1005AC00F00070080319E02AB736B60CB50CB40C81 +:1005BC00FF3ED82A3408F0003508F1003608F20066 +:1005CC003708F3000130B4020030B53BB63BB73B03 +:1005DC0070087104720473040319FD2A00000000F2 +:1005EC00000000000000000000000000E02A0800ED +:1005FC004001FB01FA01F9018030F800F10CF00C1C +:10060C00031C112B7408F90775080318750FFA07EA +:10061C000318FB0A0310F01F192B7408FA0775084E +:10062C000318750FFB07FB0CFA0CF90CF80C031CE8 +:10063C00042B7B08F3007A08F2007908F1007808A3 +:04064C00F0000800B2 +:10065000710DF80DF90D7408F8027508031C750F7B +:10066000F902F00DF10D0F30FC00710DF80DF90DD0 +:100670007408701C412BF8027508031C750FF902F1 +:10068000462BF80775080318750FF907F00DF10DE3 +:10069000FC0B352B7018522B7408F80775080318DB +:0806A000750FF90700000800C6 +:1006A8000B304301AC000430AD003230AE000230F4 +:1006B800AF0041019301940195019601EC309A0530 +:1006C800133044013205F000700841019A04C0302B +:1006D80044013205F0000319872BC0303205F200BF +:1006E8000630F1007208F000710803197E2BF0360D +:1006F800FF3E792B700852018C008C170C1B862B3F +:100708000000822B8A2B5201FC308C054101131604 +:0607180013159317080001 +:10071E006B21410136084401BF002F218030440176 +:10072E00BF002F2144013208BF002F21ED21080008 +:10073E0044013208BA003308BB0004224401B70159 +:10074E00360837020318D42B3708340784000030DC +:10075E00353D850020300002B900B8010530380261 +:10076E000318CF2B3908F0000530F400D5214401D1 +:10077E003808F0070030F13D003070078400A030DB +:10078E00713D85000008BF002F214401B80AB52B2A +:0E079E00BF012F214401B70AA72BED2108004F +:1007AC004001F801F9011030FC00710DF80DF90D44 +:1007BC007408F8027508031C750FF9020318ED2B69 +:1007CC007408F80775080318750FF9070310F00D76 +:0807DC00F10DFC0BDB2B080002 +:1007E4007B14FB1FFD2BF201FA1FFF30F200F10016 +:0A07F400F000FA0DF20CFF300800CF +:1007FE00FB14FB1F092CFF30F300F200F100F00098 +:08080E00FA0DF20CFF300800A6 +:100816003F304401320541019E00CF2113140000F0 +:10082600131C162C132C0C08F0000D08F100080000 +:1008360044012818212C40019917232C40019913B3 +:100846004401A818292C400119172B2C4001191313 +:1008560044012819312C40019916332C4001991274 +:100866004401A819392C400119163B2C40011912D4 +:100876004401281A412C40019817432C4001981333 +:100886004401A81A492C400118174B2C4001181393 +:100896004401281B512C40019816532C40019812F4 +:1008A60044012918592C400196165B2C40019612DA +:1008B6004401A918612C40019A14632C40019A1036 +:1008C60044012919692C400196176B2C4001961397 +:1008D6004401A919712C40011617732C40011613F7 +:1008E6004401291A792C400118147B2C4001181058 +:1008F6004401A91A812C40019814832C40019810B8 +:100906004401291B892C400118158B2C4001181114 +:1009160044012A18912C40011A10932C40011A14F4 +:10092600991541014B084401B20041014C084401AC +:10093600B3009E22400199111A30FD00FD0BA12C37 +:100946000000181241014B084401B20041014C0855 +:100956004401B3009E224001181641014B08440190 +:10096600B20041014C084401B3009E224001991394 +:1009760019139912191298131813981296129A109D +:0C09860096131613181098101811080092 +:1009920040017008F8007108F000F101F201F30162 +:1009A200FB01FC019630F300FA01F01FDE2CF8097E +:1009B200F009F80A0319F00AFA177008F10078082A +:0A09C200F000F801F2014B220800DA +:1009CC007408F8027508031C750FF9027608031CED +:1009DC00760FFA027708031C770FFB02F30D073032 +:1009EC00FC00730DF80DF90DFA0DFB0D7408731C5A +:1009FC000D2DF8027508031C750FF9027608031CFF +:100A0C00760FFA027708031C770FFB021A2DF807F2 +:100A1C0075080318750FF90776080318760FFA078F +:100A2C0077080318770FFB07F30DFC0BF72C720DEF +:100A3C00F80DF90DFA0DFB0D7408731C332DF8022B +:100A4C007508031C750FF9027608031C760FFA0261 +:100A5C007708031C770FFB02402DF8077508031865 +:100A6C00750FF90776080318760FFA07770803183D +:100A7C00770FFB07F20D0730FC00720DF80DF90D26 +:100A8C00FA0DFB0D7408721C592DF8027508031C25 +:100A9C00750FF9027608031C760FFA027708031C0F +:100AAC00770FFB02662DF80775080318750FF90709 +:100ABC0076080318760FFA0777080318770FFB07E9 +:100ACC00F20DFC0B432D710DF80DF90DFA0DFB0D0C +:100ADC007408721C7F2DF8027508031C750FF9023F +:100AEC007608031C760FFA027708031C770FFB02BB +:100AFC008C2DF80775080318750FF907760803187D +:100B0C00760FFA0777080318770FFB07F10D0730FC +:100B1C00FC00710DF80DF90DFA0DFB0D7408711C2C +:100B2C00A52DF8027508031C750FF9027608031C35 +:100B3C00760FFA027708031C770FFB02B22DF80729 +:100B4C0075080318750FF90776080318760FFA075E +:100B5C0077080318770FFB07F10DFC0B8F2D700D29 +:100B6C00F80DF90DFA0DFB0D7408711CCB2DF80264 +:100B7C007508031C750FF9027608031C760FFA0230 +:100B8C007708031C770FFB02D82DF807750803189C +:100B9C00750FF90776080318760FFA07770803180C +:100BAC00770FFB07F00D0730FC00700DF80DF90DF9 +:100BBC00FA0DFB0D7408701CF12DF8027508031C5E +:100BCC00750FF9027608031C760FFA027708031CDE +:100BDC00770FFB02FE2DF80775080318750FF90740 +:100BEC0076080318760FFA0777080318770FFB07B8 +:100BFC00F00DFC0BDB2D7018112E7408F80775081E +:100C0C000318750FF90776080318760FFA0777089B +:080C1C000318770FFB07080025 +:100C24006B21410136084401BF002F214401BF015B +:100C34002F21AE304401BF002F21D5304401BF0025 +:100C44002F2180304401BF002F21A8304401BF0070 +:100C54002F213F304401BF002F21D3304401BF0076 +:100C64002F21410138084401BF002F2140304401A5 +:100C7400BF002F218D304401BF002F2114304401C7 +:100C8400BF002F2181304401BF002F21FF304401D8 +:100C9400BF002F21D9304401BF002F21F13044017E +:100CA400BF002F2120304401BF002F210230440116 +:100CB400BF002F2121304401BF002F214401BF0177 +:100CC4002F217F304401BF002F212E304401BF006B +:100CD4002F21410139080319782EA0304401BF00A7 +:100CE4002F21C0304401BF002F21802EA1304401A8 +:100CF400BF002F21C8304401BF002F21DA30440146 +:100D0400BF002F2102304401BF002F21DB304401FA +:100D1400BF002F2140304401BF002F21A4304401E3 +:100D2400BF002F21A6304401BF002F21ED217A22DC +:0A0D3400AF304401B2008F23080025 +:100D3E004001FB017308031D77080319F52E720895 +:100D4E007606FA007708F3077E30031CB22EF30204 +:100D5E000318F82EB52EF302031CFB2E7208F800B2 +:100D6E007108FC007008FD00F817F6170310F20169 +:100D7E00F101F0011830A1007D1CCF2E7408F00790 +:100D8E0075080318750FF10776080318760FF2072A +:100D9E00F20CF10CF00CF80CFC0CFD0C0310A10B7A +:100DAE00C32EF21BDF2EF80DF00DF10DF20DF30335 +:100DBE007B1B701CF12EF81FF12EF00A0319F10A9D +:100DCE000319F20A031DF12EF20CF10CF00CF30ACA +:100DDE000319F82EFA1FF2130030FD2E01304422B3 +:100DEE00FD2E0230FF23FD2E04308D210000080061 +:100DFE006B21410136084401BF002F2140304401D0 +:100E0E00BF002F214401A9012908033C031C322FE6 +:100E1E002908BA007330BB0004224401A801280837 +:100E2E000A3C031C302F2908F0000B30F400D521AA +:100E3E0044012808F0070030F13DDE3070078400D1 +:100E4E009E30713D85000008BF002F214401A80A85 +:0A0E5E00162FA90A0B2FED21080042 +:100E68004001FB0173080319702F7208FA00F2178A +:100E78008E30F302F31F732FF309F30A083073025D +:100E8800031C562FF300F10D7208F100F20108302F +:100E98007302031C562FF300F10DF1017308031DB3 +:100EA80003105E2F730803195E2F0310F20CF10C68 +:100EB800F30B592F7B1B711C682F031C682FF10A39 +:100EC8000319F20AF21B7F2FFA1F822FF209F10988 +:100ED800F10A0319F20A822FF201F101822F7B1421 +:100EE800FB1F852FF201FA1F852FFF30F200F1005A +:100EF800FA0DF20C852F0130FC00872F0030FC0022 +:100F0800872FFF30FC00FC0803198B2FF223710890 +:080F1800F0007208F10008006E +:100F20007408003A031D9D2F7508003A031D9D2F7C +:100F3000FF30F0007F30F100F52F4001FD01F90195 +:100F4000F801710870040319003471087506FA007D +:100F5000FA1BFD09FB01F51FB22FF409F509F40A8C +:100F60000319F50AF11FB92FF009F109F00A031965 +:100F7000F10A71087504FA00FA1BCE2F28237B189A +:100F8000E12FFD1F0034F009F109F00A0319F10AFD +:100F9000F809F909F80A0319F90A0034F51FDD2FD9 +:100FA000F11BD92F7108F9007008F800F101F00168 +:100FB000C12FF101F001F00A0034F109F009FB0A38 +:100FC000BE2FF80A0319F90A74087802031DC12F0D +:100FD00075087902031DC12FF901F801F00A031900 +:0C0FE000F10AF11FC12F0000FF340800CF +:060FEC00FB15FF300800B8 +:1010000080316B218831410136084401BF008031B5 +:101010002F21883140304401BF0080312F21883199 +:1010200044012808BA002908BB0080310422883115 +:101030004401AD012C082D020318B3282D082A07FE +:10104000840000302B3D85000008003A031D2A284B +:10105000AF0133282D082A07840000302B3D85007E +:1010600020300002AF00AE012E08043C031CA7286C +:101070002F08F0000530F4008031D521883144017B +:101080002E08F0070030F13D003070078400A030DA +:10109000713D85000008B0002808023A031979283C +:1010A000B0195428B1135528B117B0195928311364 +:1010B0005A28311730195E28B1125F28B11630193D +:1010C0006328311264283116B0186828B1116928D4 +:1010D000B115B0186D2831116E28311530187228ED +:1010E000B1107328B11430187728311078283114D2 +:1010F000992830197D28B1137E28B117301982281C +:10110000311383283117B0188728B1128828B116F7 +:10111000B0188C2831128D28311630189128B11151 +:101120009228B11530189628311197283115B11031 +:1011300031103108BF0080312F218831440131083E +:10114000BF0080312F2188314401AE0A3428BF010D +:1011500080312F2188314401BF0180312F21883116 +:101160004401AD0A1A28280ABA002908BB008031B8 +:10117000042288314401AD012C082D0203185D2999 +:101180002D082A07840000302B3D85000008003A16 +:10119000031DCC28AF01D5282D082A078400003074 +:1011A0002B3D850020300002AF00AE012E08043C2C +:1011B000031C51292F08F0000530F4008031D5219F +:1011C000883144012E08F0070030F13D00307007EF +:1011D0008400A030713D85000008B0002808023A64 +:1011E00003191B29B01BF628B113F728B117B01B40 +:1011F000FB283113FC283117301B0029B1120129BB +:10120000B116301B0529311206293116B01A0A29E8 +:10121000B1110B29B115B01A0F293111102931154F +:10122000301A1429B1101529B114301A19293110A6 +:101230001A2931144329301B1F29B1132029B11752 +:10124000301B2429311325293117B01A2929B1124D +:101250002A29B116B01A2E2931122F293116301A27 +:101260003329B1113429B115301A382931113929EE +:101270003115B0193D29B1103E29B114B0194229D8 +:101280003110432931143108BF0080312F218831BA +:1012900044013108BF0080312F2188314401AE0A5A +:1012A000D628BF0180312F2188314401BF01803110 +:1012B0002F2188314401AD0ABC288031ED218831CD +:0212C000080024 +:0812C2008031ED2188310800A4 +:1012CA00FB09FA09F909F809F80A0319F90A0319CD +:0812DA00FA0A0319FB0A0800DF +:1012E2004401AC0105302C02031881292C082A077D +:1012F200860000302B3D870020308100AC0A732924 +:101302002C082A07860000302B3D87008101AC03A0 +:101312002C082A07AD0000302B3DAE000A30F40045 +:10132200F5012808F0002908F1008031D623883120 +:101332007808F0007908F1003030F00744012D08F8 +:1013420086002E088700700881000A30F400F5013B +:101352002808F0002908F1008031D623883170086E +:101362004401A8007108A90000307106031DBB29C1 +:1013720000307006031DBE29C029AC03892908006C +:101382004001971180317A22883101304401B20044 +:10139200B3013B30B4000030B5001230B6008031EA +:1013A2009F23883103304401B200B3014E30B400B0 +:1013B2000030B5000C30B60080319F2388310330F5 +:1013C2004401B2005430B3005B30B4000030B500C9 +:1013D2000330B60080319F2388317A30FB00C13060 +:1013E200FC008130FD00FD0BF429FC0BF429FB0B02 +:1013F200F429000000008D1A002A0314012A0310A8 +:0C140200031C052A0000FC2997150800B7 +:10140E007C183D2AFC180E2A7C19622A072AA10193 +:10141E007208031D2E2A7108F2007008F100780878 +:10142E00F000F801A1157208031D2E2A7108F200B2 +:10143E007008F100F001A11121167208031D2E2A69 +:10144E007108F200F101A11572080319502A210842 +:10145E00F302031D031C562A0310F21B3D2AF80D3E +:10146E00F00DF10DF20DF30B342A562A7B1B701C76 +:10147E005C2AF81F5C2AF00A0319F10A0319F20A12 +:10148E00031D5C2AF20CF10CF00CF30A0319622A0C +:10149E005C2A0130FC00803144228831672A0230F8 +:1014AE00FC0080318D218831672A0430FC008031A8 +:1014BE0089218831672A0830FC008031FF2388316A +:0414CE000000080012 +:1014D20043304401B2008031542388310230FC0091 +:1014E2000830FD00FD0B732AFC0B732A0000093043 +:1014F2004401B20080310B2488310B30F4000030FB +:10150200F5008031FE22883170084301BC00710869 +:04151200BD00080010 +:1015160043016E08F1006F08F200F135F20D710813 +:10152600EE007208EF008030023AF000803072065A +:101536007002031DA02A71084C3C031CA72A7830B0 +:10154600EE070130EF3D772B8030033AF000803014 +:101556006F067002031DB12A6E08723C031CB82A7E +:101566009030EE070130EF3D772B8030053AF000E2 +:1015760080306F067002031DC22A6E08213C031CD0 +:10158600C92ADC30EE070130EF3D772B8030073A71 +:10159600F00080306F067002031DD32A6E086C3C83 +:1015A600031CDA2A0230EE070230EF3D772B80303B +:1015B600093AF00080306F067002031DE42A6E08B7 +:1015C6006E3C031CEB2A3830EE070230EF3D772BDA +:1015D60080300A3AF00080306F067002031DF52A4B +:1015E6006E08483C031CFC2A8430EE070230EF3DAF +:1015F600772B80300B3AF00080306F067002031DA7 +:10160600062B6E087E3C031C0D2BDC30EE070230E9 +:10161600EF3D772B80300C3AF00080306F06700279 +:10162600031D172B6E08A03C031C1E2B1030EE0763 +:101636000330EF3D772B80300C3AF00080306F0698 +:101646007002031D282B6E08FC3C031C2F2BE03078 +:10165600EE070330EF3D772B80300E3AF0008030F6 +:101666006F067002031D392B6E08883C031C402B45 +:10167600E830EE070330EF3D772B8030103AF0006C +:1016860080306F067002031D4A2B6E08F43C031C63 +:10169600512B8830EE070430EF3D772B8030123A1D +:1016A600F00080306F067002031D5B2B6E08C83C8D +:1016B600031C622B5030EE070530EF3D772B803050 +:1016C600143AF00080306F067002031D6C2B6E0812 +:1016D600983C031C732B9030EE070530EF3D772BBB +:1016E6009830EE070530EF3D6E08F0006F08F10008 +:0216F6000800EA +:1016F80043304401B2008031542388310230FC0069 +:101708000830FD00FD0B862BFC0B862B00000A30F1 +:101718004401B20080310B24883170084301EE0087 +:101728007108EF007108033A031D9C2BFF30700607 +:10173800031DBA2B83304401B20080315423883111 +:101748000230FC000830FD00FD0BA82BFC0BA82B79 +:1017580000000A304401B20080310B24883170083F +:101768004301EE007108EF00EE35EF0D6F08073A00 +:10177800031DC02BFE306E06031D152C6922440183 +:10178800B2018031542388310230FC000830FD005A +:10179800FD0BCC2BFC0BCC2B000008304401B20015 +:1017A80080310B24883170084401A4007108A50019 +:1017B80024084301EE00440125084301EF000030EE +:1017C800F4000430F5003C08F0003D08F1008031D9 +:1017D800902788318031C924883170084401A000DD +:1017E8007108A1007208A2007308A3002408F00081 +:1017F8002508F1008031C924883144012008F4000B +:101808002108F5002208F6002308F70080319F26FA +:10181800883180313427883170084301EE0071081F +:0C182800EF006E08F0006F08F1000800EF +:101834007408003A031D332C7508003A031D332C39 +:101844007608003A031D332C7708003A031D332C25 +:10185400FF30F000FF30F1007F30F200FF30F30082 +:10186400D52C400177080319C12C73080319C62C21 +:10187400720876068039FA00F217F617A101720889 +:10188400F8007108FC007008FD007408FD0275087A +:10189400031C750FFC027608031C760FF802F8018E +:1018A400FC01FD01031C5D2C0310F20CF10CF00C87 +:1018B400F80C0130A1007708F302031C672C7E307A +:1018C4002107F3070318CB2C6C2C7E302107F30778 +:1018D400031CD02C1830FA07FD0DFC0DF80DF00D8B +:1018E400F10DF20DA10D7408F0027508031C750FBB +:1018F400F1027608031C760FF202760DA104211C76 +:10190400852C7D14902C7408F00775080318750F46 +:10191400F10776080318760AF2077D10FA031F30E0 +:101924007A05031D6E2C7B1B7D1CB72C0310F00D58 +:10193400F10DF20DA10D7408F0027508031C750F6A +:10194400F1027608031C760FF202760D21040139A8 +:10195400FD070318FC0A0319F80A031DB72CF80C39 +:10196400FC0CFD0CF30A0319CB2CFA1FF8137808AE +:10197400F2007C08F1007D08F0000030D42C013026 +:101984008031F6278831D42C0230803144228831CA +:10199400D42C04308031FF238831D42C083080319A +:0819A4008D21883100000800CC +:1019AC00400172087606A100F801F901730877026C +:1019BC00031CF82C7708FD007308F7007D08F30072 +:1019CC007608FD007208F6007D08F2007508FD002F +:1019DC007108F5007D08F1007408FD007008F40032 +:1019EC007D08F00077080319752D7208FA00F217BC +:1019FC00F61777087302F70003192B2D08307702BE +:101A0C00031C212DF7007408F9007508F400760802 +:101A1C00F500F60108307702031C212DF70074083D +:101A2C00F9007508F400F50108307702031C212D2C +:101A3C007A08F200752D770803192B2D0310F60C7C +:101A4C00F50CF40CF90CF70B242DA11F382DF9090A +:101A5C00F409F509F609F90A0319F40A0319F50A48 +:101A6C000319F60A7908F80774080318740FF007BD +:101A7C0075080318750FF10776080318760FF2072F +:101A8C00A11B512D031C612DF20CF10CF00CF80C68 +:101A9C00F30F612D6F2D0318652DF809F009F1096D +:101AAC00F209F80A0319F00A0319F10A0319F20AE8 +:101ABC008030FA06692D0130FC000722772D0230A8 +:101ACC00FC000722772D0430FC0080314B2288313A +:101ADC00772D0830FC008031FF238831772D0030C2 +:061AEC00FC0000000800F0 +:101AF2007408003A031D922D7508003A031D922DB9 +:101B02007608003A031D922D7708003A031D922DA4 +:101B1200FF30F000FF30F100FF30F2007F30F300C1 +:101B22002C2E4001FC01F71BFC0AFD01FB01FA010E +:101B3200F901F80173087204710470040319272E65 +:101B420073087706A000A01BFD09F71FB32DF40947 +:101B5200F509F609F709F40A0319F50A0319F60A51 +:101B62000319F70AF31FC02DF009F109F209F3096D +:101B7200F00A0319F10A0319F20A0319F30A7308A6 +:101B82007704A000A01BE32D8031E6248831FC1BE2 +:101B9200002EFD1F272EF009F109F209F309F00AC0 +:101BA2000319F10A0319F20A0319F30AF809F909E8 +:101BB200FA09FB09F80A0319F90A0319FA0A0319BF +:101BC200FB0A272EF71FFA2DF31BF42D7308FB00D7 +:101BD2007208FA007108F9007008F800F301F201C6 +:101BE200F101F001CA2DF301F201F101F001F00A55 +:101BF2000034F309F209F109F009FC17C52DF80ABE +:101C02000319F90A0319FA0A0319FB0A740878027C +:101C1200031DCA2D75087902031DCA2D76087A02A2 +:101C2200031DCA2D77087B02031DCA2DFB01FA0191 +:101C3200F901F801F00A0319F10A0319F20A03196A +:101C4200F30AF31FCA2DA0012016FF34A0017C1C49 +:081C52002B2E6521003E080065 +:101C5A0043304401B2008031542388310230FC0001 +:101C6A000830FD00FD0B372EFC0B372E0000083024 +:101C7A004401B20080310B24883170084301EE0020 +:101C8A007108EF007108033A031D4D2EFF307006EC +:101C9A00031D6B2E83304401B200803154238831F6 +:101CAA000230FC000830FD00FD0B592EFC0B592EAA +:101CBA00000008304401B20080310B2488317008DA +:101CCA004301EE007108EF00EE35EF0D6F08073A99 +:101CDA00031D712EFE306E06031DCB2E69224401B0 +:101CEA00B2018031542388310230FC000830FD00F3 +:101CFA00FD0B7D2EFC0B7D2E000008304401B20046 +:101D0A0080310B24883170084301EE007108EF001E +:101D1A007108033A031D932EFF307006031D972E98 +:101D2A0042016E150030F4000430F50043013C080E +:101D3A00F0003D08F1008031902788318031C924B4 +:101D4A00883170084401A0007108A1007208A2003D +:101D5A007308A30043016E08F0006F08F100803198 +:101D6A00C924883144012008F4002108F50022081A +:101D7A00F6002308F70080319F2688318031342706 +:101D8A00883170084301EE007108EF006E08F00018 +:061D9A006F08F1000800D3 +:101DA000400116160930FB001E30FC00E430FD0037 +:101DB000FD0BD82EFC0BD82EFB0BD82E000061217A +:101DC0006830FC00E430FD00FD0BE42EFC0BE42E3B +:101DD000000080311226883142016E1EF52EC1218D +:101DE00042016E1280317A2288314401A801A90192 +:101DF0004F30AA000130AB000930AC000020803128 +:101E0000FF26883102304401A800A9014330AA000E +:101E10000130AB000930AC0000204401A8012A3099 +:101E2000A9004D30AA000130AB000130AC00002009 +:101E300002304401A8002A30A9003530AA00003041 +:101E4000AB000130AC0000200F30B7002730B800E5 +:101E50000F30B9002730BA000F30B3002730B4007C +:101E60000F30AF002730B000B101B20101304201A4 +:101E70003B07EA0000303C3DEB0000303D3DEC000C +:101E800000303E3DED003B08BF003C08C0003D086F +:101E9000C1003E08C2006E136E10EE1140016308CF +:101EA000F0006408F1006508F2006608F300E8300D +:101EB000F4000330F500F601F701803199218831F3 +:101EC000700842013B074301A000710842013C3DFC +:101ED0004301A100720842013D3D4301A200730885 +:101EE00042013E3D4301A30040015F08F00060084D +:101EF000F1006108F2006208F300E830F4000330FA +:101F0000F500F601F701803199218831700842010E +:101F10003B074301A400710842013C3D4301A50079 +:101F2000720842013D3D4301A600730842013E3D57 +:061F30004301A7000800B8 +:101F36004101ED014201BA014101EE014401A8014E +:0C1F4600A901AA0180311B248831080089 +:101F5200003043015706031DB02F00305606031D03 +:101F6200BF2F02304401A8003C30A900E730AA008C +:101F72000030AB000430AC000020E32F43015608D0 +:101F82004401A000430157084401A100BE30A20051 +:101F92000130A30090310020883143014108B40090 +:101FA2002E30B5004208B6004308B70002304401A3 +:101FB200A8003C30A900B430AA000130AB000430C4 +:061FC200AC000020080045 +:101FC8004001971116169031B9258831430132081E +:101FD8004001B100430133084001B20097154201A6 +:041FE800EE100800EF +:101FEC0012001E00F003031DF62FF103031DF62F44 +:021FFC000800DB +:102000004401A401A5012008A6002108A7008030F2 +:102010002106F00080307002031D102800302002DD +:1020200003181E280130A4000030A5002008003C41 +:10203000A6002108031C013EA701A7022608A8004C +:102040002708A9002208AA002308AB0088317121C3 +:10205000903106304301EE000030EF006F08003C85 +:10206000031D34286E08003C031855286E084401EF +:102070002207860043016F084401233D8700013099 +:1020800043016E02F00000306F3BF1007008440124 +:10209000220784007108233D85000008810001307B +:1020A0004301EE020030EF3B2E2844012208860057 +:1020B000230887002030810024082504031985287F +:1020C0004301EE01EF016E08440122078400430141 +:1020D0006F084401233D85000008203A031D752840 +:1020E0004301EE0A0319EF0A632843010130EE02AF +:1020F0000030EF3B6E0844012207860043016F0861 +:0C2100004401233D87002D3081000800C1 +:10210C004001971188319B27903102304401A8007F +:10211C00A9012030AA000130AB000930AC00883195 +:10212C00002090311930FB005A30FC00B130FD001A +:10213C00FD0B9E28FC0B9E28FB0B9E28000000002C +:10214C0002304401A800A9015B30AA000130AB00A9 +:10215C000530AC0088310020903102304401A800D9 +:10216C002A30A9005930AA000130AB000130AC0074 +:10217C0088310020903102304401A8003C30A90085 +:10218C006530AA000130AB000430AC00883100206F +:10219C0090310D30FB002D30FC00D730FD00FD0BD5 +:1021AC00D528FC0BD528FB0BD52800000000971573 +:1021BC0042016E13EE123B08EA003C08EB003D08AE +:1021CC00EC003E08ED003B08BF003C08C0003D0899 +:0821DC00C1003E08C20008002A +:1021E40088312D2690317008E6007108E700003030 +:1021F400E71BFF30E800E90088317C239031700848 +:10220400EA007108EB000030EB1BFF30EC00ED003E +:102214006608EE006708EF0088318B229031803128 +:10222400C92490310030F4000030F5002030F6006D +:102234008130F70080319F2690310030F400003067 +:10224400F5007A30F6008830F70088311A2490318E +:10225400F430F400FD30F5003430F6007F30F70040 +:1022640088311A2490317008F4007108F50072085E +:10227400F6007308F70080319F2690310030F40097 +:102284000030F5002030F6008130F70088311A2440 +:1022940090310030F4000030F5000030F6007E305C +:1022A400F7008831D624903180313427903170087A +:1022B4004301B0007108B1008030F2008030710633 +:1022C4007202031D67297008003C0318BB294001F2 +:1022D400161EB8296308F0006408F1006508F200CE +:1022E4006608F300E830F4000330F500F601F70166 +:1022F400803199219031700842013B074301A000CD +:10230400710842013C3D4301A100720842013D3D78 +:102314004301A200730842013E3D4301A300400172 +:102324005F08F0006008F1006108F2006208F30041 +:10233400E830F4000330F500F601F701803199210B +:102344009031700842013B074301A4007108420127 +:102354003C3D4301A500720842013D3D4301A600F6 +:10236400730842013E3D4301A700BB298831D026B2 +:10237400903180306D06F000803069067002031DD4 +:10238400CD2968086C02031DCD2967086B02031D63 +:10239400CD2966086A02031CD629E730E60003301B +:1023A400E700E801E901202A6A086607F0006B08E3 +:1023B400673DF1006C08683DF2006D08693DF3006B +:1023C4006430F400F501F601F70180319921903170 +:1023D40043016608F4006708F5006808F600690818 +:1023E400F7006A08F4026B08F53B6C08F63B6D08CD +:1023F400F73B88317925903170084301E600710874 +:10240400E7007208E8007308E9008030F4008030C7 +:1024140073067402031D182A7208003C031D182A4F +:102424007108033C031D182A7008E73C0318202A8E +:10243400E730E6000330E700E801E9016608B2008E +:062444006708B300080068 +:10244A00003043016706031D2C2A00306606031D6F +:10245A003C2A4401A8013C30A9006130AA0001309D +:10246A00AB000330AC00883100209031A32A8030C1 +:10247A0043016706F00080307002031D462A0A30C5 +:10248A00660203185C2A66084401A0004301670833 +:10249A004401A100BE30A2000130A3000020303068 +:1024AA004301B4002E30B5004308B600962A8030A6 +:1024BA006706F00080307002031D652A64306602E8 +:1024CA0003187B2A66084401A000430167084401F7 +:1024DA00A100BE30A2000130A3000020430142083F +:1024EA00B4002E30B5004308B600962A05306607B8 +:1024FA00F0000030673DF1007008E6007108E7005F +:10250A0070084401A0007108A100BE30A200013089 +:10251A00A300002020304301B4004108B50042085E +:10252A00B6004401A8013C30A900B430AA00013029 +:0E253A00AB000330AC00883100209031080067 +:10254800F220C830A800A901AA01AB0180303106E9 +:10255800F100803040016C067102031DB62A6B0839 +:1025680043013002013003180030F100803040018F +:102578006806F0008030430131067002031DC72A47 +:10258800300840016702013003180030F00071087C +:10259800F0040319002B42016E1FD72A862043013D +:1025A800B201B301002B4201EE1DDE2A4301B20144 +:1025B800B301002BF2203008E6003108E70025229D +:1025C80043012B08003C031DF32A2A08003C031D85 +:1025D800F32A2908003C031DF32A2808003C0318A5 +:1025E800FC2A0130A8020030A93BAA3BAB3BFF2ADA +:0A25F800B201B301002BAA2A08006B +:1026020003304301E5004201BA0141016D08440172 +:10261200A800A90141016E084401AA0080311B24CF +:102622009031A4221430F4000030F5004301320846 +:10263200F0003308F1008031902790317008430197 +:102642003207E3007108333DE4006508E2006208E6 +:102652001F3C031C862B41016D084401A800430165 +:1026620062084401A90041016E084401AA008031B8 +:102672001B249031A422803043013306F0008030C5 +:1026820064067002031D472B630832020318842B71 +:102692001430F4000030F5003208F0003308F10085 +:1026A200803190279031700843013207E3007108AE +:1026B200333DE40062084201BA004301650841016A +:1026C200EF00803043013306F00080307002031DBA +:1026D2006C2B7830320203186F2B862B6508620749 +:1026E200F1007108E2007108093A031D7B2B0830E2 +:1026F200E200832B6208113A031D832B1030E200A3 +:102702000430E500852B862B282B41016D084401FE +:10271200A80042013A084401A90041016E0844019F +:0A272200AA0080311B24903108004A +:10272C0041016C084301DC0041016C086D07F100AC +:10273C0071084301DE0071081F3C0318A72B1F30E2 +:10274C00DE0041016D0843015C020318B32B5C08E9 +:10275C0041016D024301DF00B42BDF015F08410131 +:10276C00ED0043015F084401A80042013A0844010E +:10277C00A90041016E084401AA0080311B2490314C +:10278C00A422003043013306031DCE2B0030320649 +:10279C00031DD12B552C3208E0003308E1005F0AF1 +:1027AC00DD005D085E02031C462C5D084401A80098 +:1027BC0042013A084401A90041016E084401AA00F3 +:1027CC0080311B249031A422003043013306031DB9 +:1027DC00F12B00303206031DF42B552C80303306C0 +:1027EC00F000803061067002031DFE2B600832027F +:1027FC00031C0A2C6830FC00E430FD00FD0B042C9B +:10280C00FC0B042C0000A422803043013306F000A2 +:10281C00803061067002031D152C60083202031C07 +:10282C00212C6830FC00E430FD00FD0B1B2CFC0B54 +:10283C001B2C0000A422803043013306F0008030B2 +:10284C0061067002031D2C2C600832020318432C05 +:10285C003208E0003308E1005D084101ED008030F2 +:10286C0043013306F00080307002031D3F2C78309A +:10287C0032020318422C462C442C462CDD0AD72B52 +:10288C0041016D084401A80042013A084401A90025 +:10289C0041016E084401AA0080311B2490310800CC +:1028AC0003304301E100DD0161084101EC0003301C +:1028BC004301DE001430F4000030F5003208F00063 +:1028CC003308F100803190279031700843013207B2 +:1028DC00DF007108333DE0006108DC005C081F3C40 +:1028EC00031CD72C5C084401A80042013A0844019F +:1028FC00A90041016E084401AA0080311B249031CB +:10290C000123A422803043013306F000803060069E +:10291C007002031D932C5F0832020318D52C14305F +:10292C00F4000030F5003208F0003308F10080317B +:10293C0090279031700843013207DF007108333D56 +:10294C00E0005C084101ED0042013A084301DD0062 +:10295C0061084101EC006F084301DE008030330652 +:10296C00F00080307002031DBD2C78303202031849 +:10297C00C02CD72C61085C07F1007108DC007108D1 +:10298C00093A031DCC2C0830DC00D42C5C08113A1D +:10299C00031DD42C1030DC000430E100D62CD72CD5 +:1029AC00742C5D084201BA0041016D084401A80075 +:1029BC0043015D084401A90041016E084401AA00CD +:1029CC0080311B24903143015E084101EF006830D7 +:1029DC00FC00E430FD00FD0BF12CFC0BF12C000095 +:0229EC000800E1 +:1029EE0041016F084301DC0041016F0842013A07C3 +:1029FE00F10071084301DE0071081F3C0318092D18 +:102A0E001F30DE0042013A0843015C020318152D07 +:102A1E005C0842013A024301DF00162DDF015F0818 +:102A2E004201BA0041016D084401A80043015F084C +:102A3E004401A90041016E084401AA0080311B2403 +:102A4E009031A422003043013306031D302D003097 +:102A5E003206031D332DB82D3208E0003308E10095 +:102A6E005F0ADD005D085E02031CA92D41016D08A1 +:102A7E004401A80043015D084401A90041016E080C +:102A8E004401AA0080311B249031A422003043015E +:102A9E003306031D542D00303206031D572DB82D5D +:102AAE0080303306F000803061067002031D612D08 +:102ABE0060083202031C6D2D6830FC00E430FD000E +:102ACE00FD0B672DFC0B672D0000A4228030430107 +:102ADE003306F000803061067002031D782D600809 +:102AEE003202031C842D6830FC00E430FD00FD0B27 +:102AFE007E2DFC0B7E2D0000A42280304301330678 +:102B0E00F000803061067002031D8F2D60083202C6 +:102B1E000318A62D3208E0003308E1005D084201DB +:102B2E00BA00803043013306F00080307002031D7E +:102B3E00A22D783032020318A52DA92DA72DA92D6F +:102B4E00DD0A392D41016D084401A80042013A0801 +:102B5E004401A90041016E084401AA0080311B24E2 +:042B6E00903108009A +:102B72006400400119110530FB000F30FC00F130F8 +:102B8200FD00FD0BC22DFC0BC22DFB0BC22DA4229E +:102B9200803043013306F00080307002031DD32DD4 +:102BA2006E3032020318D82D40011915782F883162 +:102BB2009B2790310330FB000830FC007730FD008A +:102BC200FD0BE12DFC0BE12DFB0BE12DA42280304E +:102BD20043013306F00080307002031DF22D6E3087 +:102BE20032020318F72D40011915782F43013208DC +:102BF200D6003308D7005624003043013306031DA4 +:102C0200042E00303206031D0B2E88319B27903193 +:102C12001915782FA422803043013306F00080304A +:102C22007002031D162E7830320203181B2E40014B +:102C32001915782F9623003043013306031D232EE6 +:102C420000303206031D2A2E88319B279031191538 +:102C5200782FA422803043013306F00080307002C6 +:102C6200031D352E7830320203183A2E4001191511 +:102C7200782FF724003043013306031D422E003023 +:102C82003206031D492E88319B2790311915782F62 +:102C9200A422803043013306F00080307002031D0D +:102CA200542E783032020318592E40011915782F0C +:102CB200803043013306F10080307102031D632E20 +:102CC200C8303202013003180030F1008030330680 +:102CD200F000803057067002031D712E5608320232 +:102CE200013003180030F00070087105F30032085B +:102CF2005602F1003308573BF2008030F00080307A +:102D020072067002031D872E7108643C013003189D +:102D12000030F0007308F0050319922E40011915D6 +:102D2200782F43013208D6003308D70041016D08DD +:102D32004301D800D90142013A084301DA00DB011C +:102D420041016E08013A031DA82EEE01AA2E0130A0 +:102D5200EE0088319B27903141016D084401A800A3 +:102D620042013A084401A90041016E084401AA0047 +:102D720080311B2490310330FB000830FC00773097 +:102D8200FD00FD0BC22EFC0BC22EFB0BC22EA42299 +:102D9200803043013306F00080307002031DD32ED1 +:102DA200783032020318D82E40011915782F562494 +:102DB200003043013306031DE02E00303206031DAE +:102DC200E72E88319B2790311915782FA422803065 +:102DD20043013306F00080307002031DF22E78307A +:102DE20032020318F72E40011915782F962300306E +:102DF20043013306031DFF2E00303206031D062F4A +:102E020088319B2790311915782FA42280304301F5 +:102E12003306F00080307002031D112F7830320229 +:102E22000318162F40011915782FF724003043019B +:102E32003306031D1E2F00303206031D252F883155 +:102E42009B2790311915782FA42280304301330635 +:102E5200F00080307002031D302F783032020318E8 +:102E6200352F40011915782F803043015706F000A5 +:102E7200803033067002031D402F320856020318B9 +:102E8200752F41016E08013A031D492FEE014B2FA8 +:102E92000130EE006D084401A80042013A084401E5 +:102EA200A90041016E084401AA0080311B2490311F +:102EB200430158084101ED0043015A084201BA009A +:102EC200430158084401A80043015A084401A900DB +:102ED20041016E084401AA0080311B249031430154 +:102EE2005608B2005708B3006400400119150800E3 +:102EF2004001971102304401A800A901BA30AA008A +:102F02000030AB000930AC00883100209031B92587 +:102F1200430132084001B100430133084001B200CD +:102F220002304401A800A901C430AA000030AB005D +:102F32000430AC0088310020903102304401A800F6 +:102F42002A30A900C930AA000030AB000130AC0021 +:102F520088310020903143013208D6003308D7006F +:102F62008831A9279031971542016E10EE103B0867 +:102F7200EA003C08EB003D08EC003E08ED003B088F +:102F8200BF003C08C0003D08C1003E08C200080066 +:102F92004201EE11B601B701B801B90180317A22BE +:102FA200903101304401A800A9012A30AA00013061 +:102FB200AB000B30AC008831002090315230FB0066 +:102FC2002B30FC000030FD00FD0BE52FFC0BE52F44 +:0E2FD200FB0BE52F00009831822190310800A2 +:1030000080316B219831410136084401BF00803185 +:103010002F21983140304401BF0080312F21983159 +:103020000A30F4000030F50043014D08F0004E086E +:10303000F10080319027983170084301CD0071086C +:10304000CE0080307106F2008030013A7202031D1A +:103050002B282C307002031832282C30CD00013080 +:10306000CE0042288030013AF00080304E067002D7 +:10307000031D3C284D08A43C03184228A430CD0071 +:103080000130CE002C304D02F30001304E3BF400F5 +:103090007308CD007408CE000530F2007308F0000C +:1030A0007408F100720803195928F035F10DFF3E3C +:1030B00053287008CD007108CE007830F40000303D +:1030C000F50080319027983170084301D000193005 +:1030D0007002031C752818305002D1000830D2004D +:1030E0000830D3000830D400932811305002031C5C +:1030F0008228D10110305002D2000830D3000830AD +:10310000D400932809305002031C8E28D101D2012B +:1031100008305002D3000830D4009328D101D201E6 +:10312000D3015008D4008030D50001305102F000A6 +:10313000F1010030F13B7008F1005508F000710812 +:103140000319A528F036FF3EA0287008FF3CD500E3 +:10315000D50A0330D5044401BA017730BB00803171 +:1031600004229831430155084401BF0080312F21CA +:103170009831430155084401BF0080312F21983117 +:10318000430155084401BF0080312F2198311F3081 +:103190004301D5044401BA017530BB0080310422DB +:1031A0009831430155084401BF0080312F219831E7 +:1031B000430155084401BF0080312F21983144015B +:1031C000BA017A30BB00803104229831430155089E +:1031D0004401BF0080312F2198314301550844013B +:1031E000BF0080312F21983180304301D50001305C +:1031F0005202F000F1010030F13B7008F100550877 +:10320000F000710803190729F036FF3E0229700803 +:10321000FF3CD500D50A01304401BA007530BB002F +:103220008031042298314301CF014F08063C031C32 +:10323000222955084401BF0080312F2198314301D4 +:10324000CF0A15298030D50001305302F000F1017A +:103250000030F13B7008F1005508F00071080319C7 +:103260003429F036FF3E2F297008FF3CD500D50ADF +:1032700002304401BA007530BB008031042298311D +:103280004301CF014F08063C031C4F295508440158 +:10329000BF0080312F2198314301CF0A422980306D +:1032A000D50001305402F000F1010030F13B70080C +:1032B000F1005508F000710803196129F036FF3E4E +:1032C0005C297008FF3CD500D50AC030D504033016 +:1032D0004401BA007530BB008031042298314301AB +:1032E000CF014F08063C031C7E2955084401BF004E +:1032F00080312F2198314301CF0A71298031ED218E +:0433000098310800F8 +:103304008B1340019E134E018C1216167E01CA12B5 +:10331400C91640011612171697151A104F01961761 +:103324004301CD014D08003A031DA7290530FB00D8 +:103334000F30FC00F130FD00FD0B9E29FC0B9E2993 +:10334400FB0B9E297E01CA12630000000530FB00BE +:103354000F30FC00F130FD00FD0BAE29FC0BAE2953 +:10336400FB0BAE2940018D1AB9290314BA290310A5 +:10337400031CBF294301CD0AC1294301CD014D08D6 +:103384000F3C0318C629C72994294F0196134E01EF +:1033940016127E01C912CA1240019E178B174201F0 +:1033A4006E168831D026983140018D1ADB2903141A +:1033B400DC290310031CE0290000D62942016E1306 +:0833C4006E10EE11EE1008007E +:1033CC006430410165024301C70000304101663B96 +:1033DC004301C8000330FB000830FC007730FD00CF +:1033EC00FD0BF629FC0BF629FB0BF6295830C60011 +:1033FC00C901CA01E730CB000330CC004201EF0118 +:10340C004301460842016F0203182F2A9031F22023 +:10341C00983180304A06F000803031067002031D6E +:10342C00192A300849020318232A3008C900310828 +:10343C00CA003208CB003308CC000B30FC006230E1 +:10344C00FD00FD0B272AFC0B272A00004201EF0A86 +:10345C00062A8030F000803043014A067002031DBA +:10346C00392A4908003C03188D2A4001161E8A2A65 +:10347C006308F0006408F1006508F2006608F300C8 +:10348C00E830F4000330F500F601F70180319921A2 +:10349C009831700842013B074301A00071084201BA +:1034AC003C3D4301A100720842013D3D4301A20095 +:1034BC00730842013E3D4301A30040015F08F00048 +:1034CC006008F1006108F2006208F300E830F400D3 +:1034DC000330F500F601F70180319921983170081D +:1034EC0042013B074301A400710842013C3D4301EA +:1034FC00A500720842013D3D4301A600730842013C +:10350C003E3D4301A7008D2A8831D02698314A08C8 +:10351C0040013406031D952A33084301490603195B +:10352C00C52A42016E1DA82A4401A8012A30A9000F +:10353C00E330AA000030AB000130AC008831002031 +:10354C009831B52A4401A8012A30A900CD30AA002F +:10355C000030AB000130AC008831002098314301C1 +:10356C0049084001B30043014A084001B40043013B +:10357C004908E6004A08E70090312522983180304E +:10358C0043014A06F00080307002031DCF2A0A3036 +:10359C0049020318D32ACB01CC0142016E1D482BE2 +:1035AC0003304301C6004608003A0319152B0230BC +:1035BC004401A8000630A900CF30AA000030AB00AF +:1035CC000930AC008831002098311530FB004B30AD +:1035DC00FC00BE30FD00FD0BF12AFC0BF12AFB0BAD +:1035EC00F12A000002304401A800A901D930AA0038 +:1035FC000030AB000930AC00883100209831153018 +:10360C00FB004B30FC00BE30FD00FD0B0B2BFC0B0C +:10361C000B2BFB0B0B2B00004301C603D92A0230EA +:10362C004401A800A901AC30AA000030AB0009305D +:10363C00AC0088310020983102304401A8002A30B7 +:10364C00A9006930AA000030AB000130AC00883111 +:10365C000020983143014B08D6004C08D700883124 +:10366C00A92798311530FB004B30FC00BE30FD0013 +:10367C00FD0B3E2BFC0B3E2BFB0B3E2B00004201AB +:10368C006E11352C8030F000803043014A067002F8 +:10369C00031D522B49080A3C03181E2C8030400194 +:1036AC006C06F100803043014A067102031D612B48 +:1036BC00490840016B02013003180030F1008030E2 +:1036CC0043014A06F0008030400168067002031D79 +:1036DC00722B670843014902013003180030F000D7 +:1036EC007108F0050319FA2B430180304C06F500E4 +:1036FC008030410166067502031D872B6508430166 +:10370C004B020130031C0030F500803040013A06BA +:10371C00F300803043014C067302031D982B4B08B9 +:10372C00400139024001013003180030F300390820 +:10373C0043014B02F10040013A0843014C3BF200BB +:10374C0080304806F000803072067002031DB02BEA +:10375C0071084702013003180030F000700873053F +:10376C00F40080304C06F300803040013A067302BE +:10377C00031DC32B390843014B02430101300318CD +:10378C000030F3004B0840013902F10043014C08B2 +:10379C0040013A3BF200803043014806F000803093 +:1037AC0072067002031DDC2B7108470201300318EE +:1037BC000030F0007308F00570087404F10040014B +:1037CC003A08033A031DEC2BE73039060130031D90 +:1037DC000030F0007108F0047508F0050319FA2B9D +:1037EC00903179279831352C43014C0840013A0629 +:1037FC00031D032C390843014B0603191D2C4301EF +:10380C004B084001B90043014C084001BA00430188 +:10381C004B08D6004C08D7008831A92798314301B2 +:10382C004B084001B10043014C084001B200352C5B +:10383C00400132083006031D252C2F0831060319D0 +:10384C00352C3108AF003208B00031084301D600E6 +:10385C00400132084301D7008831A927983108006C +:10386C007E01B801C3014314C3144315CE01E40116 +:10387C00D90153019013941340018C018D018E01D9 +:10388C008F01900196019701103098000630990035 +:10389C009A019101273092009301940195017E01C8 +:1038AC003A15BA15DB145B1540019F121F179F13B5 +:1038BC001E16C0309C00E0309D004E018C12400161 +:1038CC009E174E0196161E304F019600FE30970043 +:1038DC00473098007F30990077309A00DF309B009A +:1038EC008B170530FB000F30FC00F130FD00FD0B99 +:0C38FC007D2CFC0B7D2CFB0B7D2C0800B0 +:103908008831692298313D0840013806031D8F2C03 +:10391800370843013C0603199F2C43013C0840012A +:10392800B70043013D084001B80043013C08CD0001 +:103938003D08CE00002080300E3AF0008030430170 +:103948003D067002031DAA2C3C08743C0318BE2CCB +:103958004001971117160230FB003830FC00AD30DB +:10396800FD00FD0BB52CFC0BB52CFB0BB52C9715EE +:103978001716EE2C80300E3AF000803043013D06D9 +:103988007002031DC92C3C08063C0318DD2C4001BD +:10399800971117120230FB003830FC00AD30FD00E3 +:1039A800FD0BD42CFC0BD42CFB0BD42C9715171621 +:1039B800EE2C4001171297150230FB003830FC003E +:1039C800AD30FD00FD0BE62CFC0BE62CFB0BE62CCA +:1039D80017169715803043013D06F00080300D3AE8 +:1039E8007002031DF92C48303C0203181A2D80314F +:1039F8007A22983101304401A800A901A030AA0018 +:103A08000030AB000B30AC008831002098315230C8 +:103A1800FB002B30FC000030FD00FD0B112DFC0BD2 +:0E3A2800112DFB0B112D00001612822108003B +:103A36000B304301AC000430AD003230AE00023032 +:103A4600AF0041019301940195019601EC309A056E +:083A5600131613159317080065 +:103A5E002C27362440011716191542016E1688318F +:103A6E00D02698311B2542016E116E136E10EE1189 +:103A7E00EE12EE1040016308F0006408F1006508D4 +:103A8E00F2006608F300E830F4000330F500F601AA +:103A9E00F701803199219831700842013B074301AB +:103AAE00A000710842013C3D4301A1007208420191 +:103ABE003D3D4301A200730842013E3D4301A30078 +:103ACE0040015F08F0006008F1006108F200620832 +:103ADE00F300E830F4000330F500F601F701803111 +:103AEE0099219831700842013B074301A4007108E7 +:103AFE0042013C3D4301A500720842013D3D430198 +:103B0E00A600730842013E3D4301A70042016D0825 +:103B1E003E02031D9C2D6C083D02031D9C2D6B085F +:103B2E003C02031D9C2D6A083B02031CA62DB830D7 +:103B3E00EA070B30EB3D0030EC3DED3D84244201B5 +:103B4E0042083E02031DB52D41083D02031DB52D51 +:103B5E0040083C02031DB52D3F083B02031CBF2D40 +:103B6E002C30BF070130C03D0030C13DC23DE621C3 +:103B7E004301230842013E02031DD52D43012208B5 +:103B8E0042013D02031DD52D4301210842013C0295 +:103B9E00031DD52D4301200842013B02031CD92DE4 +:103BAE00400116124301270842013E02031DEF2D6C +:103BBE004301260842013D02031DEF2D4301250856 +:103BCE0042013C02031DEF2D4301240842013B023A +:103BDE00031CF22D82216E1FFE2D4001161EFB2DA1 +:103BEE00903186209831FE2D8831D02698314201B1 +:103BFE006E1C0B2E4001161E082E9031792798311F +:103C0E000B2E8831D02698314201EE1D182E400120 +:103C1E00161E152E9031C9279831182E8831D026B0 +:103C2E0098314201EE1E242E4001161A212E8831A3 +:103C3E00D0269831903186209831EE1C332E4001DB +:103C4E00161A302E8831E42798318831D0269831D3 +:0C3C5E00332E9031792798318D2D342EB3 +:103E5800383084009E3085003830F0000130F100A1 +:103E68002F308600003087008831F6279831F030EF +:103E78008400973085000C30F0000130F100A0304C +:103E88008600003087008831F62798312A30840070 +:103E98009F3085000230F0000130F1006730860065 +:103EA800003087008831F6279831163084009F301B +:103EB80085000A30F0000130F100AC308600003097 +:103EC80087008831F6279831F930840087308500DB +:103ED8000730F0000130F1006930860000308700BB +:103EE8008831F6279831A83084009E308500363016 +:103EF800F0000130F100B6308600003087008831CC +:103F0800F6279831203084009F3085000A30F00071 +:103F18000130F10020308600013087008831F62713 +:103F2800983103308400803085000130F000013082 +:103F3800F100EC308600003087008831F627983190 +:103F48000A3084009F3085000C30F0000130F10009 +:103F58002A308600013087008831F6279831FC30F6 +:103F68008400973085000330F0000130F100ED3017 +:103F78008600003087008831F62798317030840039 +:103F88009E3085003830F0000130F1003630860070 +:0C3F9800013087008831F62798310800BE +:020006000034C4 +:040FF2003D34003456 +:040FF6000A34003485 +:020FFA000034C1 +:020FFC000034BF +:020FFE000234BB +:102FE000203420344C344F3457342034423441346C +:082FF000543454342034003441 +:022FF8000034A3 +:022FFA000034A1 +:022FFC0000349F +:043C70000F342734B2 +:043C740000340034E4 +:043C78000F342734AA +:043C7C003D3400349F +:043C800000340034D8 +:043C84000F3427349E +:103C88002034443445345334493447344E3445346D +:103C9800443420344234593420344E343734443494 +:063CA800443443340034F3 +:103CAE002034463457342034563445345234533449 +:0A3CBE0049344F344E3420340034F2 +:083CC80031342E343234003493 +:083CD00008340734003400340D +:083CD8002C34013400340034E7 +:083CE00000340034003400340C +:023CE8000034A6 +:083CEA00003400340034003402 +:083CF2000034003400340034FA +:103CFA00533457345234203420342034203420347E +:043D0A00203400342D +:043D0E003D3400340C +:103D12005034573452342034203420342034203468 +:043D220057340034DE +:043D26003D340034F4 +:0C3D2A0053345734523420342034003419 +:083D360030342E343034003427 +:0A3D3E0030342E34303430340034B9 +:083D48000034003400340034A3 +:043D5000783400348F +:023D54004034F9 +:023D5600013436 +:103D5800543455344E3445342034203420342034FF +:043D680020340034CF +:0A3D6C00533457345234203400342D +:043D76003D340034A4 +:043D7A0007340034D6 +:043D7E003D3400349C +:103D82004F345634453452344C344F344134443435 +:043D920020340034A5 +:103D9600203420342034203420342034203420347D +:043DA6002034003491 +:043DAA003E3400346F +:043DAE008234003427 +:0A3DB20030342E3430343034003445 +:103DBC00F834F8341F341F340334033403341F3401 +:103DCC001F34F834F834FF34FF340034003400343A +:103DDC000034003400340034FF34FF34FF34FF343B +:103DEC000034003400340034003400340034FF3428 +:103DFC00FF34FF34FF34C034C034C034C034C0345A +:083E0C00C034C034FF34FF3460 +:103E1400203450344F3457344534523420344F34E2 +:083E240046344634203400341A +:103E2C00533457345234203420342034203420344A +:043E3C0020340034FA +:103E400052344534533445345434203420342034EF +:043E500020340034E6 +:043E5400963400346C +:1040000000340034003400340034003400345F34B1 +:1040100000340034003407340034073400341434DE +:104020007F3414347F34143424342A347F342A34D3 +:10403000123423341334083464346234363449344B +:104040005534223450340034053403340034003401 +:1040500000341C34223441340034003441342234DE +:104060001C34003408342A341C342A34083408340C +:1040700008343E34083408340034503430340034CA +:104080000034083408340834083408340034303438 +:104090003034003400342034103408340434023412 +:1040A0003E345134493445343E34003442347F3454 +:1040B000403400344234613451344934463421347C +:1040C000413445344B3431341834143412347F3491 +:1040D0001034273445344534453439343C344A347B +:1040E00049344934303401347134093405340334EB +:1040F0003634493449344934363406344934493441 +:1041000029341E340034363436340034003400345C +:104110005634363400340034003408341434223435 +:1041200041341434143414341434143441342234E7 +:104130001434083400340234013451340934063460 +:1041400032344934793441343E347E3411341134BC +:1041500011347E347F3449344934493436343E3462 +:1041600041344134413422347F34413441342234A7 +:104170001C347F3449344934493441347F34093460 +:104180000934013401343E34413441345134323441 +:104190007F340834083408347F34003441347F34A9 +:1041A000413400342034403441343F3401347F34CE +:1041B00008341434223441347F34403440344034A1 +:1041C00040347F340234043402347F347F34043486 +:1041D000083410347F343E344134413441343E3469 +:1041E0007F3409340934093406343E3441345134BF +:1041F00021345E347F34093419342934463446344A +:104200004934493449343134013401347F34013480 +:1042100001343F344034403440343F341F34203480 +:10422000403420341F347F342034183420347F3419 +:104230006334143408341434633403340434783469 +:104240000434033461345134493445344334003444 +:1042500000347F344134413402340434083410349F +:104260002034413441347F34003400340434023487 +:104270000134023404344034403440344034403457 +:1042800000340134023404340034203454345434BF +:10429000543478347F3448344434443438343834F3 +:1042A000443444344434203438344434443448347A +:1042B0007F343834543454345434183408347E340D +:1042C00009340134023408341434543454343C3442 +:1042D0007F340834043404347834003444347D3476 +:1042E000403400342034403444343D34003400340D +:1042F0007F34103428344434003441347F34403423 +:1043000000347C3404341834043478347C34083475 +:104310000434043478343834443444344434383441 +:104320007C341434143414340834083414341434FD +:1043300018347C347C34083404340434083448346D +:10434000543454345434203404343F3444344034EA +:1043500020343C344034403420347C341C34203409 +:10436000403420341C343C344034303440343C3409 +:10437000443428341034283444340C345034503409 +:1043800050343C344434643454344C344434003475 +:104390000834363441340034003400347F3400347F +:1043A00000340034413436340834003408340834DE +:1043B0002A341C34083408341C342A3408340834B1 +:020000040001F9 +:0A000E000429213E1F3F03300300C8 +:00000001FF diff --git a/Firmware/ATU-10_FW_13/ATU-10_callertable.txt b/Firmware/ATU-10_FW_13/ATU-10_callertable.txt new file mode 100644 index 0000000..36ed0b2 --- /dev/null +++ b/Firmware/ATU-10_FW_13/ATU-10_callertable.txt @@ -0,0 +1,2917 @@ +main + __CC2DW + pic_init + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + ADC_Init + Mul_32x32_U + Voltage_show + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + oled_voltage + Soft_I2C_Start + Soft_I2C_Write + Div_16x16_S + Div_16x16_S_L + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + power_off + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + watch_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Btn_long + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + tune + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + coarse_tune + Div_16x16_S + Div_16x16_S_L + Relay_set + VDelay_ms + Mul_32x32_U + coarse_cap + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Div_16x16_S + Div_16x16_S_L + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + sharp_ind + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + sharp_cap + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Relay_set + VDelay_ms + Mul_32x32_U + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + power_off + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + Btn_long + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + tune + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + coarse_tune + Div_16x16_S + Div_16x16_S_L + Relay_set + VDelay_ms + Mul_32x32_U + coarse_cap + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Div_16x16_S + Div_16x16_S_L + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + sharp_ind + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + sharp_cap + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Relay_set + VDelay_ms + Mul_32x32_U + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Btn_xlong + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + power_off + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Ext_long + tune + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + coarse_tune + Div_16x16_S + Div_16x16_S_L + Relay_set + VDelay_ms + Mul_32x32_U + coarse_cap + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Div_16x16_S + Div_16x16_S_L + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + sharp_ind + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + sharp_cap + Relay_set + VDelay_ms + Mul_32x32_U + get_swr + get_pwr + get_forward + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + get_reverse + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + get_batt + ADC_Init_Advanced + ADC_Get_Sample + Delay_22us + Mul_16X16_U + Mul_32x32_U + correction + int2double + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + Mul_32x32_FP + RES032 + SETFOV32 + SETFUN32 + Div_32x32_FP + SETFDZ32 + RES032 + SETFOV32 + SETFUN32 + Add_32x32_FP + NRM4032 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + NRM3232 + RES032 + SETFUN32 + FIXSIGN32 + SETFOV32 + double2int + SETIOV3224 + Mul_32x32_U + oled_start + Soft_I2C_Init + Soft_I2C_Stop + oled_init + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + send_command + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + Greating + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str_s + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Write + Soft_I2C_Stop + oled_clear + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Soft_I2C_Stop + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + oled_bat + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_swr + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Mul_32x32_U + Div_32x32_S + SDIV3232L + COMFREM + Btn_short + atu_reset + Relay_set + VDelay_ms + Mul_32x32_U + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + draw_power + oled_wr_str + Soft_I2C_Start + Soft_I2C_Write + set_addressing + Soft_I2C_Start + Soft_I2C_Write + Mul_8X8_U + Soft_I2C_Stop + IntToStr + WordToStr + Div_16X16_U + Relay_set + VDelay_ms + Mul_32x32_U +interupt + Mul_32x32_U diff --git a/Firmware/ATU-10_FW_13/Soft_I2C.asm b/Firmware/ATU-10_FW_13/Soft_I2C.asm new file mode 100644 index 0000000..9b86e5d --- /dev/null +++ b/Firmware/ATU-10_FW_13/Soft_I2C.asm @@ -0,0 +1,320 @@ + +_Soft_I2C_Init: + +;Soft_I2C.c,12 :: void Soft_I2C_Init(void) { +;Soft_I2C.c,13 :: Soft_I2C_Stop(); + CALL _Soft_I2C_Stop+0 +;Soft_I2C.c,14 :: return; +;Soft_I2C.c,15 :: } +L_end_Soft_I2C_Init: + RETURN +; end of _Soft_I2C_Init + +_Soft_I2C_Start: + +;Soft_I2C.c,17 :: void Soft_I2C_Start() { +;Soft_I2C.c,18 :: Soft_I2C_Scl = 1; + BSF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,19 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Start0: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Start0 + NOP + NOP +;Soft_I2C.c,20 :: Soft_I2C_Sda = 1; + BSF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,21 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Start1: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Start1 + NOP + NOP +;Soft_I2C.c,22 :: Soft_I2C_Sda = 0; + BCF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,23 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Start2: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Start2 + NOP + NOP +;Soft_I2C.c,24 :: Soft_I2C_Scl = 0; + BCF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,25 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Start3: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Start3 + NOP + NOP +;Soft_I2C.c,26 :: return; +;Soft_I2C.c,27 :: } +L_end_Soft_I2C_Start: + RETURN +; end of _Soft_I2C_Start + +_Soft_I2C_Write: + +;Soft_I2C.c,29 :: char Soft_I2C_Write(char d) { +;Soft_I2C.c,31 :: for(i=0; i<8; i++) { + CLRF R1+0 +L_Soft_I2C_Write4: + MOVLW 8 + SUBWF R1+0, 0 + BTFSC STATUS+0, 0 + GOTO L_Soft_I2C_Write5 +;Soft_I2C.c,32 :: Soft_I2C_Sda = d.B7; + BTFSC FARG_Soft_I2C_Write_d+0, 7 + GOTO L__Soft_I2C_Write29 + BCF LATA2_bit+0, BitPos(LATA2_bit+0) + GOTO L__Soft_I2C_Write30 +L__Soft_I2C_Write29: + BSF LATA2_bit+0, BitPos(LATA2_bit+0) +L__Soft_I2C_Write30: +;Soft_I2C.c,33 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Write7: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Write7 + NOP + NOP +;Soft_I2C.c,34 :: Soft_I2C_Scl = 1; + BSF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,35 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Write8: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Write8 + NOP + NOP +;Soft_I2C.c,36 :: Soft_I2C_Scl = 0; + BCF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,37 :: d = d << 1; + LSLF FARG_Soft_I2C_Write_d+0, 1 +;Soft_I2C.c,31 :: for(i=0; i<8; i++) { + INCF R1+0, 1 +;Soft_I2C.c,38 :: } + GOTO L_Soft_I2C_Write4 +L_Soft_I2C_Write5: +;Soft_I2C.c,40 :: Soft_I2C_Sda = 1; //ACK + BSF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,41 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Write9: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Write9 + NOP + NOP +;Soft_I2C.c,42 :: Soft_I2C_Scl = 1; + BSF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,43 :: ack = Soft_I2C_Sda_in; + MOVLW 0 + BTFSC PORTA+0, 2 + MOVLW 1 + MOVWF R2+0 +;Soft_I2C.c,44 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Write10: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Write10 + NOP + NOP +;Soft_I2C.c,45 :: Soft_I2C_Scl = 0; + BCF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,46 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Write11: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Write11 + NOP + NOP +;Soft_I2C.c,47 :: return ack; + MOVF R2+0, 0 + MOVWF R0 +;Soft_I2C.c,48 :: } +L_end_Soft_I2C_Write: + RETURN +; end of _Soft_I2C_Write + +_Soft_I2C_Read: + +;Soft_I2C.c,50 :: char Soft_I2C_Read(void){ +;Soft_I2C.c,51 :: char i, d = 0; + CLRF Soft_I2C_Read_d_L0+0 +;Soft_I2C.c,52 :: for(i=0; i<8; i++){ + CLRF R1+0 +L_Soft_I2C_Read12: + MOVLW 8 + SUBWF R1+0, 0 + BTFSC STATUS+0, 0 + GOTO L_Soft_I2C_Read13 +;Soft_I2C.c,53 :: d = d << 1; + LSLF Soft_I2C_Read_d_L0+0, 1 +;Soft_I2C.c,54 :: d = d + Soft_I2C_Sda_in; + CLRF R0 + BTFSC PORTA+0, 2 + INCF R0, 1 + MOVF R0, 0 + ADDWF Soft_I2C_Read_d_L0+0, 1 +;Soft_I2C.c,55 :: Soft_I2C_Scl = 1; + BSF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,56 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Read15: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Read15 + NOP + NOP +;Soft_I2C.c,57 :: Soft_I2C_Scl = 0; + BCF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,58 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Read16: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Read16 + NOP + NOP +;Soft_I2C.c,52 :: for(i=0; i<8; i++){ + INCF R1+0, 1 +;Soft_I2C.c,59 :: } + GOTO L_Soft_I2C_Read12 +L_Soft_I2C_Read13: +;Soft_I2C.c,60 :: return d; + MOVF Soft_I2C_Read_d_L0+0, 0 + MOVWF R0 +;Soft_I2C.c,61 :: } +L_end_Soft_I2C_Read: + RETURN +; end of _Soft_I2C_Read + +_Soft_I2C_ACK: + +;Soft_I2C.c,63 :: void Soft_I2C_ACK(void){ +;Soft_I2C.c,64 :: Soft_I2C_Sda = 0; + BCF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,65 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_ACK17: + DECFSZ R13, 1 + GOTO L_Soft_I2C_ACK17 + NOP + NOP +;Soft_I2C.c,66 :: Soft_I2C_Scl = 1; + BSF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,67 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_ACK18: + DECFSZ R13, 1 + GOTO L_Soft_I2C_ACK18 + NOP + NOP +;Soft_I2C.c,68 :: Soft_I2C_Scl = 0; + BCF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,69 :: Soft_I2C_Sda = 1; + BSF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,70 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_ACK19: + DECFSZ R13, 1 + GOTO L_Soft_I2C_ACK19 + NOP + NOP +;Soft_I2C.c,71 :: return; +;Soft_I2C.c,72 :: } +L_end_Soft_I2C_ACK: + RETURN +; end of _Soft_I2C_ACK + +_Soft_I2C_NACK: + +;Soft_I2C.c,74 :: void Soft_I2C_NACK(void){ +;Soft_I2C.c,75 :: Soft_I2C_Sda = 1; + BSF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,76 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_NACK20: + DECFSZ R13, 1 + GOTO L_Soft_I2C_NACK20 + NOP + NOP +;Soft_I2C.c,77 :: Soft_I2C_Scl = 1; + BSF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,78 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_NACK21: + DECFSZ R13, 1 + GOTO L_Soft_I2C_NACK21 + NOP + NOP +;Soft_I2C.c,79 :: Soft_I2C_Scl = 0; + BCF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,80 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_NACK22: + DECFSZ R13, 1 + GOTO L_Soft_I2C_NACK22 + NOP + NOP +;Soft_I2C.c,81 :: return; +;Soft_I2C.c,82 :: } +L_end_Soft_I2C_NACK: + RETURN +; end of _Soft_I2C_NACK + +_Soft_I2C_Stop: + +;Soft_I2C.c,84 :: void Soft_I2C_Stop() { +;Soft_I2C.c,85 :: Soft_I2C_Sda = 0; + BCF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,86 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Stop23: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Stop23 + NOP + NOP +;Soft_I2C.c,87 :: Soft_I2C_Scl = 1; + BSF LATA3_bit+0, BitPos(LATA3_bit+0) +;Soft_I2C.c,88 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Stop24: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Stop24 + NOP + NOP +;Soft_I2C.c,89 :: Soft_I2C_Sda = 1; + BSF LATA2_bit+0, BitPos(LATA2_bit+0) +;Soft_I2C.c,90 :: Delay_I2C; + MOVLW 39 + MOVWF R13 +L_Soft_I2C_Stop25: + DECFSZ R13, 1 + GOTO L_Soft_I2C_Stop25 + NOP + NOP +;Soft_I2C.c,91 :: return; +;Soft_I2C.c,92 :: } +L_end_Soft_I2C_Stop: + RETURN +; end of _Soft_I2C_Stop diff --git a/Firmware/ATU-10_FW_13/Soft_I2C.c b/Firmware/ATU-10_FW_13/Soft_I2C.c new file mode 100644 index 0000000..6de5595 --- /dev/null +++ b/Firmware/ATU-10_FW_13/Soft_I2C.c @@ -0,0 +1,92 @@ + +#include "Soft_I2C.h" + +#define Delay_I2C Delay_us(15) + +// Software I2C connections +#define Soft_I2C_Scl LATA3_bit +#define Soft_I2C_Sda LATA2_bit +#define Soft_I2C_Sda_in PORTA.B2 +#define Soft_I2C_Scl_in PORTA.B3 + +void Soft_I2C_Init(void) { + Soft_I2C_Stop(); + return; + } + + void Soft_I2C_Start() { + Soft_I2C_Scl = 1; + Delay_I2C; + Soft_I2C_Sda = 1; + Delay_I2C; + Soft_I2C_Sda = 0; + Delay_I2C; + Soft_I2C_Scl = 0; + Delay_I2C; + return; + } + +char Soft_I2C_Write(char d) { + char i, ack; + for(i=0; i<8; i++) { + Soft_I2C_Sda = d.B7; + Delay_I2C; + Soft_I2C_Scl = 1; + Delay_I2C; + Soft_I2C_Scl = 0; + d = d << 1; + } + // + Soft_I2C_Sda = 1; //ACK + Delay_I2C; + Soft_I2C_Scl = 1; + ack = Soft_I2C_Sda_in; + Delay_I2C; + Soft_I2C_Scl = 0; + Delay_I2C; + return ack; +} + +char Soft_I2C_Read(void){ + char i, d = 0; + for(i=0; i<8; i++){ + d = d << 1; + d = d + Soft_I2C_Sda_in; + Soft_I2C_Scl = 1; + Delay_I2C; + Soft_I2C_Scl = 0; + Delay_I2C; + } + return d; +} + +void Soft_I2C_ACK(void){ + Soft_I2C_Sda = 0; + Delay_I2C; + Soft_I2C_Scl = 1; + Delay_I2C; + Soft_I2C_Scl = 0; + Soft_I2C_Sda = 1; + Delay_I2C; + return; +} + +void Soft_I2C_NACK(void){ + Soft_I2C_Sda = 1; + Delay_I2C; + Soft_I2C_Scl = 1; + Delay_I2C; + Soft_I2C_Scl = 0; + Delay_I2C; + return; +} + +void Soft_I2C_Stop() { + Soft_I2C_Sda = 0; + Delay_I2C; + Soft_I2C_Scl = 1; + Delay_I2C; + Soft_I2C_Sda = 1; + Delay_I2C; + return; +} \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/Soft_I2C.c.ini b/Firmware/ATU-10_FW_13/Soft_I2C.c.ini new file mode 100644 index 0000000..9641705 --- /dev/null +++ b/Firmware/ATU-10_FW_13/Soft_I2C.c.ini @@ -0,0 +1,5 @@ +[Position] +Line=4 +Column=29 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/Soft_I2C.cp b/Firmware/ATU-10_FW_13/Soft_I2C.cp new file mode 100644 index 0000000..ee51260 --- /dev/null +++ b/Firmware/ATU-10_FW_13/Soft_I2C.cp @@ -0,0 +1,92 @@ +#line 1 "D:/Projects/ATU-10/Firmware_1.3/Soft_I2C.c" +#line 1 "d:/projects/atu-10/firmware_1.3/soft_i2c.h" + +void Soft_I2C_Init(void); +void Soft_I2C_Start(void); +char Soft_I2C_Write(char); +char Soft_I2C_Read(void); +void Soft_I2C_ACK(void); +void Soft_I2C_NACK(void); +void Soft_I2C_Stop(void); +#line 12 "D:/Projects/ATU-10/Firmware_1.3/Soft_I2C.c" +void Soft_I2C_Init(void) { + Soft_I2C_Stop(); + return; + } + + void Soft_I2C_Start() { + LATA3_bit = 1; + Delay_us(15) ; + LATA2_bit = 1; + Delay_us(15) ; + LATA2_bit = 0; + Delay_us(15) ; + LATA3_bit = 0; + Delay_us(15) ; + return; + } + +char Soft_I2C_Write(char d) { + char i, ack; + for(i=0; i<8; i++) { + LATA2_bit = d.B7; + Delay_us(15) ; + LATA3_bit = 1; + Delay_us(15) ; + LATA3_bit = 0; + d = d << 1; + } + + LATA2_bit = 1; + Delay_us(15) ; + LATA3_bit = 1; + ack = PORTA.B2 ; + Delay_us(15) ; + LATA3_bit = 0; + Delay_us(15) ; + return ack; +} + +char Soft_I2C_Read(void){ + char i, d = 0; + for(i=0; i<8; i++){ + d = d << 1; + d = d + PORTA.B2 ; + LATA3_bit = 1; + Delay_us(15) ; + LATA3_bit = 0; + Delay_us(15) ; + } + return d; +} + +void Soft_I2C_ACK(void){ + LATA2_bit = 0; + Delay_us(15) ; + LATA3_bit = 1; + Delay_us(15) ; + LATA3_bit = 0; + LATA2_bit = 1; + Delay_us(15) ; + return; +} + +void Soft_I2C_NACK(void){ + LATA2_bit = 1; + Delay_us(15) ; + LATA3_bit = 1; + Delay_us(15) ; + LATA3_bit = 0; + Delay_us(15) ; + return; +} + +void Soft_I2C_Stop() { + LATA2_bit = 0; + Delay_us(15) ; + LATA3_bit = 1; + Delay_us(15) ; + LATA2_bit = 1; + Delay_us(15) ; + return; +} diff --git a/Firmware/ATU-10_FW_13/Soft_I2C.h b/Firmware/ATU-10_FW_13/Soft_I2C.h new file mode 100644 index 0000000..4f1e754 --- /dev/null +++ b/Firmware/ATU-10_FW_13/Soft_I2C.h @@ -0,0 +1,9 @@ + +void Soft_I2C_Init(void); +void Soft_I2C_Start(void); +char Soft_I2C_Write(char); +char Soft_I2C_Read(void); +void Soft_I2C_ACK(void); +void Soft_I2C_NACK(void); +void Soft_I2C_Stop(void); +// \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/Soft_I2C.h.ini b/Firmware/ATU-10_FW_13/Soft_I2C.h.ini new file mode 100644 index 0000000..ff713ba --- /dev/null +++ b/Firmware/ATU-10_FW_13/Soft_I2C.h.ini @@ -0,0 +1,5 @@ +[Position] +Line=1 +Column=1 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/Soft_I2C.mcl b/Firmware/ATU-10_FW_13/Soft_I2C.mcl new file mode 100644 index 0000000..6602679 Binary files /dev/null and b/Firmware/ATU-10_FW_13/Soft_I2C.mcl differ diff --git a/Firmware/ATU-10_FW_13/font_5x8.h b/Firmware/ATU-10_FW_13/font_5x8.h new file mode 100644 index 0000000..3703333 --- /dev/null +++ b/Firmware/ATU-10_FW_13/font_5x8.h @@ -0,0 +1,100 @@ + static const code char font_5x8[] = { +// +0x00, 0x00, 0x00, 0x00, 0x00,// (space) +0x00, 0x00, 0x5F, 0x00, 0x00,// ! +0x00, 0x07, 0x00, 0x07, 0x00,// " +0x14, 0x7F, 0x14, 0x7F, 0x14,// # +0x24, 0x2A, 0x7F, 0x2A, 0x12,// $ +0x23, 0x13, 0x08, 0x64, 0x62,// % +0x36, 0x49, 0x55, 0x22, 0x50,// & +0x00, 0x05, 0x03, 0x00, 0x00,// ' +0x00, 0x1C, 0x22, 0x41, 0x00,// ( +0x00, 0x41, 0x22, 0x1C, 0x00,// ) +0x08, 0x2A, 0x1C, 0x2A, 0x08,// * +0x08, 0x08, 0x3E, 0x08, 0x08,// + +0x00, 0x50, 0x30, 0x00, 0x00,// , +0x08, 0x08, 0x08, 0x08, 0x08,// - +0x00, 0x30, 0x30, 0x00, 0x00,// . +0x20, 0x10, 0x08, 0x04, 0x02,// / +0x3E, 0x51, 0x49, 0x45, 0x3E,// 0 +0x00, 0x42, 0x7F, 0x40, 0x00,// 1 +0x42, 0x61, 0x51, 0x49, 0x46,// 2 +0x21, 0x41, 0x45, 0x4B, 0x31,// 3 +0x18, 0x14, 0x12, 0x7F, 0x10,// 4 +0x27, 0x45, 0x45, 0x45, 0x39,// 5 +0x3C, 0x4A, 0x49, 0x49, 0x30,// 6 +0x01, 0x71, 0x09, 0x05, 0x03,// 7 +0x36, 0x49, 0x49, 0x49, 0x36,// 8 +0x06, 0x49, 0x49, 0x29, 0x1E,// 9 +0x00, 0x36, 0x36, 0x00, 0x00,// : +0x00, 0x56, 0x36, 0x00, 0x00,// ; +0x00, 0x08, 0x14, 0x22, 0x41,// < +0x14, 0x14, 0x14, 0x14, 0x14,// = +0x41, 0x22, 0x14, 0x08, 0x00,// > +0x02, 0x01, 0x51, 0x09, 0x06,// ? +0x32, 0x49, 0x79, 0x41, 0x3E,// @ +0x7E, 0x11, 0x11, 0x11, 0x7E,// A +0x7F, 0x49, 0x49, 0x49, 0x36,// B +0x3E, 0x41, 0x41, 0x41, 0x22,// C +0x7F, 0x41, 0x41, 0x22, 0x1C,// D +0x7F, 0x49, 0x49, 0x49, 0x41,// E +0x7F, 0x09, 0x09, 0x01, 0x01,// F +0x3E, 0x41, 0x41, 0x51, 0x32,// G +0x7F, 0x08, 0x08, 0x08, 0x7F,// H +0x00, 0x41, 0x7F, 0x41, 0x00,// I +0x20, 0x40, 0x41, 0x3F, 0x01,// J +0x7F, 0x08, 0x14, 0x22, 0x41,// K +0x7F, 0x40, 0x40, 0x40, 0x40,// L +0x7F, 0x02, 0x04, 0x02, 0x7F,// M +0x7F, 0x04, 0x08, 0x10, 0x7F,// N +0x3E, 0x41, 0x41, 0x41, 0x3E,// O +0x7F, 0x09, 0x09, 0x09, 0x06,// P +0x3E, 0x41, 0x51, 0x21, 0x5E,// Q +0x7F, 0x09, 0x19, 0x29, 0x46,// R +0x46, 0x49, 0x49, 0x49, 0x31,// S +0x01, 0x01, 0x7F, 0x01, 0x01,// T +0x3F, 0x40, 0x40, 0x40, 0x3F,// U +0x1F, 0x20, 0x40, 0x20, 0x1F,// V +0x7F, 0x20, 0x18, 0x20, 0x7F,// W +0x63, 0x14, 0x08, 0x14, 0x63,// X +0x03, 0x04, 0x78, 0x04, 0x03,// Y +0x61, 0x51, 0x49, 0x45, 0x43,// Z +0x00, 0x00, 0x7F, 0x41, 0x41,// [ +0x02, 0x04, 0x08, 0x10, 0x20,// "\" +0x41, 0x41, 0x7F, 0x00, 0x00,// ] +0x04, 0x02, 0x01, 0x02, 0x04,// ^ +0x40, 0x40, 0x40, 0x40, 0x40,// _ +0x00, 0x01, 0x02, 0x04, 0x00,// ` +0x20, 0x54, 0x54, 0x54, 0x78,// a +0x7F, 0x48, 0x44, 0x44, 0x38,// b +0x38, 0x44, 0x44, 0x44, 0x20,// c +0x38, 0x44, 0x44, 0x48, 0x7F,// d +0x38, 0x54, 0x54, 0x54, 0x18,// e +0x08, 0x7E, 0x09, 0x01, 0x02,// f +0x08, 0x14, 0x54, 0x54, 0x3C,// g +0x7F, 0x08, 0x04, 0x04, 0x78,// h +0x00, 0x44, 0x7D, 0x40, 0x00,// i +0x20, 0x40, 0x44, 0x3D, 0x00,// j +0x00, 0x7F, 0x10, 0x28, 0x44,// k +0x00, 0x41, 0x7F, 0x40, 0x00,// l +0x7C, 0x04, 0x18, 0x04, 0x78,// m +0x7C, 0x08, 0x04, 0x04, 0x78,// n +0x38, 0x44, 0x44, 0x44, 0x38,// o +0x7C, 0x14, 0x14, 0x14, 0x08,// p +0x08, 0x14, 0x14, 0x18, 0x7C,// q +0x7C, 0x08, 0x04, 0x04, 0x08,// r +0x48, 0x54, 0x54, 0x54, 0x20,// s +0x04, 0x3F, 0x44, 0x40, 0x20,// t +0x3C, 0x40, 0x40, 0x20, 0x7C,// u +0x1C, 0x20, 0x40, 0x20, 0x1C,// v +0x3C, 0x40, 0x30, 0x40, 0x3C,// w +0x44, 0x28, 0x10, 0x28, 0x44,// x +0x0C, 0x50, 0x50, 0x50, 0x3C,// y +0x44, 0x64, 0x54, 0x4C, 0x44,// z +0x00, 0x08, 0x36, 0x41, 0x00,// { +0x00, 0x00, 0x7F, 0x00, 0x00,// | +0x00, 0x41, 0x36, 0x08, 0x00,// } +0x08, 0x08, 0x2A, 0x1C, 0x08,// -> +0x08, 0x1C, 0x2A, 0x08, 0x08 // <- +}; +// \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/font_5x8.h.ini b/Firmware/ATU-10_FW_13/font_5x8.h.ini new file mode 100644 index 0000000..44df6a4 --- /dev/null +++ b/Firmware/ATU-10_FW_13/font_5x8.h.ini @@ -0,0 +1,5 @@ +[Position] +Line=99 +Column=1 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/main.asm b/Firmware/ATU-10_FW_13/main.asm new file mode 100644 index 0000000..961f5c9 --- /dev/null +++ b/Firmware/ATU-10_FW_13/main.asm @@ -0,0 +1,4669 @@ + +_interupt: + +;main.c,30 :: void interupt() iv 0x0004 { +;main.c,32 :: if(TMR0IF_bit) { // Timer0 + BTFSS TMR0IF_bit+0, BitPos(TMR0IF_bit+0) + GOTO L_interupt0 +;main.c,33 :: TMR0IF_bit = 0; + BCF TMR0IF_bit+0, BitPos(TMR0IF_bit+0) +;main.c,34 :: Tick++; + MOVLW 1 + ADDWF _Tick+0, 1 + MOVLW 0 + ADDWFC _Tick+1, 1 + ADDWFC _Tick+2, 1 + ADDWFC _Tick+3, 1 +;main.c,35 :: TMR0L = 0xC0; // 80_000 cycles to OF + MOVLW 192 + MOVWF TMR0L+0 +;main.c,36 :: TMR0H = 0xE0; + MOVLW 224 + MOVWF TMR0H+0 +;main.c,37 :: } +L_interupt0: +;main.c,39 :: if(Tick>=btn_cnt){ // every 10ms + MOVF _btn_cnt+3, 0 + SUBWF _Tick+3, 0 + BTFSS STATUS+0, 2 + GOTO L__interupt242 + MOVF _btn_cnt+2, 0 + SUBWF _Tick+2, 0 + BTFSS STATUS+0, 2 + GOTO L__interupt242 + MOVF _btn_cnt+1, 0 + SUBWF _Tick+1, 0 + BTFSS STATUS+0, 2 + GOTO L__interupt242 + MOVF _btn_cnt+0, 0 + SUBWF _Tick+0, 0 +L__interupt242: + BTFSS STATUS+0, 0 + GOTO L_interupt1 +;main.c,40 :: btn_cnt += 10; + MOVLW 10 + ADDWF _btn_cnt+0, 1 + MOVLW 0 + ADDWFC _btn_cnt+1, 1 + ADDWFC _btn_cnt+2, 1 + ADDWFC _btn_cnt+3, 1 +;main.c,42 :: if(GetButton | Start){ + BTFSC PORTB+0, 5 + GOTO L__interupt243 + BSF R4, 0 + GOTO L__interupt244 +L__interupt243: + BCF R4, 0 +L__interupt244: + BTFSC PORTD+0, 1 + GOTO L__interupt245 + BSF 3, 0 + GOTO L__interupt246 +L__interupt245: + BCF 3, 0 +L__interupt246: + BTFSC R4, 0 + GOTO L__interupt247 + BTFSC 3, 0 + GOTO L__interupt247 + BCF R4, 0 + GOTO L__interupt248 +L__interupt247: + BSF R4, 0 +L__interupt248: + BTFSS R4, 0 + GOTO L_interupt2 +;main.c,43 :: disp_cnt = Tick + Disp_time*1000; + MOVF _Disp_time+0, 0 + MOVWF R0 + MOVF _Disp_time+1, 0 + MOVWF R1 + MOVF _Disp_time+2, 0 + MOVWF R2 + MOVF _Disp_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _disp_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _disp_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _disp_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _disp_cnt+3 +;main.c,44 :: off_cnt = Tick + Off_time*1000; + MOVF _Off_time+0, 0 + MOVWF R0 + MOVF _Off_time+1, 0 + MOVWF R1 + MOVF _Off_time+2, 0 + MOVWF R2 + MOVF _Off_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _off_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _off_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _off_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _off_cnt+3 +;main.c,45 :: } +L_interupt2: +;main.c,47 :: if(GetButton){ // + BTFSC PORTB+0, 5 + GOTO L__interupt249 + BSF 3, 0 + GOTO L__interupt250 +L__interupt249: + BCF 3, 0 +L__interupt250: + BTFSS 3, 0 + GOTO L_interupt3 +;main.c,48 :: if(btn_1_cnt<250) btn_1_cnt++; + MOVLW 250 + SUBWF _btn_1_cnt+0, 0 + BTFSC STATUS+0, 0 + GOTO L_interupt4 + INCF _btn_1_cnt+0, 1 +L_interupt4: +;main.c,49 :: if(btn_1_cnt==25) B_long = 1; // long pressing detected + MOVF _btn_1_cnt+0, 0 + XORLW 25 + BTFSS STATUS+0, 2 + GOTO L_interupt5 + BSF _B_long+0, BitPos(_B_long+0) +L_interupt5: +;main.c,50 :: if(btn_1_cnt==250 & OLED_PWD) B_xlong = 1; // Xtra long pressing detected + MOVF _btn_1_cnt+0, 0 + XORLW 250 + MOVLW 1 + BTFSS STATUS+0, 2 + MOVLW 0 + MOVWF R1 + CLRF R0 + BTFSC LATA4_bit+0, BitPos(LATA4_bit+0) + INCF R0, 1 + MOVF R1, 0 + ANDWF R0, 1 + BTFSC STATUS+0, 2 + GOTO L_interupt6 + BSF _B_xlong+0, BitPos(_B_xlong+0) +L_interupt6: +;main.c,51 :: } + GOTO L_interupt7 +L_interupt3: +;main.c,52 :: else if(btn_1_cnt>2 & btn_1_cnt<25){ + MOVF _btn_1_cnt+0, 0 + SUBLW 2 + MOVLW 1 + BTFSC STATUS+0, 0 + MOVLW 0 + MOVWF R1 + MOVLW 25 + SUBWF _btn_1_cnt+0, 0 + MOVLW 1 + BTFSC STATUS+0, 0 + MOVLW 0 + MOVWF R0 + MOVF R1, 0 + ANDWF R0, 1 + BTFSC STATUS+0, 2 + GOTO L_interupt8 +;main.c,53 :: B_short = 1; // short pressing detected + BSF _B_short+0, BitPos(_B_short+0) +;main.c,54 :: btn_1_cnt = 0; + CLRF _btn_1_cnt+0 +;main.c,55 :: } + GOTO L_interupt9 +L_interupt8: +;main.c,57 :: btn_1_cnt = 0; + CLRF _btn_1_cnt+0 +L_interupt9: +L_interupt7: +;main.c,59 :: if(Start){ + BTFSC PORTD+0, 1 + GOTO L__interupt251 + BSF 3, 0 + GOTO L__interupt252 +L__interupt251: + BCF 3, 0 +L__interupt252: + BTFSS 3, 0 + GOTO L_interupt10 +;main.c,60 :: if(btn_2_cnt<25) btn_2_cnt++; + MOVLW 25 + SUBWF _btn_2_cnt+0, 0 + BTFSC STATUS+0, 0 + GOTO L_interupt11 + INCF _btn_2_cnt+0, 1 +L_interupt11: +;main.c,61 :: if(btn_2_cnt==20 & Key_in) E_long = 1; + MOVF _btn_2_cnt+0, 0 + XORLW 20 + MOVLW 1 + BTFSS STATUS+0, 2 + MOVLW 0 + MOVWF R1 + CLRF R0 + BTFSC PORTD+0, 2 + INCF R0, 1 + MOVF R1, 0 + ANDWF R0, 1 + BTFSC STATUS+0, 2 + GOTO L_interupt12 + BSF _E_long+0, BitPos(_E_long+0) +L_interupt12: +;main.c,62 :: } + GOTO L_interupt13 +L_interupt10: +;main.c,63 :: else if(btn_2_cnt>1 & btn_2_cnt<10){ + MOVF _btn_2_cnt+0, 0 + SUBLW 1 + MOVLW 1 + BTFSC STATUS+0, 0 + MOVLW 0 + MOVWF R1 + MOVLW 10 + SUBWF _btn_2_cnt+0, 0 + MOVLW 1 + BTFSC STATUS+0, 0 + MOVLW 0 + MOVWF R0 + MOVF R1, 0 + ANDWF R0, 1 + BTFSC STATUS+0, 2 + GOTO L_interupt14 +;main.c,64 :: E_short = 1; + BSF _E_short+0, BitPos(_E_short+0) +;main.c,65 :: btn_2_cnt = 0; + CLRF _btn_2_cnt+0 +;main.c,66 :: } + GOTO L_interupt15 +L_interupt14: +;main.c,68 :: btn_2_cnt = 0; + CLRF _btn_2_cnt+0 +L_interupt15: +L_interupt13: +;main.c,69 :: } +L_interupt1: +;main.c,70 :: return; +;main.c,71 :: } +L_end_interupt: +L__interupt241: + RETFIE %s +; end of _interupt + +_main: + +;main.c,74 :: void main() { +;main.c,75 :: pic_init(); + CALL _pic_init+0 +;main.c,76 :: Red = 1; + BSF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,77 :: Key_out = 1; + BSF LATD2_bit+0, BitPos(LATD2_bit+0) +;main.c,78 :: gre = 1; + BSF _gre+0, BitPos(_gre+0) +;main.c,79 :: oled_start(); + CALL _oled_start+0 +;main.c,81 :: ADC_Init(); + CALL _ADC_Init+0 +;main.c,82 :: Overflow = 0; + BCF _Overflow+0, BitPos(_Overflow+0) +;main.c,83 :: B_short = 0; + BCF _B_short+0, BitPos(_B_short+0) +;main.c,84 :: B_long = 0; + BCF _B_long+0, BitPos(_B_long+0) +;main.c,85 :: B_xlong = 0; + BCF _B_xlong+0, BitPos(_B_xlong+0) +;main.c,86 :: E_short = 0; + BCF _E_short+0, BitPos(_E_short+0) +;main.c,87 :: E_long = 0; + BCF _E_long+0, BitPos(_E_long+0) +;main.c,89 :: disp_cnt = Tick + Disp_time*1000; + MOVF _Disp_time+0, 0 + MOVWF R0 + MOVF _Disp_time+1, 0 + MOVWF R1 + MOVF _Disp_time+2, 0 + MOVWF R2 + MOVF _Disp_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _disp_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _disp_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _disp_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _disp_cnt+3 +;main.c,90 :: off_cnt = Tick + Off_time*1000; + MOVF _Off_time+0, 0 + MOVWF R0 + MOVF _Off_time+1, 0 + MOVWF R1 + MOVF _Off_time+2, 0 + MOVWF R2 + MOVF _Off_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _off_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _off_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _off_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _off_cnt+3 +;main.c,93 :: rldl = Rel_Del; + MOVF _Rel_Del+0, 0 + MOVWF _rldl+0 + MOVF _Rel_Del+1, 0 + MOVWF _rldl+1 +;main.c,96 :: while(1) { +L_main16: +;main.c,97 :: if(Tick>=volt_cnt){ // every 3 second + MOVF _volt_cnt+3, 0 + SUBWF _Tick+3, 0 + BTFSS STATUS+0, 2 + GOTO L__main254 + MOVF _volt_cnt+2, 0 + SUBWF _Tick+2, 0 + BTFSS STATUS+0, 2 + GOTO L__main254 + MOVF _volt_cnt+1, 0 + SUBWF _Tick+1, 0 + BTFSS STATUS+0, 2 + GOTO L__main254 + MOVF _volt_cnt+0, 0 + SUBWF _Tick+0, 0 +L__main254: + BTFSS STATUS+0, 0 + GOTO L_main18 +;main.c,98 :: volt_cnt += 3000; + MOVLW 184 + ADDWF _volt_cnt+0, 1 + MOVLW 11 + ADDWFC _volt_cnt+1, 1 + MOVLW 0 + ADDWFC _volt_cnt+2, 1 + ADDWFC _volt_cnt+3, 1 +;main.c,99 :: Voltage_show(); + CALL _Voltage_show+0 +;main.c,100 :: } +L_main18: +;main.c,102 :: if(Tick>=watch_cnt){ // every 300 ms unless power off + MOVF _watch_cnt+3, 0 + SUBWF _Tick+3, 0 + BTFSS STATUS+0, 2 + GOTO L__main255 + MOVF _watch_cnt+2, 0 + SUBWF _Tick+2, 0 + BTFSS STATUS+0, 2 + GOTO L__main255 + MOVF _watch_cnt+1, 0 + SUBWF _Tick+1, 0 + BTFSS STATUS+0, 2 + GOTO L__main255 + MOVF _watch_cnt+0, 0 + SUBWF _Tick+0, 0 +L__main255: + BTFSS STATUS+0, 0 + GOTO L_main19 +;main.c,103 :: watch_cnt += 300; + MOVLW 44 + ADDWF _watch_cnt+0, 1 + MOVLW 1 + ADDWFC _watch_cnt+1, 1 + MOVLW 0 + ADDWFC _watch_cnt+2, 1 + ADDWFC _watch_cnt+3, 1 +;main.c,104 :: watch_swr(); + CALL _watch_swr+0 +;main.c,105 :: } +L_main19: +;main.c,107 :: if(Tick>=disp_cnt){ // Display off + MOVF _disp_cnt+3, 0 + SUBWF _Tick+3, 0 + BTFSS STATUS+0, 2 + GOTO L__main256 + MOVF _disp_cnt+2, 0 + SUBWF _Tick+2, 0 + BTFSS STATUS+0, 2 + GOTO L__main256 + MOVF _disp_cnt+1, 0 + SUBWF _Tick+1, 0 + BTFSS STATUS+0, 2 + GOTO L__main256 + MOVF _disp_cnt+0, 0 + SUBWF _Tick+0, 0 +L__main256: + BTFSS STATUS+0, 0 + GOTO L_main20 +;main.c,109 :: OLED_PWD = 0; + BCF LATA4_bit+0, BitPos(LATA4_bit+0) +;main.c,110 :: } +L_main20: +;main.c,112 :: if(Tick>=off_cnt){ // Go to power off + MOVF _off_cnt+3, 0 + SUBWF _Tick+3, 0 + BTFSS STATUS+0, 2 + GOTO L__main257 + MOVF _off_cnt+2, 0 + SUBWF _Tick+2, 0 + BTFSS STATUS+0, 2 + GOTO L__main257 + MOVF _off_cnt+1, 0 + SUBWF _Tick+1, 0 + BTFSS STATUS+0, 2 + GOTO L__main257 + MOVF _off_cnt+0, 0 + SUBWF _Tick+0, 0 +L__main257: + BTFSS STATUS+0, 0 + GOTO L_main21 +;main.c,113 :: power_off(); + CALL _power_off+0 +;main.c,114 :: } +L_main21: +;main.c,116 :: if(B_short){ + BTFSS _B_short+0, BitPos(_B_short+0) + GOTO L_main22 +;main.c,117 :: if(OLED_PWD) Btn_short(); + BTFSS LATA4_bit+0, BitPos(LATA4_bit+0) + GOTO L_main23 + CALL _Btn_short+0 + GOTO L_main24 +L_main23: +;main.c,118 :: else oled_start(); + CALL _oled_start+0 +L_main24: +;main.c,119 :: } +L_main22: +;main.c,120 :: if(B_long){ + BTFSS _B_long+0, BitPos(_B_long+0) + GOTO L_main25 +;main.c,121 :: if(OLED_PWD) Btn_long(); + BTFSS LATA4_bit+0, BitPos(LATA4_bit+0) + GOTO L_main26 + CALL _Btn_long+0 + GOTO L_main27 +L_main26: +;main.c,122 :: else oled_start(); + CALL _oled_start+0 +L_main27: +;main.c,123 :: } +L_main25: +;main.c,124 :: if(B_xlong){ + BTFSS _B_xlong+0, BitPos(_B_xlong+0) + GOTO L_main28 +;main.c,125 :: if(OLED_PWD) Btn_xlong(); + BTFSS LATA4_bit+0, BitPos(LATA4_bit+0) + GOTO L_main29 + CALL _Btn_xlong+0 + GOTO L_main30 +L_main29: +;main.c,126 :: else oled_start(); + CALL _oled_start+0 +L_main30: +;main.c,127 :: } +L_main28: +;main.c,129 :: if(E_short){ + BTFSS _E_short+0, BitPos(_E_short+0) + GOTO L_main31 +;main.c,130 :: if(OLED_PWD==0) oled_start(); + BTFSC LATA4_bit+0, BitPos(LATA4_bit+0) + GOTO L_main32 + CALL _oled_start+0 +L_main32: +;main.c,131 :: Btn_short(); + CALL _Btn_short+0 +;main.c,132 :: } +L_main31: +;main.c,133 :: if(E_long){ + BTFSS _E_long+0, BitPos(_E_long+0) + GOTO L_main33 +;main.c,134 :: if(OLED_PWD==0) { Ext_long(); oled_start(); } + BTFSC LATA4_bit+0, BitPos(LATA4_bit+0) + GOTO L_main34 + CALL _Ext_long+0 + CALL _oled_start+0 + GOTO L_main35 +L_main34: +;main.c,135 :: else Btn_long(); + CALL _Btn_long+0 +L_main35: +;main.c,136 :: } +L_main33: +;main.c,138 :: } // while(1) + GOTO L_main16 +;main.c,139 :: } // main +L_end_main: + GOTO $+0 +; end of _main + +_oled_start: + +;main.c,142 :: void oled_start(){ +;main.c,143 :: OLED_PWD = 1; + BSF LATA4_bit+0, BitPos(LATA4_bit+0) +;main.c,145 :: Delay_ms(200); + MOVLW 9 + MOVWF R11 + MOVLW 30 + MOVWF R12 + MOVLW 228 + MOVWF R13 +L_oled_start36: + DECFSZ R13, 1 + GOTO L_oled_start36 + DECFSZ R12, 1 + GOTO L_oled_start36 + DECFSZ R11, 1 + GOTO L_oled_start36 + NOP +;main.c,146 :: Soft_I2C_init(); + CALL _Soft_I2C_Init+0 +;main.c,147 :: Delay_ms(10); + MOVLW 104 + MOVWF R12 + MOVLW 228 + MOVWF R13 +L_oled_start37: + DECFSZ R13, 1 + GOTO L_oled_start37 + DECFSZ R12, 1 + GOTO L_oled_start37 + NOP +;main.c,148 :: oled_init(); + CALL _oled_init+0 +;main.c,150 :: if(gre){ + BTFSS _gre+0, BitPos(_gre+0) + GOTO L_oled_start38 +;main.c,151 :: Greating(); + CALL _Greating+0 +;main.c,152 :: gre = 0; + BCF _gre+0, BitPos(_gre+0) +;main.c,153 :: oled_clear(); + CALL _oled_clear+0 +;main.c,154 :: } +L_oled_start38: +;main.c,155 :: oled_wr_str(0, 0, "PWR W", 9); + CLRF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr1_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr1_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 9 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,156 :: oled_bat(); + CALL _oled_bat+0 +;main.c,157 :: oled_wr_str(2, 0, "SWR ", 9); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr2_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr2_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 9 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,158 :: oled_wr_str(0, 42, "=", 1); + CLRF FARG_oled_wr_str+0 + MOVLW 42 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr3_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr3_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,159 :: oled_wr_str(2, 42, "=", 1); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 42 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr4_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr4_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,160 :: Voltage_old = 9999; + MOVLW 15 + MOVWF _Voltage_old+0 + MOVLW 39 + MOVWF _Voltage_old+1 +;main.c,161 :: SWR_fixed_old = 100; + MOVLW 100 + MOVWF _SWR_fixed_old+0 + MOVLW 0 + MOVWF _SWR_fixed_old+1 +;main.c,162 :: PWR_fixed_old = 9999; + MOVLW 15 + MOVWF _PWR_fixed_old+0 + MOVLW 39 + MOVWF _PWR_fixed_old+1 +;main.c,163 :: SWR_ind = 0; + CLRF _SWR_ind+0 + CLRF _SWR_ind+1 +;main.c,164 :: draw_swr(SWR_ind); + CLRF FARG_draw_swr+0 + CLRF FARG_draw_swr+1 + CALL _draw_swr+0 +;main.c,165 :: volt_cnt = Tick + 1; + MOVLW 1 + ADDWF _Tick+0, 0 + MOVWF _volt_cnt+0 + MOVLW 0 + ADDWFC _Tick+1, 0 + MOVWF _volt_cnt+1 + MOVLW 0 + ADDWFC _Tick+2, 0 + MOVWF _volt_cnt+2 + MOVLW 0 + ADDWFC _Tick+3, 0 + MOVWF _volt_cnt+3 +;main.c,166 :: watch_cnt = Tick; + MOVF _Tick+0, 0 + MOVWF _watch_cnt+0 + MOVF _Tick+1, 0 + MOVWF _watch_cnt+1 + MOVF _Tick+2, 0 + MOVWF _watch_cnt+2 + MOVF _Tick+3, 0 + MOVWF _watch_cnt+3 +;main.c,167 :: B_short = 0; B_long = 0; B_xlong = 0; + BCF _B_short+0, BitPos(_B_short+0) + BCF _B_long+0, BitPos(_B_long+0) + BCF _B_xlong+0, BitPos(_B_xlong+0) +;main.c,168 :: disp_cnt = Tick + Disp_time*1000; + MOVF _Disp_time+0, 0 + MOVWF R0 + MOVF _Disp_time+1, 0 + MOVWF R1 + MOVF _Disp_time+2, 0 + MOVWF R2 + MOVF _Disp_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _disp_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _disp_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _disp_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _disp_cnt+3 +;main.c,169 :: off_cnt = Tick + Off_time*1000; + MOVF _Off_time+0, 0 + MOVWF R0 + MOVF _Off_time+1, 0 + MOVWF R1 + MOVF _Off_time+2, 0 + MOVWF R2 + MOVF _Off_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _off_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _off_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _off_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _off_cnt+3 +;main.c,170 :: return; +;main.c,171 :: } +L_end_oled_start: + RETURN +; end of _oled_start + +_watch_swr: + +;main.c,174 :: void watch_swr(void){ +;main.c,176 :: int delta = Auto_delta - 100; + MOVLW 100 + SUBWF _Auto_delta+0, 0 + MOVWF watch_swr_delta_L0+0 + MOVLW 0 + SUBWFB _Auto_delta+1, 0 + MOVWF watch_swr_delta_L0+1 +;main.c,179 :: Delay_ms(50); + MOVLW 3 + MOVWF R11 + MOVLW 8 + MOVWF R12 + MOVLW 119 + MOVWF R13 +L_watch_swr39: + DECFSZ R13, 1 + GOTO L_watch_swr39 + DECFSZ R12, 1 + GOTO L_watch_swr39 + DECFSZ R11, 1 + GOTO L_watch_swr39 +;main.c,181 :: cnt = 600; + MOVLW 88 + MOVWF watch_swr_cnt_L0+0 +;main.c,182 :: PWR_fixed = 0; + CLRF watch_swr_PWR_fixed_L0+0 + CLRF watch_swr_PWR_fixed_L0+1 +;main.c,183 :: SWR_fixed = 0; + CLRF watch_swr_SWR_fixed_L0+0 + CLRF watch_swr_SWR_fixed_L0+1 +;main.c,184 :: for(peak_cnt=0; peak_cntPWR_fixed) {PWR_fixed = PWR; SWR_fixed = SWR;} + MOVLW 128 + XORWF watch_swr_PWR_fixed_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _PWR+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr260 + MOVF _PWR+0, 0 + SUBWF watch_swr_PWR_fixed_L0+0, 0 +L__watch_swr260: + BTFSC STATUS+0, 0 + GOTO L_watch_swr43 + MOVF _PWR+0, 0 + MOVWF watch_swr_PWR_fixed_L0+0 + MOVF _PWR+1, 0 + MOVWF watch_swr_PWR_fixed_L0+1 + MOVF _SWR+0, 0 + MOVWF watch_swr_SWR_fixed_L0+0 + MOVF _SWR+1, 0 + MOVWF watch_swr_SWR_fixed_L0+1 +L_watch_swr43: +;main.c,187 :: Delay_ms(1); + MOVLW 11 + MOVWF R12 + MOVLW 98 + MOVWF R13 +L_watch_swr44: + DECFSZ R13, 1 + GOTO L_watch_swr44 + DECFSZ R12, 1 + GOTO L_watch_swr44 + NOP +;main.c,184 :: for(peak_cnt=0; peak_cnt0){ + MOVLW 128 + MOVWF R0 + MOVLW 128 + XORWF watch_swr_PWR_fixed_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr261 + MOVF watch_swr_PWR_fixed_L0+0, 0 + SUBLW 0 +L__watch_swr261: + BTFSC STATUS+0, 0 + GOTO L_watch_swr45 +;main.c,191 :: if(OLED_PWD){ + BTFSS LATA4_bit+0, BitPos(LATA4_bit+0) + GOTO L_watch_swr46 +;main.c,192 :: disp_cnt = Tick + Disp_time*1000; + MOVF _Disp_time+0, 0 + MOVWF R0 + MOVF _Disp_time+1, 0 + MOVWF R1 + MOVF _Disp_time+2, 0 + MOVWF R2 + MOVF _Disp_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _disp_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _disp_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _disp_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _disp_cnt+3 +;main.c,193 :: off_cnt = Tick + Off_time*1000; + MOVF _Off_time+0, 0 + MOVWF R0 + MOVF _Off_time+1, 0 + MOVWF R1 + MOVF _Off_time+2, 0 + MOVWF R2 + MOVF _Off_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _off_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _off_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _off_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _off_cnt+3 +;main.c,194 :: } + GOTO L_watch_swr47 +L_watch_swr46: +;main.c,195 :: else oled_start(); + CALL _oled_start+0 +L_watch_swr47: +;main.c,196 :: }; +L_watch_swr45: +;main.c,198 :: if(PWR_fixed!=PWR_fixed_old){ + MOVF watch_swr_PWR_fixed_L0+1, 0 + XORWF _PWR_fixed_old+1, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr262 + MOVF _PWR_fixed_old+0, 0 + XORWF watch_swr_PWR_fixed_L0+0, 0 +L__watch_swr262: + BTFSC STATUS+0, 2 + GOTO L_watch_swr48 +;main.c,199 :: if(Overflow) + BTFSS _Overflow+0, BitPos(_Overflow+0) + GOTO L_watch_swr49 +;main.c,200 :: oled_wr_str(0, 42, ">", 1); + CLRF FARG_oled_wr_str+0 + MOVLW 42 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr5_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr5_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 + GOTO L_watch_swr50 +L_watch_swr49: +;main.c,202 :: oled_wr_str(0, 42, "=", 1); + CLRF FARG_oled_wr_str+0 + MOVLW 42 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr6_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr6_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +L_watch_swr50: +;main.c,203 :: PWR_fixed_old = PWR_fixed; + MOVF watch_swr_PWR_fixed_L0+0, 0 + MOVWF _PWR_fixed_old+0 + MOVF watch_swr_PWR_fixed_L0+1, 0 + MOVWF _PWR_fixed_old+1 +;main.c,204 :: draw_power(PWR_fixed); + MOVF watch_swr_PWR_fixed_L0+0, 0 + MOVWF FARG_draw_power+0 + MOVF watch_swr_PWR_fixed_L0+1, 0 + MOVWF FARG_draw_power+1 + CALL _draw_power+0 +;main.c,205 :: } +L_watch_swr48: +;main.c,207 :: if(PWR_fixed<10){ + MOVLW 128 + XORWF watch_swr_PWR_fixed_L0+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr263 + MOVLW 10 + SUBWF watch_swr_PWR_fixed_L0+0, 0 +L__watch_swr263: + BTFSC STATUS+0, 0 + GOTO L_watch_swr51 +;main.c,208 :: SWR_fixed = 0; + CLRF watch_swr_SWR_fixed_L0+0 + CLRF watch_swr_SWR_fixed_L0+1 +;main.c,210 :: draw_swr(SWR_ind); + MOVF _SWR_ind+0, 0 + MOVWF FARG_draw_swr+0 + MOVF _SWR_ind+1, 0 + MOVWF FARG_draw_swr+1 + CALL _draw_swr+0 +;main.c,211 :: return; + GOTO L_end_watch_swr +;main.c,212 :: } +L_watch_swr51: +;main.c,214 :: if(Overflow){ + BTFSS _Overflow+0, BitPos(_Overflow+0) + GOTO L_watch_swr52 +;main.c,215 :: for(cnt=3; cnt!=0; cnt--){ + MOVLW 3 + MOVWF watch_swr_cnt_L0+0 +L_watch_swr53: + MOVF watch_swr_cnt_L0+0, 0 + XORLW 0 + BTFSC STATUS+0, 2 + GOTO L_watch_swr54 +;main.c,216 :: oled_wr_str(2, 6, "OVERLOAD ", 9); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 6 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr7_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr7_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 9 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,217 :: Delay_ms(500); + MOVLW 21 + MOVWF R11 + MOVLW 75 + MOVWF R12 + MOVLW 190 + MOVWF R13 +L_watch_swr56: + DECFSZ R13, 1 + GOTO L_watch_swr56 + DECFSZ R12, 1 + GOTO L_watch_swr56 + DECFSZ R11, 1 + GOTO L_watch_swr56 + NOP +;main.c,218 :: oled_wr_str(2, 0, " ", 9); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr8_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr8_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 9 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,219 :: Delay_ms(500); + MOVLW 21 + MOVWF R11 + MOVLW 75 + MOVWF R12 + MOVLW 190 + MOVWF R13 +L_watch_swr57: + DECFSZ R13, 1 + GOTO L_watch_swr57 + DECFSZ R12, 1 + GOTO L_watch_swr57 + DECFSZ R11, 1 + GOTO L_watch_swr57 + NOP +;main.c,215 :: for(cnt=3; cnt!=0; cnt--){ + DECF watch_swr_cnt_L0+0, 1 +;main.c,220 :: } + GOTO L_watch_swr53 +L_watch_swr54: +;main.c,221 :: oled_wr_str(2, 0, "SWR ", 9); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr9_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr9_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 9 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,222 :: oled_wr_str(2, 42, "=", 1); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 42 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr10_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr10_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,223 :: draw_swr(SWR_fixed); + MOVF watch_swr_SWR_fixed_L0+0, 0 + MOVWF FARG_draw_swr+0 + MOVF watch_swr_SWR_fixed_L0+1, 0 + MOVWF FARG_draw_swr+1 + CALL _draw_swr+0 +;main.c,224 :: Delay_ms(500); + MOVLW 21 + MOVWF R11 + MOVLW 75 + MOVWF R12 + MOVLW 190 + MOVWF R13 +L_watch_swr58: + DECFSZ R13, 1 + GOTO L_watch_swr58 + DECFSZ R12, 1 + GOTO L_watch_swr58 + DECFSZ R11, 1 + GOTO L_watch_swr58 + NOP +;main.c,225 :: Overflow = 0; + BCF _Overflow+0, BitPos(_Overflow+0) +;main.c,226 :: } + GOTO L_watch_swr59 +L_watch_swr52: +;main.c,228 :: else if(PWR_fixed>=min_for_start && PWR_fixed=Auto_delta || SWR_Fixed>900 ) { + MOVLW 128 + XORWF watch_swr_PWR_fixed_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _min_for_start+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr264 + MOVF _min_for_start+0, 0 + SUBWF watch_swr_PWR_fixed_L0+0, 0 +L__watch_swr264: + BTFSS STATUS+0, 0 + GOTO L__watch_swr238 + MOVLW 128 + XORWF watch_swr_PWR_fixed_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _max_for_start+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr265 + MOVF _max_for_start+0, 0 + SUBWF watch_swr_PWR_fixed_L0+0, 0 +L__watch_swr265: + BTFSC STATUS+0, 0 + GOTO L__watch_swr238 + MOVLW 128 + XORWF watch_swr_SWR_fixed_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _Auto_delta+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr266 + MOVF _Auto_delta+0, 0 + SUBWF watch_swr_SWR_fixed_L0+0, 0 +L__watch_swr266: + BTFSS STATUS+0, 0 + GOTO L__watch_swr238 + GOTO L__watch_swr237 +L__watch_swr238: + MOVLW 128 + XORLW 3 + MOVWF R0 + MOVLW 128 + XORWF watch_swr_SWR_fixed_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr267 + MOVF watch_swr_SWR_fixed_L0+0, 0 + SUBLW 132 +L__watch_swr267: + BTFSS STATUS+0, 0 + GOTO L__watch_swr237 + GOTO L_watch_swr64 +L__watch_swr237: +;main.c,229 :: if( (SWR_fixed>SWR_fixed_old && (SWR_fixed-SWR_fixed_old)>delta) || (SWR_fixeddelta) || SWR_Fixed>900 ) { + MOVLW 128 + XORWF _SWR_fixed_old+1, 0 + MOVWF R0 + MOVLW 128 + XORWF watch_swr_SWR_fixed_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr268 + MOVF watch_swr_SWR_fixed_L0+0, 0 + SUBWF _SWR_fixed_old+0, 0 +L__watch_swr268: + BTFSC STATUS+0, 0 + GOTO L__watch_swr236 + MOVF _SWR_fixed_old+0, 0 + SUBWF watch_swr_SWR_fixed_L0+0, 0 + MOVWF R1 + MOVF _SWR_fixed_old+1, 0 + SUBWFB watch_swr_SWR_fixed_L0+1, 0 + MOVWF R2 + MOVLW 128 + XORWF watch_swr_delta_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF R2, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr269 + MOVF R1, 0 + SUBWF watch_swr_delta_L0+0, 0 +L__watch_swr269: + BTFSC STATUS+0, 0 + GOTO L__watch_swr236 + GOTO L__watch_swr234 +L__watch_swr236: + MOVLW 128 + XORWF watch_swr_SWR_fixed_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _SWR_fixed_old+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr270 + MOVF _SWR_fixed_old+0, 0 + SUBWF watch_swr_SWR_fixed_L0+0, 0 +L__watch_swr270: + BTFSC STATUS+0, 0 + GOTO L__watch_swr235 + MOVF watch_swr_SWR_fixed_L0+0, 0 + SUBWF _SWR_fixed_old+0, 0 + MOVWF R1 + MOVF watch_swr_SWR_fixed_L0+1, 0 + SUBWFB _SWR_fixed_old+1, 0 + MOVWF R2 + MOVLW 128 + XORWF watch_swr_delta_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF R2, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr271 + MOVF R1, 0 + SUBWF watch_swr_delta_L0+0, 0 +L__watch_swr271: + BTFSC STATUS+0, 0 + GOTO L__watch_swr235 + GOTO L__watch_swr234 +L__watch_swr235: + MOVLW 128 + XORLW 3 + MOVWF R0 + MOVLW 128 + XORWF watch_swr_SWR_fixed_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr272 + MOVF watch_swr_SWR_fixed_L0+0, 0 + SUBLW 132 +L__watch_swr272: + BTFSS STATUS+0, 0 + GOTO L__watch_swr234 + GOTO L_watch_swr71 +L__watch_swr234: +;main.c,230 :: Btn_long(); + CALL _Btn_long+0 +;main.c,231 :: return; + GOTO L_end_watch_swr +;main.c,232 :: } +L_watch_swr71: +;main.c,233 :: } +L_watch_swr64: +L_watch_swr59: +;main.c,235 :: if(SWR_fixed>99 && SWR_fixed!=SWR_ind){ + MOVLW 128 + MOVWF R0 + MOVLW 128 + XORWF watch_swr_SWR_fixed_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr273 + MOVF watch_swr_SWR_fixed_L0+0, 0 + SUBLW 99 +L__watch_swr273: + BTFSC STATUS+0, 0 + GOTO L_watch_swr74 + MOVF watch_swr_SWR_fixed_L0+1, 0 + XORWF _SWR_ind+1, 0 + BTFSS STATUS+0, 2 + GOTO L__watch_swr274 + MOVF _SWR_ind+0, 0 + XORWF watch_swr_SWR_fixed_L0+0, 0 +L__watch_swr274: + BTFSC STATUS+0, 2 + GOTO L_watch_swr74 +L__watch_swr233: +;main.c,236 :: SWR_ind = SWR_fixed; + MOVF watch_swr_SWR_fixed_L0+0, 0 + MOVWF _SWR_ind+0 + MOVF watch_swr_SWR_fixed_L0+1, 0 + MOVWF _SWR_ind+1 +;main.c,237 :: draw_swr(SWR_ind); + MOVF watch_swr_SWR_fixed_L0+0, 0 + MOVWF FARG_draw_swr+0 + MOVF watch_swr_SWR_fixed_L0+1, 0 + MOVWF FARG_draw_swr+1 + CALL _draw_swr+0 +;main.c,238 :: } +L_watch_swr74: +;main.c,240 :: return; +;main.c,241 :: } +L_end_watch_swr: + RETURN +; end of _watch_swr + +_draw_swr: + +;main.c,243 :: void draw_swr(unsigned int s){ +;main.c,244 :: if(s==0) + MOVLW 0 + XORWF FARG_draw_swr_s+1, 0 + BTFSS STATUS+0, 2 + GOTO L__draw_swr276 + MOVLW 0 + XORWF FARG_draw_swr_s+0, 0 +L__draw_swr276: + BTFSS STATUS+0, 2 + GOTO L_draw_swr75 +;main.c,245 :: oled_wr_str(2, 60, "0.00", 4); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 60 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr11_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr11_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 4 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 + GOTO L_draw_swr76 +L_draw_swr75: +;main.c,247 :: IntToStr(s, txt_2); + MOVF FARG_draw_swr_s+0, 0 + MOVWF FARG_IntToStr_input+0 + MOVF FARG_draw_swr_s+1, 0 + MOVWF FARG_IntToStr_input+1 + MOVLW _txt_2+0 + MOVWF FARG_IntToStr_output+0 + MOVLW hi_addr(_txt_2+0) + MOVWF FARG_IntToStr_output+1 + CALL _IntToStr+0 +;main.c,248 :: txt[0] = txt_2[3]; + MOVF _txt_2+3, 0 + MOVWF _txt+0 +;main.c,249 :: txt[1] = '.'; + MOVLW 46 + MOVWF _txt+1 +;main.c,250 :: txt[2] = txt_2[4]; + MOVF _txt_2+4, 0 + MOVWF _txt+2 +;main.c,251 :: txt[3] = txt_2[5]; + MOVF _txt_2+5, 0 + MOVWF _txt+3 +;main.c,253 :: oled_wr_str(2, 60, txt, 4); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 60 + MOVWF FARG_oled_wr_str+0 + MOVLW _txt+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(_txt+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 4 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,254 :: } +L_draw_swr76: +;main.c,255 :: return; +;main.c,256 :: } +L_end_draw_swr: + RETURN +; end of _draw_swr + +_draw_power: + +;main.c,258 :: void draw_power(unsigned int p){ +;main.c,260 :: if(p==0){ + MOVLW 0 + XORWF FARG_draw_power_p+1, 0 + BTFSS STATUS+0, 2 + GOTO L__draw_power278 + MOVLW 0 + XORWF FARG_draw_power_p+0, 0 +L__draw_power278: + BTFSS STATUS+0, 2 + GOTO L_draw_power77 +;main.c,261 :: oled_wr_str(0, 60, "0.0", 3); + CLRF FARG_oled_wr_str+0 + MOVLW 60 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr12_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr12_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 3 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,262 :: return; + GOTO L_end_draw_power +;main.c,263 :: } +L_draw_power77: +;main.c,264 :: else if(p<10){ // <1 W + MOVLW 0 + SUBWF FARG_draw_power_p+1, 0 + BTFSS STATUS+0, 2 + GOTO L__draw_power279 + MOVLW 10 + SUBWF FARG_draw_power_p+0, 0 +L__draw_power279: + BTFSC STATUS+0, 0 + GOTO L_draw_power79 +;main.c,265 :: IntToStr(p, txt_2); + MOVF FARG_draw_power_p+0, 0 + MOVWF FARG_IntToStr_input+0 + MOVF FARG_draw_power_p+1, 0 + MOVWF FARG_IntToStr_input+1 + MOVLW _txt_2+0 + MOVWF FARG_IntToStr_output+0 + MOVLW hi_addr(_txt_2+0) + MOVWF FARG_IntToStr_output+1 + CALL _IntToStr+0 +;main.c,266 :: txt[0] = '0'; + MOVLW 48 + MOVWF _txt+0 +;main.c,267 :: txt[1] = '.'; + MOVLW 46 + MOVWF _txt+1 +;main.c,268 :: txt[2] = txt_2[5]; + MOVF _txt_2+5, 0 + MOVWF _txt+2 +;main.c,269 :: } + GOTO L_draw_power80 +L_draw_power79: +;main.c,270 :: else if(p<100){ // <10W + MOVLW 0 + SUBWF FARG_draw_power_p+1, 0 + BTFSS STATUS+0, 2 + GOTO L__draw_power280 + MOVLW 100 + SUBWF FARG_draw_power_p+0, 0 +L__draw_power280: + BTFSC STATUS+0, 0 + GOTO L_draw_power81 +;main.c,271 :: IntToStr(p, txt_2); + MOVF FARG_draw_power_p+0, 0 + MOVWF FARG_IntToStr_input+0 + MOVF FARG_draw_power_p+1, 0 + MOVWF FARG_IntToStr_input+1 + MOVLW _txt_2+0 + MOVWF FARG_IntToStr_output+0 + MOVLW hi_addr(_txt_2+0) + MOVWF FARG_IntToStr_output+1 + CALL _IntToStr+0 +;main.c,272 :: txt[0] = txt_2[4]; + MOVF _txt_2+4, 0 + MOVWF _txt+0 +;main.c,273 :: txt[1] = '.'; + MOVLW 46 + MOVWF _txt+1 +;main.c,274 :: txt[2] = txt_2[5]; + MOVF _txt_2+5, 0 + MOVWF _txt+2 +;main.c,275 :: } + GOTO L_draw_power82 +L_draw_power81: +;main.c,277 :: p += 5; + MOVLW 5 + ADDWF FARG_draw_power_p+0, 0 + MOVWF R0 + MOVLW 0 + ADDWFC FARG_draw_power_p+1, 0 + MOVWF R1 + MOVF R0, 0 + MOVWF FARG_draw_power_p+0 + MOVF R1, 0 + MOVWF FARG_draw_power_p+1 +;main.c,278 :: IntToStr(p, txt_2); + MOVF R0, 0 + MOVWF FARG_IntToStr_input+0 + MOVF R1, 0 + MOVWF FARG_IntToStr_input+1 + MOVLW _txt_2+0 + MOVWF FARG_IntToStr_output+0 + MOVLW hi_addr(_txt_2+0) + MOVWF FARG_IntToStr_output+1 + CALL _IntToStr+0 +;main.c,279 :: txt[0] = ' '; + MOVLW 32 + MOVWF _txt+0 +;main.c,280 :: txt[1] = txt_2[3]; + MOVF _txt_2+3, 0 + MOVWF _txt+1 +;main.c,281 :: txt[2] = txt_2[4]; + MOVF _txt_2+4, 0 + MOVWF _txt+2 +;main.c,282 :: } +L_draw_power82: +L_draw_power80: +;main.c,283 :: oled_wr_str(0, 60, txt, 3); + CLRF FARG_oled_wr_str+0 + MOVLW 60 + MOVWF FARG_oled_wr_str+0 + MOVLW _txt+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(_txt+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 3 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,284 :: return; +;main.c,285 :: } +L_end_draw_power: + RETURN +; end of _draw_power + +_Voltage_show: + +;main.c,287 :: void Voltage_show(){ +;main.c,288 :: get_batt(); + CALL _get_batt+0 +;main.c,289 :: if(Voltage != Voltage_old) { Voltage_old = Voltage; oled_voltage(Voltage); } + MOVF _Voltage+1, 0 + XORWF _Voltage_old+1, 0 + BTFSS STATUS+0, 2 + GOTO L__Voltage_show282 + MOVF _Voltage_old+0, 0 + XORWF _Voltage+0, 0 +L__Voltage_show282: + BTFSC STATUS+0, 2 + GOTO L_Voltage_show83 + MOVF _Voltage+0, 0 + MOVWF _Voltage_old+0 + MOVF _Voltage+1, 0 + MOVWF _Voltage_old+1 + MOVF _Voltage+0, 0 + MOVWF FARG_oled_voltage+0 + MOVF _Voltage+1, 0 + MOVWF FARG_oled_voltage+1 + CALL _oled_voltage+0 +L_Voltage_show83: +;main.c,292 :: if(Voltage>3700){ + MOVLW 128 + XORLW 14 + MOVWF R0 + MOVLW 128 + XORWF _Voltage+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__Voltage_show283 + MOVF _Voltage+0, 0 + SUBLW 116 +L__Voltage_show283: + BTFSC STATUS+0, 0 + GOTO L_Voltage_show84 +;main.c,293 :: Green = 0; + BCF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,294 :: Red = 1; + BSF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,295 :: Delay_ms(30); + MOVLW 2 + MOVWF R11 + MOVLW 56 + MOVWF R12 + MOVLW 173 + MOVWF R13 +L_Voltage_show85: + DECFSZ R13, 1 + GOTO L_Voltage_show85 + DECFSZ R12, 1 + GOTO L_Voltage_show85 + DECFSZ R11, 1 + GOTO L_Voltage_show85 +;main.c,296 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,297 :: Red = 1; + BSF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,298 :: } + GOTO L_Voltage_show86 +L_Voltage_show84: +;main.c,299 :: else if(Voltage>3590){ + MOVLW 128 + XORLW 14 + MOVWF R0 + MOVLW 128 + XORWF _Voltage+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__Voltage_show284 + MOVF _Voltage+0, 0 + SUBLW 6 +L__Voltage_show284: + BTFSC STATUS+0, 0 + GOTO L_Voltage_show87 +;main.c,300 :: Green = 0; + BCF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,301 :: Red = 0; + BCF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,302 :: Delay_ms(30); + MOVLW 2 + MOVWF R11 + MOVLW 56 + MOVWF R12 + MOVLW 173 + MOVWF R13 +L_Voltage_show88: + DECFSZ R13, 1 + GOTO L_Voltage_show88 + DECFSZ R12, 1 + GOTO L_Voltage_show88 + DECFSZ R11, 1 + GOTO L_Voltage_show88 +;main.c,303 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,304 :: Red = 1; + BSF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,305 :: } + GOTO L_Voltage_show89 +L_Voltage_show87: +;main.c,307 :: Red = 0; + BCF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,308 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,309 :: Delay_ms(30); + MOVLW 2 + MOVWF R11 + MOVLW 56 + MOVWF R12 + MOVLW 173 + MOVWF R13 +L_Voltage_show90: + DECFSZ R13, 1 + GOTO L_Voltage_show90 + DECFSZ R12, 1 + GOTO L_Voltage_show90 + DECFSZ R11, 1 + GOTO L_Voltage_show90 +;main.c,310 :: Red = 1; + BSF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,311 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,312 :: } +L_Voltage_show89: +L_Voltage_show86: +;main.c,314 :: if(Voltage<3400){ + MOVLW 128 + XORWF _Voltage+1, 0 + MOVWF R0 + MOVLW 128 + XORLW 13 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__Voltage_show285 + MOVLW 72 + SUBWF _Voltage+0, 0 +L__Voltage_show285: + BTFSC STATUS+0, 0 + GOTO L_Voltage_show91 +;main.c,315 :: oled_clear(); + CALL _oled_clear+0 +;main.c,316 :: oled_wr_str(1, 0, " LOW BATT ", 11); + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr13_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr13_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 11 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,317 :: Delay_ms(2000); + MOVLW 82 + MOVWF R11 + MOVLW 43 + MOVWF R12 + MOVLW 0 + MOVWF R13 +L_Voltage_show92: + DECFSZ R13, 1 + GOTO L_Voltage_show92 + DECFSZ R12, 1 + GOTO L_Voltage_show92 + DECFSZ R11, 1 + GOTO L_Voltage_show92 + NOP +;main.c,318 :: OLED_PWD = 0; + BCF LATA4_bit+0, BitPos(LATA4_bit+0) +;main.c,319 :: power_off(); + CALL _power_off+0 +;main.c,320 :: } +L_Voltage_show91: +;main.c,321 :: return; +;main.c,322 :: } +L_end_Voltage_show: + RETURN +; end of _Voltage_show + +_Btn_xlong: + +;main.c,324 :: void Btn_xlong(){ +;main.c,325 :: B_xlong = 0; + BCF _B_xlong+0, BitPos(_B_xlong+0) +;main.c,326 :: btn_cnt = 0; + CLRF _btn_cnt+0 + CLRF _btn_cnt+1 + CLRF _btn_cnt+2 + CLRF _btn_cnt+3 +;main.c,327 :: oled_clear(); + CALL _oled_clear+0 +;main.c,328 :: oled_wr_str(1, 0, " POWER OFF ", 11); + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr14_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr14_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 11 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,329 :: Delay_ms(2000); + MOVLW 82 + MOVWF R11 + MOVLW 43 + MOVWF R12 + MOVLW 0 + MOVWF R13 +L_Btn_xlong93: + DECFSZ R13, 1 + GOTO L_Btn_xlong93 + DECFSZ R12, 1 + GOTO L_Btn_xlong93 + DECFSZ R11, 1 + GOTO L_Btn_xlong93 + NOP +;main.c,330 :: power_off(); + CALL _power_off+0 +;main.c,331 :: return; +;main.c,332 :: } +L_end_Btn_xlong: + RETURN +; end of _Btn_xlong + +_Btn_long: + +;main.c,334 :: void Btn_long(){ +;main.c,335 :: Green = 0; + BCF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,336 :: oled_wr_str(2, 0, "TUNE ", 9); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr15_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr15_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 9 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,337 :: tune(); + CALL _tune+0 +;main.c,338 :: SWR_ind = SWR; + MOVF _SWR+0, 0 + MOVWF _SWR_ind+0 + MOVF _SWR+1, 0 + MOVWF _SWR_ind+1 +;main.c,339 :: SWR_fixed_old = SWR; + MOVF _SWR+0, 0 + MOVWF _SWR_fixed_old+0 + MOVF _SWR+1, 0 + MOVWF _SWR_fixed_old+1 +;main.c,340 :: oled_wr_str(2, 0, "SWR ", 4); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr16_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr16_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 4 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,341 :: oled_wr_str(2, 42, "=", 1); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 42 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr17_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr17_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,342 :: draw_swr(SWR_ind); + MOVF _SWR_ind+0, 0 + MOVWF FARG_draw_swr_s+0 + MOVF _SWR_ind+1, 0 + MOVWF FARG_draw_swr_s+1 + CALL _draw_swr+0 +;main.c,343 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,344 :: B_long = 0; + BCF _B_long+0, BitPos(_B_long+0) +;main.c,345 :: E_long = 0; + BCF _E_long+0, BitPos(_E_long+0) +;main.c,346 :: btn_1_cnt = 0; + CLRF _btn_1_cnt+0 +;main.c,347 :: volt_cnt = Tick; + MOVF _Tick+0, 0 + MOVWF _volt_cnt+0 + MOVF _Tick+1, 0 + MOVWF _volt_cnt+1 + MOVF _Tick+2, 0 + MOVWF _volt_cnt+2 + MOVF _Tick+3, 0 + MOVWF _volt_cnt+3 +;main.c,348 :: watch_cnt = Tick; + MOVF _Tick+0, 0 + MOVWF _watch_cnt+0 + MOVF _Tick+1, 0 + MOVWF _watch_cnt+1 + MOVF _Tick+2, 0 + MOVWF _watch_cnt+2 + MOVF _Tick+3, 0 + MOVWF _watch_cnt+3 +;main.c,349 :: return; +;main.c,350 :: } +L_end_Btn_long: + RETURN +; end of _Btn_long + +_Ext_long: + +;main.c,352 :: void Ext_long(){ +;main.c,353 :: Green = 0; + BCF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,354 :: OLED_PWD = 1; + BSF LATA4_bit+0, BitPos(LATA4_bit+0) +;main.c,355 :: tune(); + CALL _tune+0 +;main.c,356 :: SWR_ind = SWR; + MOVF _SWR+0, 0 + MOVWF _SWR_ind+0 + MOVF _SWR+1, 0 + MOVWF _SWR_ind+1 +;main.c,357 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,358 :: E_long = 0; + BCF _E_long+0, BitPos(_E_long+0) +;main.c,359 :: return; +;main.c,360 :: } +L_end_Ext_long: + RETURN +; end of _Ext_long + +_Btn_short: + +;main.c,362 :: void Btn_short(){ +;main.c,363 :: Green = 0; + BCF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,364 :: atu_reset(); + CALL _atu_reset+0 +;main.c,365 :: oled_wr_str(2, 0, "RESET ", 9); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr18_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr18_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 9 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,366 :: Delay_ms(600); + MOVLW 25 + MOVWF R11 + MOVLW 90 + MOVWF R12 + MOVLW 177 + MOVWF R13 +L_Btn_short94: + DECFSZ R13, 1 + GOTO L_Btn_short94 + DECFSZ R12, 1 + GOTO L_Btn_short94 + DECFSZ R11, 1 + GOTO L_Btn_short94 + NOP + NOP +;main.c,367 :: oled_wr_str(2, 0, "SWR ", 5); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + CLRF FARG_oled_wr_str+0 + MOVLW ?lstr19_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr19_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 5 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,368 :: oled_wr_str(2, 42, "=", 1); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 42 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr20_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr20_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 1 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,369 :: oled_wr_str(2, 60, "0.00", 4); + MOVLW 2 + MOVWF FARG_oled_wr_str+0 + MOVLW 60 + MOVWF FARG_oled_wr_str+0 + MOVLW ?lstr21_main+0 + MOVWF FARG_oled_wr_str+0 + MOVLW hi_addr(?lstr21_main+0) + MOVWF FARG_oled_wr_str+1 + MOVLW 4 + MOVWF FARG_oled_wr_str+0 + CALL _oled_wr_str+0 +;main.c,370 :: SWR_fixed_old = 100; + MOVLW 100 + MOVWF _SWR_fixed_old+0 + MOVLW 0 + MOVWF _SWR_fixed_old+1 +;main.c,371 :: Delay_ms(300); + MOVLW 13 + MOVWF R11 + MOVLW 45 + MOVWF R12 + MOVLW 215 + MOVWF R13 +L_Btn_short95: + DECFSZ R13, 1 + GOTO L_Btn_short95 + DECFSZ R12, 1 + GOTO L_Btn_short95 + DECFSZ R11, 1 + GOTO L_Btn_short95 + NOP + NOP +;main.c,372 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,373 :: B_short = 0; + BCF _B_short+0, BitPos(_B_short+0) +;main.c,374 :: E_short = 0; + BCF _E_short+0, BitPos(_E_short+0) +;main.c,375 :: btn_1_cnt = 0; + CLRF _btn_1_cnt+0 +;main.c,376 :: volt_cnt = Tick; + MOVF _Tick+0, 0 + MOVWF _volt_cnt+0 + MOVF _Tick+1, 0 + MOVWF _volt_cnt+1 + MOVF _Tick+2, 0 + MOVWF _volt_cnt+2 + MOVF _Tick+3, 0 + MOVWF _volt_cnt+3 +;main.c,377 :: watch_cnt = Tick; + MOVF _Tick+0, 0 + MOVWF _watch_cnt+0 + MOVF _Tick+1, 0 + MOVWF _watch_cnt+1 + MOVF _Tick+2, 0 + MOVWF _watch_cnt+2 + MOVF _Tick+3, 0 + MOVWF _watch_cnt+3 +;main.c,378 :: return; +;main.c,379 :: } +L_end_Btn_short: + RETURN +; end of _Btn_short + +_Greating: + +;main.c,381 :: void Greating(){ +;main.c,382 :: Green = 0; + BCF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,383 :: oled_clear(); + CALL _oled_clear+0 +;main.c,384 :: oled_wr_str_s(1, 0, " DESIGNED BY N7DDC", 18); + MOVLW 1 + MOVWF FARG_oled_wr_str_s+0 + CLRF FARG_oled_wr_str_s+0 + MOVLW ?lstr22_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr22_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 18 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 +;main.c,385 :: oled_wr_str_s(3, 0, " FW VERSION ", 12); + MOVLW 3 + MOVWF FARG_oled_wr_str_s+0 + CLRF FARG_oled_wr_str_s+0 + MOVLW ?lstr23_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr23_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 12 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 +;main.c,386 :: oled_wr_str_s(3, 12*7, FW_VER, 3); + MOVLW 3 + MOVWF FARG_oled_wr_str_s+0 + MOVLW 84 + MOVWF FARG_oled_wr_str_s+0 + MOVLW ?lstr24_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr24_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 3 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 +;main.c,387 :: Delay_ms(3000); + MOVLW 122 + MOVWF R11 + MOVLW 193 + MOVWF R12 + MOVLW 129 + MOVWF R13 +L_Greating96: + DECFSZ R13, 1 + GOTO L_Greating96 + DECFSZ R12, 1 + GOTO L_Greating96 + DECFSZ R11, 1 + GOTO L_Greating96 + NOP + NOP +;main.c,388 :: while(GetButton) asm NOP; +L_Greating97: + BTFSC PORTB+0, 5 + GOTO L__Greating291 + BSF 3, 0 + GOTO L__Greating292 +L__Greating291: + BCF 3, 0 +L__Greating292: + BTFSS 3, 0 + GOTO L_Greating98 + NOP + GOTO L_Greating97 +L_Greating98: +;main.c,389 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,390 :: return; +;main.c,391 :: } +L_end_Greating: + RETURN +; end of _Greating + +_atu_reset: + +;main.c,393 :: void atu_reset(){ +;main.c,394 :: ind = 0; + CLRF _ind+0 +;main.c,395 :: cap = 0; + CLRF _cap+0 +;main.c,396 :: SW = 0; + CLRF _SW+0 +;main.c,397 :: Relay_set(ind, cap, SW); + CLRF FARG_Relay_set+0 + CLRF FARG_Relay_set+0 + CLRF FARG_Relay_set+0 + CALL _Relay_set+0 +;main.c,398 :: return; +;main.c,399 :: } +L_end_atu_reset: + RETURN +; end of _atu_reset + +_Relay_set: + +;main.c,401 :: void Relay_set(char L, char C, char I){ +;main.c,402 :: L_010 = ~L.B0; + BTFSC FARG_Relay_set_L+0, 0 + GOTO L__Relay_set295 + BSF LATD7_bit+0, BitPos(LATD7_bit+0) + GOTO L__Relay_set296 +L__Relay_set295: + BCF LATD7_bit+0, BitPos(LATD7_bit+0) +L__Relay_set296: +;main.c,403 :: L_022 = ~L.B1; + BTFSC FARG_Relay_set_L+0, 1 + GOTO L__Relay_set297 + BSF LATD6_bit+0, BitPos(LATD6_bit+0) + GOTO L__Relay_set298 +L__Relay_set297: + BCF LATD6_bit+0, BitPos(LATD6_bit+0) +L__Relay_set298: +;main.c,404 :: L_045 = ~L.B2; + BTFSC FARG_Relay_set_L+0, 2 + GOTO L__Relay_set299 + BSF LATD5_bit+0, BitPos(LATD5_bit+0) + GOTO L__Relay_set300 +L__Relay_set299: + BCF LATD5_bit+0, BitPos(LATD5_bit+0) +L__Relay_set300: +;main.c,405 :: L_100 = ~L.B3; + BTFSC FARG_Relay_set_L+0, 3 + GOTO L__Relay_set301 + BSF LATD4_bit+0, BitPos(LATD4_bit+0) + GOTO L__Relay_set302 +L__Relay_set301: + BCF LATD4_bit+0, BitPos(LATD4_bit+0) +L__Relay_set302: +;main.c,406 :: L_220 = ~L.B4; + BTFSC FARG_Relay_set_L+0, 4 + GOTO L__Relay_set303 + BSF LATC7_bit+0, BitPos(LATC7_bit+0) + GOTO L__Relay_set304 +L__Relay_set303: + BCF LATC7_bit+0, BitPos(LATC7_bit+0) +L__Relay_set304: +;main.c,407 :: L_450 = ~L.B5; + BTFSC FARG_Relay_set_L+0, 5 + GOTO L__Relay_set305 + BSF LATC6_bit+0, BitPos(LATC6_bit+0) + GOTO L__Relay_set306 +L__Relay_set305: + BCF LATC6_bit+0, BitPos(LATC6_bit+0) +L__Relay_set306: +;main.c,408 :: L_1000 = ~L.B6; + BTFSC FARG_Relay_set_L+0, 6 + GOTO L__Relay_set307 + BSF LATC5_bit+0, BitPos(LATC5_bit+0) + GOTO L__Relay_set308 +L__Relay_set307: + BCF LATC5_bit+0, BitPos(LATC5_bit+0) +L__Relay_set308: +;main.c,410 :: C_22 = ~C.B0; + BTFSC FARG_Relay_set_C+0, 0 + GOTO L__Relay_set309 + BSF LATA5_bit+0, BitPos(LATA5_bit+0) + GOTO L__Relay_set310 +L__Relay_set309: + BCF LATA5_bit+0, BitPos(LATA5_bit+0) +L__Relay_set310: +;main.c,411 :: C_47 = ~C.B1; + BTFSC FARG_Relay_set_C+0, 1 + GOTO L__Relay_set311 + BSF LATE1_bit+0, BitPos(LATE1_bit+0) + GOTO L__Relay_set312 +L__Relay_set311: + BCF LATE1_bit+0, BitPos(LATE1_bit+0) +L__Relay_set312: +;main.c,412 :: C_100 = ~C.B2; + BTFSC FARG_Relay_set_C+0, 2 + GOTO L__Relay_set313 + BSF LATA7_bit+0, BitPos(LATA7_bit+0) + GOTO L__Relay_set314 +L__Relay_set313: + BCF LATA7_bit+0, BitPos(LATA7_bit+0) +L__Relay_set314: +;main.c,413 :: C_220 = ~C.B3; + BTFSC FARG_Relay_set_C+0, 3 + GOTO L__Relay_set315 + BSF LATA6_bit+0, BitPos(LATA6_bit+0) + GOTO L__Relay_set316 +L__Relay_set315: + BCF LATA6_bit+0, BitPos(LATA6_bit+0) +L__Relay_set316: +;main.c,414 :: C_470 = ~C.B4; + BTFSC FARG_Relay_set_C+0, 4 + GOTO L__Relay_set317 + BSF LATC0_bit+0, BitPos(LATC0_bit+0) + GOTO L__Relay_set318 +L__Relay_set317: + BCF LATC0_bit+0, BitPos(LATC0_bit+0) +L__Relay_set318: +;main.c,415 :: C_1000 = ~C.B5; + BTFSC FARG_Relay_set_C+0, 5 + GOTO L__Relay_set319 + BSF LATC1_bit+0, BitPos(LATC1_bit+0) + GOTO L__Relay_set320 +L__Relay_set319: + BCF LATC1_bit+0, BitPos(LATC1_bit+0) +L__Relay_set320: +;main.c,416 :: C_2200 = ~C.B6; + BTFSC FARG_Relay_set_C+0, 6 + GOTO L__Relay_set321 + BSF LATC2_bit+0, BitPos(LATC2_bit+0) + GOTO L__Relay_set322 +L__Relay_set321: + BCF LATC2_bit+0, BitPos(LATC2_bit+0) +L__Relay_set322: +;main.c,418 :: C_sw = I; + BTFSC FARG_Relay_set_I+0, 0 + GOTO L__Relay_set323 + BCF LATE0_bit+0, BitPos(LATE0_bit+0) + GOTO L__Relay_set324 +L__Relay_set323: + BSF LATE0_bit+0, BitPos(LATE0_bit+0) +L__Relay_set324: +;main.c,420 :: Rel_to_gnd = 1; + BSF LATD3_bit+0, BitPos(LATD3_bit+0) +;main.c,421 :: Vdelay_ms(rldl); + MOVF _rldl+0, 0 + MOVWF FARG_VDelay_ms_Time_ms+0 + MOVF _rldl+1, 0 + MOVWF FARG_VDelay_ms_Time_ms+1 + CALL _VDelay_ms+0 +;main.c,422 :: Rel_to_gnd = 0; + BCF LATD3_bit+0, BitPos(LATD3_bit+0) +;main.c,423 :: Delay_us(10); + MOVLW 26 + MOVWF R13 +L_Relay_set99: + DECFSZ R13, 1 + GOTO L_Relay_set99 + NOP +;main.c,424 :: Rel_to_plus_N = 0; + BCF LATC4_bit+0, BitPos(LATC4_bit+0) +;main.c,425 :: Vdelay_ms(rldl); + MOVF _rldl+0, 0 + MOVWF FARG_VDelay_ms_Time_ms+0 + MOVF _rldl+1, 0 + MOVWF FARG_VDelay_ms_Time_ms+1 + CALL _VDelay_ms+0 +;main.c,426 :: Rel_to_plus_N = 1; + BSF LATC4_bit+0, BitPos(LATC4_bit+0) +;main.c,427 :: Vdelay_ms(rldl); + MOVF _rldl+0, 0 + MOVWF FARG_VDelay_ms_Time_ms+0 + MOVF _rldl+1, 0 + MOVWF FARG_VDelay_ms_Time_ms+1 + CALL _VDelay_ms+0 +;main.c,429 :: L_010 = 0; + BCF LATD7_bit+0, BitPos(LATD7_bit+0) +;main.c,430 :: L_022 = 0; + BCF LATD6_bit+0, BitPos(LATD6_bit+0) +;main.c,431 :: L_045 = 0; + BCF LATD5_bit+0, BitPos(LATD5_bit+0) +;main.c,432 :: L_100 = 0; + BCF LATD4_bit+0, BitPos(LATD4_bit+0) +;main.c,433 :: L_220 = 0; + BCF LATC7_bit+0, BitPos(LATC7_bit+0) +;main.c,434 :: L_450 = 0; + BCF LATC6_bit+0, BitPos(LATC6_bit+0) +;main.c,435 :: L_1000 = 0; + BCF LATC5_bit+0, BitPos(LATC5_bit+0) +;main.c,437 :: C_22 = 0; + BCF LATA5_bit+0, BitPos(LATA5_bit+0) +;main.c,438 :: C_47 = 0; + BCF LATE1_bit+0, BitPos(LATE1_bit+0) +;main.c,439 :: C_100 = 0; + BCF LATA7_bit+0, BitPos(LATA7_bit+0) +;main.c,440 :: C_220 = 0; + BCF LATA6_bit+0, BitPos(LATA6_bit+0) +;main.c,441 :: C_470 = 0; + BCF LATC0_bit+0, BitPos(LATC0_bit+0) +;main.c,442 :: C_1000 = 0; + BCF LATC1_bit+0, BitPos(LATC1_bit+0) +;main.c,443 :: C_2200 = 0; + BCF LATC2_bit+0, BitPos(LATC2_bit+0) +;main.c,445 :: C_sw = 0; + BCF LATE0_bit+0, BitPos(LATE0_bit+0) +;main.c,446 :: return; +;main.c,447 :: } +L_end_Relay_set: + RETURN +; end of _Relay_set + +_power_off: + +;main.c,449 :: void power_off(void){ +;main.c,452 :: GIE_bit = 0; + BCF GIE_bit+0, BitPos(GIE_bit+0) +;main.c,453 :: T0EN_bit = 0; + BCF T0EN_bit+0, BitPos(T0EN_bit+0) +;main.c,454 :: TMR0IF_bit = 0; + BCF TMR0IF_bit+0, BitPos(TMR0IF_bit+0) +;main.c,455 :: IOCIE_bit = 1; + BSF IOCIE_bit+0, BitPos(IOCIE_bit+0) +;main.c,456 :: IOCBF5_bit = 0; + BCF IOCBF5_bit+0, BitPos(IOCBF5_bit+0) +;main.c,457 :: IOCBN5_bit = 1; + BSF IOCBN5_bit+0, BitPos(IOCBN5_bit+0) +;main.c,459 :: OLED_PWD = 0; + BCF LATA4_bit+0, BitPos(LATA4_bit+0) +;main.c,460 :: RED = 1; + BSF LATB4_bit+0, BitPos(LATB4_bit+0) +;main.c,461 :: Green = 1; + BSF LATB3_bit+0, BitPos(LATB3_bit+0) +;main.c,463 :: C_sw = 0; + BCF LATE0_bit+0, BitPos(LATE0_bit+0) +;main.c,464 :: SYSCMD_bit = 1; + BSF SYSCMD_bit+0, BitPos(SYSCMD_bit+0) +;main.c,466 :: btn_cnt = 0; + CLRF power_off_btn_cnt_L0+0 +;main.c,467 :: while(1){ +L_power_off100: +;main.c,468 :: if(btn_cnt==0){ Delay_ms(100); IOCBF5_bit = 0; asm sleep; } + MOVF power_off_btn_cnt_L0+0, 0 + XORLW 0 + BTFSS STATUS+0, 2 + GOTO L_power_off102 + MOVLW 5 + MOVWF R11 + MOVLW 15 + MOVWF R12 + MOVLW 241 + MOVWF R13 +L_power_off103: + DECFSZ R13, 1 + GOTO L_power_off103 + DECFSZ R12, 1 + GOTO L_power_off103 + DECFSZ R11, 1 + GOTO L_power_off103 + BCF IOCBF5_bit+0, BitPos(IOCBF5_bit+0) + SLEEP +L_power_off102: +;main.c,469 :: asm NOP; + NOP +;main.c,470 :: Delay_ms(100); + MOVLW 5 + MOVWF R11 + MOVLW 15 + MOVWF R12 + MOVLW 241 + MOVWF R13 +L_power_off104: + DECFSZ R13, 1 + GOTO L_power_off104 + DECFSZ R12, 1 + GOTO L_power_off104 + DECFSZ R11, 1 + GOTO L_power_off104 +;main.c,471 :: if(GetButton) btn_cnt++; + BTFSC PORTB+0, 5 + GOTO L__power_off326 + BSF 3, 0 + GOTO L__power_off327 +L__power_off326: + BCF 3, 0 +L__power_off327: + BTFSS 3, 0 + GOTO L_power_off105 + INCF power_off_btn_cnt_L0+0, 1 + GOTO L_power_off106 +L_power_off105: +;main.c,472 :: else btn_cnt = 0; + CLRF power_off_btn_cnt_L0+0 +L_power_off106: +;main.c,473 :: if(btn_cnt>15) break; + MOVF power_off_btn_cnt_L0+0, 0 + SUBLW 15 + BTFSC STATUS+0, 0 + GOTO L_power_off107 + GOTO L_power_off101 +L_power_off107: +;main.c,474 :: } + GOTO L_power_off100 +L_power_off101: +;main.c,476 :: SYSCMD_bit = 0; + BCF SYSCMD_bit+0, BitPos(SYSCMD_bit+0) +;main.c,478 :: IOCIE_bit = 0; + BCF IOCIE_bit+0, BitPos(IOCIE_bit+0) +;main.c,479 :: IOCBN5_bit = 0; + BCF IOCBN5_bit+0, BitPos(IOCBN5_bit+0) +;main.c,480 :: IOCBF5_bit = 0; + BCF IOCBF5_bit+0, BitPos(IOCBF5_bit+0) +;main.c,481 :: T0EN_bit = 1; + BSF T0EN_bit+0, BitPos(T0EN_bit+0) +;main.c,482 :: GIE_bit = 1; + BSF GIE_bit+0, BitPos(GIE_bit+0) +;main.c,484 :: gre = 1; + BSF _gre+0, BitPos(_gre+0) +;main.c,485 :: oled_start(); + CALL _oled_start+0 +;main.c,486 :: while(GetButton){asm NOP;} +L_power_off108: + BTFSC PORTB+0, 5 + GOTO L__power_off328 + BSF 3, 0 + GOTO L__power_off329 +L__power_off328: + BCF 3, 0 +L__power_off329: + BTFSS 3, 0 + GOTO L_power_off109 + NOP + GOTO L_power_off108 +L_power_off109: +;main.c,487 :: B_short = 0; + BCF _B_short+0, BitPos(_B_short+0) +;main.c,488 :: B_long = 0; + BCF _B_long+0, BitPos(_B_long+0) +;main.c,489 :: B_xlong = 0; + BCF _B_xlong+0, BitPos(_B_xlong+0) +;main.c,490 :: E_long = 0; + BCF _E_long+0, BitPos(_E_long+0) +;main.c,491 :: btn_1_cnt = 0; + CLRF _btn_1_cnt+0 +;main.c,492 :: btn_cnt = Tick; + MOVF _Tick+0, 0 + MOVWF power_off_btn_cnt_L0+0 +;main.c,493 :: return; +;main.c,494 :: } +L_end_power_off: + RETURN +; end of _power_off + +_check_reset_flags: + +;main.c,497 :: void check_reset_flags(void){ +;main.c,498 :: char i = 0; + CLRF check_reset_flags_i_L0+0 +;main.c,499 :: if(STKOVF_bit){oled_wr_str_s(0, 0, "Stack overflow", 14); i = 1;} + BTFSS STKOVF_bit+0, BitPos(STKOVF_bit+0) + GOTO L_check_reset_flags110 + CLRF FARG_oled_wr_str_s+0 + CLRF FARG_oled_wr_str_s+0 + MOVLW ?lstr25_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr25_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 14 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 + MOVLW 1 + MOVWF check_reset_flags_i_L0+0 +L_check_reset_flags110: +;main.c,500 :: if(STKUNF_bit){oled_wr_str_s(1, 0, "Stack underflow", 15); i = 1;} + BTFSS STKUNF_bit+0, BitPos(STKUNF_bit+0) + GOTO L_check_reset_flags111 + MOVLW 1 + MOVWF FARG_oled_wr_str_s+0 + CLRF FARG_oled_wr_str_s+0 + MOVLW ?lstr26_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr26_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 15 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 + MOVLW 1 + MOVWF check_reset_flags_i_L0+0 +L_check_reset_flags111: +;main.c,501 :: if(!nRWDT_bit){oled_wr_str_s(2, 0, "WDT overflow", 12); i = 1;} + BTFSC nRWDT_bit+0, BitPos(nRWDT_bit+0) + GOTO L_check_reset_flags112 + MOVLW 2 + MOVWF FARG_oled_wr_str_s+0 + CLRF FARG_oled_wr_str_s+0 + MOVLW ?lstr27_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr27_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 12 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 + MOVLW 1 + MOVWF check_reset_flags_i_L0+0 +L_check_reset_flags112: +;main.c,502 :: if(!nRMCLR_bit){oled_wr_str_s(3, 0, "MCLR reset ", 12); i = 1;} + BTFSC nRMCLR_bit+0, BitPos(nRMCLR_bit+0) + GOTO L_check_reset_flags113 + MOVLW 3 + MOVWF FARG_oled_wr_str_s+0 + CLRF FARG_oled_wr_str_s+0 + MOVLW ?lstr28_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr28_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 12 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 + MOVLW 1 + MOVWF check_reset_flags_i_L0+0 +L_check_reset_flags113: +;main.c,503 :: if(!nBOR_bit){oled_wr_str_s(4, 0, "BOR reset ", 12); i = 1;} + BTFSC nBOR_bit+0, BitPos(nBOR_bit+0) + GOTO L_check_reset_flags114 + MOVLW 4 + MOVWF FARG_oled_wr_str_s+0 + CLRF FARG_oled_wr_str_s+0 + MOVLW ?lstr29_main+0 + MOVWF FARG_oled_wr_str_s+0 + MOVLW hi_addr(?lstr29_main+0) + MOVWF FARG_oled_wr_str_s+1 + MOVLW 12 + MOVWF FARG_oled_wr_str_s+0 + CALL _oled_wr_str_s+0 + MOVLW 1 + MOVWF check_reset_flags_i_L0+0 +L_check_reset_flags114: +;main.c,504 :: if(i){ + MOVF check_reset_flags_i_L0+0, 0 + BTFSC STATUS+0, 2 + GOTO L_check_reset_flags115 +;main.c,505 :: Delay_ms(5000); + MOVLW 203 + MOVWF R11 + MOVLW 236 + MOVWF R12 + MOVLW 132 + MOVWF R13 +L_check_reset_flags116: + DECFSZ R13, 1 + GOTO L_check_reset_flags116 + DECFSZ R12, 1 + GOTO L_check_reset_flags116 + DECFSZ R11, 1 + GOTO L_check_reset_flags116 + NOP +;main.c,506 :: oled_clear(); + CALL _oled_clear+0 +;main.c,507 :: } +L_check_reset_flags115: +;main.c,508 :: return; +;main.c,509 :: } +L_end_check_reset_flags: + RETURN +; end of _check_reset_flags + +_correction: + +;main.c,511 :: int correction(int input) { +;main.c,512 :: input *= 2; + MOVF FARG_correction_input+0, 0 + MOVWF R1 + MOVF FARG_correction_input+1, 0 + MOVWF R2 + LSLF R1, 1 + RLF R2, 1 + MOVF R1, 0 + MOVWF FARG_correction_input+0 + MOVF R2, 0 + MOVWF FARG_correction_input+1 +;main.c,514 :: if(input <= 543) input += 256; + MOVLW 128 + XORLW 2 + MOVWF R0 + MOVLW 128 + XORWF R2, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__correction332 + MOVF R1, 0 + SUBLW 31 +L__correction332: + BTFSS STATUS+0, 0 + GOTO L_correction117 + MOVLW 0 + ADDWF FARG_correction_input+0, 1 + MOVLW 1 + ADDWFC FARG_correction_input+1, 1 + GOTO L_correction118 +L_correction117: +;main.c,515 :: else if(input <= 791) input += 274; + MOVLW 128 + XORLW 3 + MOVWF R0 + MOVLW 128 + XORWF FARG_correction_input+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__correction333 + MOVF FARG_correction_input+0, 0 + SUBLW 23 +L__correction333: + BTFSS STATUS+0, 0 + GOTO L_correction119 + MOVLW 18 + ADDWF FARG_correction_input+0, 1 + MOVLW 1 + ADDWFC FARG_correction_input+1, 1 + GOTO L_correction120 +L_correction119: +;main.c,516 :: else if(input <= 1225) input += 288; + MOVLW 128 + XORLW 4 + MOVWF R0 + MOVLW 128 + XORWF FARG_correction_input+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__correction334 + MOVF FARG_correction_input+0, 0 + SUBLW 201 +L__correction334: + BTFSS STATUS+0, 0 + GOTO L_correction121 + MOVLW 32 + ADDWF FARG_correction_input+0, 1 + MOVLW 1 + ADDWFC FARG_correction_input+1, 1 + GOTO L_correction122 +L_correction121: +;main.c,517 :: else if(input <= 1991) input += 286; + MOVLW 128 + XORLW 7 + MOVWF R0 + MOVLW 128 + XORWF FARG_correction_input+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__correction335 + MOVF FARG_correction_input+0, 0 + SUBLW 199 +L__correction335: + BTFSS STATUS+0, 0 + GOTO L_correction123 + MOVLW 30 + ADDWF FARG_correction_input+0, 1 + MOVLW 1 + ADDWFC FARG_correction_input+1, 1 + GOTO L_correction124 +L_correction123: +;main.c,518 :: else if(input <= 2766) input += 288; + MOVLW 128 + XORLW 10 + MOVWF R0 + MOVLW 128 + XORWF FARG_correction_input+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__correction336 + MOVF FARG_correction_input+0, 0 + SUBLW 206 +L__correction336: + BTFSS STATUS+0, 0 + GOTO L_correction125 + MOVLW 32 + ADDWF FARG_correction_input+0, 1 + MOVLW 1 + ADDWFC FARG_correction_input+1, 1 + GOTO L_correction126 +L_correction125: +;main.c,519 :: else if(input <= 3970) input += 260; + MOVLW 128 + XORLW 15 + MOVWF R0 + MOVLW 128 + XORWF FARG_correction_input+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__correction337 + MOVF FARG_correction_input+0, 0 + SUBLW 130 +L__correction337: + BTFSS STATUS+0, 0 + GOTO L_correction127 + MOVLW 4 + ADDWF FARG_correction_input+0, 1 + MOVLW 1 + ADDWFC FARG_correction_input+1, 1 + GOTO L_correction128 +L_correction127: +;main.c,520 :: else if(input <= 5100) input += 250; + MOVLW 128 + XORLW 19 + MOVWF R0 + MOVLW 128 + XORWF FARG_correction_input+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__correction338 + MOVF FARG_correction_input+0, 0 + SUBLW 236 +L__correction338: + BTFSS STATUS+0, 0 + GOTO L_correction129 + MOVLW 250 + ADDWF FARG_correction_input+0, 1 + MOVLW 0 + ADDWFC FARG_correction_input+1, 1 + GOTO L_correction130 +L_correction129: +;main.c,521 :: else input += 240; + MOVLW 240 + ADDWF FARG_correction_input+0, 1 + MOVLW 0 + ADDWFC FARG_correction_input+1, 1 +L_correction130: +L_correction128: +L_correction126: +L_correction124: +L_correction122: +L_correction120: +L_correction118: +;main.c,523 :: return input; + MOVF FARG_correction_input+0, 0 + MOVWF R0 + MOVF FARG_correction_input+1, 0 + MOVWF R1 +;main.c,524 :: } +L_end_correction: + RETURN +; end of _correction + +_get_reverse: + +;main.c,526 :: int get_reverse(void){ +;main.c,529 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + MOVLW 67 + MOVWF FARG_ADC_Init_Advanced_reference+0 + CALL _ADC_Init_Advanced+0 +;main.c,530 :: Delay_us(100); + MOVLW 2 + MOVWF R12 + MOVLW 8 + MOVWF R13 +L_get_reverse131: + DECFSZ R13, 1 + GOTO L_get_reverse131 + DECFSZ R12, 1 + GOTO L_get_reverse131 + NOP +;main.c,531 :: v = ADC_Get_Sample(REV_input); + MOVLW 10 + MOVWF FARG_ADC_Get_Sample_channel+0 + CALL _ADC_Get_Sample+0 + MOVF R0, 0 + MOVWF get_reverse_v_L0+0 + MOVF R1, 0 + MOVWF get_reverse_v_L0+1 +;main.c,532 :: if(v==1023){ + MOVF R1, 0 + XORLW 3 + BTFSS STATUS+0, 2 + GOTO L__get_reverse340 + MOVLW 255 + XORWF R0, 0 +L__get_reverse340: + BTFSS STATUS+0, 2 + GOTO L_get_reverse132 +;main.c,533 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); + MOVLW 131 + MOVWF FARG_ADC_Init_Advanced_reference+0 + CALL _ADC_Init_Advanced+0 +;main.c,534 :: Delay_us(100); + MOVLW 2 + MOVWF R12 + MOVLW 8 + MOVWF R13 +L_get_reverse133: + DECFSZ R13, 1 + GOTO L_get_reverse133 + DECFSZ R12, 1 + GOTO L_get_reverse133 + NOP +;main.c,535 :: v = ADC_Get_Sample(REV_input) * 2; + MOVLW 10 + MOVWF FARG_ADC_Get_Sample_channel+0 + CALL _ADC_Get_Sample+0 + MOVF R0, 0 + MOVWF get_reverse_v_L0+0 + MOVF R1, 0 + MOVWF get_reverse_v_L0+1 + LSLF get_reverse_v_L0+0, 1 + RLF get_reverse_v_L0+1, 1 +;main.c,536 :: } +L_get_reverse132: +;main.c,537 :: if(v==2046){ + MOVF get_reverse_v_L0+1, 0 + XORLW 7 + BTFSS STATUS+0, 2 + GOTO L__get_reverse341 + MOVLW 254 + XORWF get_reverse_v_L0+0, 0 +L__get_reverse341: + BTFSS STATUS+0, 2 + GOTO L_get_reverse134 +;main.c,538 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); + CLRF FARG_ADC_Init_Advanced_reference+0 + CALL _ADC_Init_Advanced+0 +;main.c,539 :: Delay_us(100); + MOVLW 2 + MOVWF R12 + MOVLW 8 + MOVWF R13 +L_get_reverse135: + DECFSZ R13, 1 + GOTO L_get_reverse135 + DECFSZ R12, 1 + GOTO L_get_reverse135 + NOP +;main.c,540 :: v = ADC_Get_Sample(REV_input); + MOVLW 10 + MOVWF FARG_ADC_Get_Sample_channel+0 + CALL _ADC_Get_Sample+0 + MOVF R0, 0 + MOVWF get_reverse_v_L0+0 + MOVF R1, 0 + MOVWF get_reverse_v_L0+1 +;main.c,541 :: if(v==1023) Overflow = 1; + MOVF R1, 0 + XORLW 3 + BTFSS STATUS+0, 2 + GOTO L__get_reverse342 + MOVLW 255 + XORWF R0, 0 +L__get_reverse342: + BTFSS STATUS+0, 2 + GOTO L_get_reverse136 + BSF _Overflow+0, BitPos(_Overflow+0) +L_get_reverse136: +;main.c,542 :: get_batt(); + CALL _get_batt+0 +;main.c,543 :: d = (long)v * (long)Voltage; + MOVF get_reverse_v_L0+0, 0 + MOVWF R4 + MOVF get_reverse_v_L0+1, 0 + MOVWF R5 + CLRF R6 + CLRF R7 + MOVF _Voltage+0, 0 + MOVWF R0 + MOVF _Voltage+1, 0 + MOVWF R1 + MOVLW 0 + BTFSC R1, 7 + MOVLW 255 + MOVWF R2 + MOVWF R3 + CALL _Mul_32x32_U+0 +;main.c,544 :: d = d / 1024; + MOVLW 10 + MOVWF R8 + MOVF R0, 0 + MOVWF R4 + MOVF R1, 0 + MOVWF R5 + MOVF R2, 0 + MOVWF R6 + MOVF R3, 0 + MOVWF R7 + MOVF R8, 0 +L__get_reverse343: + BTFSC STATUS+0, 2 + GOTO L__get_reverse344 + LSRF R7, 1 + RRF R6, 1 + RRF R5, 1 + RRF R4, 1 + ADDLW 255 + GOTO L__get_reverse343 +L__get_reverse344: +;main.c,545 :: v = (int)d; + MOVF R4, 0 + MOVWF get_reverse_v_L0+0 + MOVF R5, 0 + MOVWF get_reverse_v_L0+1 +;main.c,546 :: } +L_get_reverse134: +;main.c,547 :: return v; + MOVF get_reverse_v_L0+0, 0 + MOVWF R0 + MOVF get_reverse_v_L0+1, 0 + MOVWF R1 +;main.c,548 :: } +L_end_get_reverse: + RETURN +; end of _get_reverse + +_get_forward: + +;main.c,550 :: int get_forward(void){ +;main.c,553 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + MOVLW 67 + MOVWF FARG_ADC_Init_Advanced_reference+0 + CALL _ADC_Init_Advanced+0 +;main.c,554 :: Delay_us(100); + MOVLW 2 + MOVWF R12 + MOVLW 8 + MOVWF R13 +L_get_forward137: + DECFSZ R13, 1 + GOTO L_get_forward137 + DECFSZ R12, 1 + GOTO L_get_forward137 + NOP +;main.c,555 :: v = ADC_Get_Sample(FWD_input); + MOVLW 8 + MOVWF FARG_ADC_Get_Sample_channel+0 + CALL _ADC_Get_Sample+0 + MOVF R0, 0 + MOVWF get_forward_v_L0+0 + MOVF R1, 0 + MOVWF get_forward_v_L0+1 +;main.c,556 :: if(v==1023){ + MOVF R1, 0 + XORLW 3 + BTFSS STATUS+0, 2 + GOTO L__get_forward346 + MOVLW 255 + XORWF R0, 0 +L__get_forward346: + BTFSS STATUS+0, 2 + GOTO L_get_forward138 +;main.c,557 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); + MOVLW 131 + MOVWF FARG_ADC_Init_Advanced_reference+0 + CALL _ADC_Init_Advanced+0 +;main.c,558 :: Delay_us(100); + MOVLW 2 + MOVWF R12 + MOVLW 8 + MOVWF R13 +L_get_forward139: + DECFSZ R13, 1 + GOTO L_get_forward139 + DECFSZ R12, 1 + GOTO L_get_forward139 + NOP +;main.c,559 :: v = ADC_Get_Sample(FWD_input) * 2; + MOVLW 8 + MOVWF FARG_ADC_Get_Sample_channel+0 + CALL _ADC_Get_Sample+0 + MOVF R0, 0 + MOVWF get_forward_v_L0+0 + MOVF R1, 0 + MOVWF get_forward_v_L0+1 + LSLF get_forward_v_L0+0, 1 + RLF get_forward_v_L0+1, 1 +;main.c,560 :: } +L_get_forward138: +;main.c,561 :: if(v==2046){ + MOVF get_forward_v_L0+1, 0 + XORLW 7 + BTFSS STATUS+0, 2 + GOTO L__get_forward347 + MOVLW 254 + XORWF get_forward_v_L0+0, 0 +L__get_forward347: + BTFSS STATUS+0, 2 + GOTO L_get_forward140 +;main.c,562 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); + CLRF FARG_ADC_Init_Advanced_reference+0 + CALL _ADC_Init_Advanced+0 +;main.c,563 :: Delay_us(100); + MOVLW 2 + MOVWF R12 + MOVLW 8 + MOVWF R13 +L_get_forward141: + DECFSZ R13, 1 + GOTO L_get_forward141 + DECFSZ R12, 1 + GOTO L_get_forward141 + NOP +;main.c,564 :: v = ADC_Get_Sample(FWD_input); + MOVLW 8 + MOVWF FARG_ADC_Get_Sample_channel+0 + CALL _ADC_Get_Sample+0 + MOVF R0, 0 + MOVWF get_forward_v_L0+0 + MOVF R1, 0 + MOVWF get_forward_v_L0+1 +;main.c,565 :: if(v==1023) Overflow = 1; + MOVF R1, 0 + XORLW 3 + BTFSS STATUS+0, 2 + GOTO L__get_forward348 + MOVLW 255 + XORWF R0, 0 +L__get_forward348: + BTFSS STATUS+0, 2 + GOTO L_get_forward142 + BSF _Overflow+0, BitPos(_Overflow+0) +L_get_forward142: +;main.c,566 :: get_batt(); + CALL _get_batt+0 +;main.c,567 :: d = (long)v * (long)Voltage; + MOVF get_forward_v_L0+0, 0 + MOVWF R4 + MOVF get_forward_v_L0+1, 0 + MOVWF R5 + CLRF R6 + CLRF R7 + MOVF _Voltage+0, 0 + MOVWF R0 + MOVF _Voltage+1, 0 + MOVWF R1 + MOVLW 0 + BTFSC R1, 7 + MOVLW 255 + MOVWF R2 + MOVWF R3 + CALL _Mul_32x32_U+0 +;main.c,568 :: d = d / 1024; + MOVLW 10 + MOVWF R8 + MOVF R0, 0 + MOVWF R4 + MOVF R1, 0 + MOVWF R5 + MOVF R2, 0 + MOVWF R6 + MOVF R3, 0 + MOVWF R7 + MOVF R8, 0 +L__get_forward349: + BTFSC STATUS+0, 2 + GOTO L__get_forward350 + LSRF R7, 1 + RRF R6, 1 + RRF R5, 1 + RRF R4, 1 + ADDLW 255 + GOTO L__get_forward349 +L__get_forward350: +;main.c,569 :: v = (int)d; + MOVF R4, 0 + MOVWF get_forward_v_L0+0 + MOVF R5, 0 + MOVWF get_forward_v_L0+1 +;main.c,570 :: } +L_get_forward140: +;main.c,571 :: return v; + MOVF get_forward_v_L0+0, 0 + MOVWF R0 + MOVF get_forward_v_L0+1, 0 + MOVWF R1 +;main.c,572 :: } +L_end_get_forward: + RETURN +; end of _get_forward + +_get_pwr: + +;main.c,575 :: void get_pwr(){ +;main.c,579 :: Forward = get_forward(); + CALL _get_forward+0 + MOVF R0, 0 + MOVWF get_pwr_Forward_L0+0 + MOVF R1, 0 + MOVWF get_pwr_Forward_L0+1 + MOVLW 0 + BTFSC get_pwr_Forward_L0+1, 7 + MOVLW 255 + MOVWF get_pwr_Forward_L0+2 + MOVWF get_pwr_Forward_L0+3 +;main.c,580 :: Reverse = get_reverse(); + CALL _get_reverse+0 + MOVF R0, 0 + MOVWF get_pwr_Reverse_L0+0 + MOVF R1, 0 + MOVWF get_pwr_Reverse_L0+1 + MOVLW 0 + BTFSC get_pwr_Reverse_L0+1, 7 + MOVLW 255 + MOVWF get_pwr_Reverse_L0+2 + MOVWF get_pwr_Reverse_L0+3 +;main.c,582 :: p = correction(Forward); + MOVF get_pwr_Forward_L0+0, 0 + MOVWF FARG_correction_input+0 + MOVF get_pwr_Forward_L0+1, 0 + MOVWF FARG_correction_input+1 + CALL _correction+0 + CALL _int2double+0 +;main.c,583 :: P = p * 5 / 1000; + MOVLW 0 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVLW 32 + MOVWF R6 + MOVLW 129 + MOVWF R7 + CALL _Mul_32x32_FP+0 + MOVLW 0 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVLW 122 + MOVWF R6 + MOVLW 136 + MOVWF R7 + CALL _Div_32x32_FP+0 +;main.c,584 :: p = p / 1.414; + MOVLW 244 + MOVWF R4 + MOVLW 253 + MOVWF R5 + MOVLW 52 + MOVWF R6 + MOVLW 127 + MOVWF R7 + CALL _Div_32x32_FP+0 +;main.c,585 :: p = p * p; + MOVF R0, 0 + MOVWF R4 + MOVF R1, 0 + MOVWF R5 + MOVF R2, 0 + MOVWF R6 + MOVF R3, 0 + MOVWF R7 + CALL _Mul_32x32_FP+0 +;main.c,586 :: p = p / 5; + MOVLW 0 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVLW 32 + MOVWF R6 + MOVLW 129 + MOVWF R7 + CALL _Div_32x32_FP+0 +;main.c,587 :: p += 0.5; + MOVLW 0 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVLW 0 + MOVWF R6 + MOVLW 126 + MOVWF R7 + CALL _Add_32x32_FP+0 +;main.c,588 :: PWR = p; + CALL _double2int+0 + MOVF R0, 0 + MOVWF _PWR+0 + MOVF R1, 0 + MOVWF _PWR+1 +;main.c,590 :: if(PWR>0){ + MOVLW 128 + MOVWF R2 + MOVLW 128 + XORWF R1, 0 + SUBWF R2, 0 + BTFSS STATUS+0, 2 + GOTO L__get_pwr352 + MOVF R0, 0 + SUBLW 0 +L__get_pwr352: + BTFSC STATUS+0, 0 + GOTO L_get_pwr143 +;main.c,591 :: if(OLED_PWD){ + BTFSS LATA4_bit+0, BitPos(LATA4_bit+0) + GOTO L_get_pwr144 +;main.c,592 :: disp_cnt = Tick + Disp_time*1000; + MOVF _Disp_time+0, 0 + MOVWF R0 + MOVF _Disp_time+1, 0 + MOVWF R1 + MOVF _Disp_time+2, 0 + MOVWF R2 + MOVF _Disp_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _disp_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _disp_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _disp_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _disp_cnt+3 +;main.c,593 :: off_cnt = Tick + Off_time*1000; + MOVF _Off_time+0, 0 + MOVWF R0 + MOVF _Off_time+1, 0 + MOVWF R1 + MOVF _Off_time+2, 0 + MOVWF R2 + MOVF _Off_time+3, 0 + MOVWF R3 + MOVLW 232 + MOVWF R4 + MOVLW 3 + MOVWF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF R0, 0 + ADDWF _Tick+0, 0 + MOVWF _off_cnt+0 + MOVF R1, 0 + ADDWFC _Tick+1, 0 + MOVWF _off_cnt+1 + MOVF R2, 0 + ADDWFC _Tick+2, 0 + MOVWF _off_cnt+2 + MOVF R3, 0 + ADDWFC _Tick+3, 0 + MOVWF _off_cnt+3 +;main.c,594 :: } + GOTO L_get_pwr145 +L_get_pwr144: +;main.c,595 :: else oled_start(); + CALL _oled_start+0 +L_get_pwr145: +;main.c,596 :: } +L_get_pwr143: +;main.c,598 :: if(Reverse >= Forward) + MOVLW 128 + XORWF get_pwr_Reverse_L0+3, 0 + MOVWF R0 + MOVLW 128 + XORWF get_pwr_Forward_L0+3, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__get_pwr353 + MOVF get_pwr_Forward_L0+2, 0 + SUBWF get_pwr_Reverse_L0+2, 0 + BTFSS STATUS+0, 2 + GOTO L__get_pwr353 + MOVF get_pwr_Forward_L0+1, 0 + SUBWF get_pwr_Reverse_L0+1, 0 + BTFSS STATUS+0, 2 + GOTO L__get_pwr353 + MOVF get_pwr_Forward_L0+0, 0 + SUBWF get_pwr_Reverse_L0+0, 0 +L__get_pwr353: + BTFSS STATUS+0, 0 + GOTO L_get_pwr146 +;main.c,599 :: Forward = 999; + MOVLW 231 + MOVWF get_pwr_Forward_L0+0 + MOVLW 3 + MOVWF get_pwr_Forward_L0+1 + CLRF get_pwr_Forward_L0+2 + CLRF get_pwr_Forward_L0+3 + GOTO L_get_pwr147 +L_get_pwr146: +;main.c,601 :: Forward = ((Forward + Reverse) * 100) / (Forward - Reverse); + MOVF get_pwr_Reverse_L0+0, 0 + ADDWF get_pwr_Forward_L0+0, 0 + MOVWF R0 + MOVF get_pwr_Reverse_L0+1, 0 + ADDWFC get_pwr_Forward_L0+1, 0 + MOVWF R1 + MOVF get_pwr_Reverse_L0+2, 0 + ADDWFC get_pwr_Forward_L0+2, 0 + MOVWF R2 + MOVF get_pwr_Reverse_L0+3, 0 + ADDWFC get_pwr_Forward_L0+3, 0 + MOVWF R3 + MOVLW 100 + MOVWF R4 + CLRF R5 + CLRF R6 + CLRF R7 + CALL _Mul_32x32_U+0 + MOVF get_pwr_Forward_L0+0, 0 + MOVWF R4 + MOVF get_pwr_Forward_L0+1, 0 + MOVWF R5 + MOVF get_pwr_Forward_L0+2, 0 + MOVWF R6 + MOVF get_pwr_Forward_L0+3, 0 + MOVWF R7 + MOVF get_pwr_Reverse_L0+0, 0 + SUBWF R4, 1 + MOVF get_pwr_Reverse_L0+1, 0 + SUBWFB R5, 1 + MOVF get_pwr_Reverse_L0+2, 0 + SUBWFB R6, 1 + MOVF get_pwr_Reverse_L0+3, 0 + SUBWFB R7, 1 + CALL _Div_32x32_S+0 + MOVF R0, 0 + MOVWF get_pwr_Forward_L0+0 + MOVF R1, 0 + MOVWF get_pwr_Forward_L0+1 + MOVF R2, 0 + MOVWF get_pwr_Forward_L0+2 + MOVF R3, 0 + MOVWF get_pwr_Forward_L0+3 +;main.c,602 :: if(Forward>999) Forward = 999; + MOVLW 128 + MOVWF R4 + MOVLW 128 + XORWF R3, 0 + SUBWF R4, 0 + BTFSS STATUS+0, 2 + GOTO L__get_pwr354 + MOVF R2, 0 + SUBLW 0 + BTFSS STATUS+0, 2 + GOTO L__get_pwr354 + MOVF R1, 0 + SUBLW 3 + BTFSS STATUS+0, 2 + GOTO L__get_pwr354 + MOVF R0, 0 + SUBLW 231 +L__get_pwr354: + BTFSC STATUS+0, 0 + GOTO L_get_pwr148 + MOVLW 231 + MOVWF get_pwr_Forward_L0+0 + MOVLW 3 + MOVWF get_pwr_Forward_L0+1 + CLRF get_pwr_Forward_L0+2 + CLRF get_pwr_Forward_L0+3 +L_get_pwr148: +;main.c,603 :: } +L_get_pwr147: +;main.c,605 :: SWR = Forward; + MOVF get_pwr_Forward_L0+0, 0 + MOVWF _SWR+0 + MOVF get_pwr_Forward_L0+1, 0 + MOVWF _SWR+1 +;main.c,606 :: return; +;main.c,607 :: } +L_end_get_pwr: + RETURN +; end of _get_pwr + +_get_swr: + +;main.c,609 :: void get_swr(){ +;main.c,610 :: unsigned int tune_cnt = 300; + MOVLW 44 + MOVWF get_swr_tune_cnt_L0+0 + MOVLW 1 + MOVWF get_swr_tune_cnt_L0+1 + CLRF get_swr_PWR_max_L0+0 + CLRF get_swr_PWR_max_L0+1 +;main.c,612 :: get_pwr(); + CALL _get_pwr+0 +;main.c,613 :: while(PWRmax_for_start){ // waiting for good power +L_get_swr149: + MOVLW 128 + XORWF _PWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _min_for_start+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__get_swr356 + MOVF _min_for_start+0, 0 + SUBWF _PWR+0, 0 +L__get_swr356: + BTFSS STATUS+0, 0 + GOTO L__get_swr239 + MOVLW 128 + XORWF _max_for_start+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _PWR+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__get_swr357 + MOVF _PWR+0, 0 + SUBWF _max_for_start+0, 0 +L__get_swr357: + BTFSS STATUS+0, 0 + GOTO L__get_swr239 + GOTO L_get_swr150 +L__get_swr239: +;main.c,614 :: if(B_short){ + BTFSS _B_short+0, BitPos(_B_short+0) + GOTO L_get_swr153 +;main.c,615 :: Btn_short(); + CALL _Btn_short+0 +;main.c,616 :: SWR = 0; + CLRF _SWR+0 + CLRF _SWR+1 +;main.c,617 :: break; + GOTO L_get_swr150 +;main.c,618 :: } +L_get_swr153: +;main.c,619 :: if(B_xlong){ + BTFSS _B_xlong+0, BitPos(_B_xlong+0) + GOTO L_get_swr154 +;main.c,621 :: SWR = 0; + CLRF _SWR+0 + CLRF _SWR+1 +;main.c,622 :: break; + GOTO L_get_swr150 +;main.c,623 :: } +L_get_swr154: +;main.c,625 :: get_pwr(); + CALL _get_pwr+0 +;main.c,626 :: if(tune_cnt>0){ + MOVF get_swr_tune_cnt_L0+1, 0 + SUBLW 0 + BTFSS STATUS+0, 2 + GOTO L__get_swr358 + MOVF get_swr_tune_cnt_L0+0, 0 + SUBLW 0 +L__get_swr358: + BTFSC STATUS+0, 0 + GOTO L_get_swr155 +;main.c,627 :: tune_cnt --; + MOVLW 1 + SUBWF get_swr_tune_cnt_L0+0, 1 + MOVLW 0 + SUBWFB get_swr_tune_cnt_L0+1, 1 +;main.c,628 :: if(PWR>PWR_max) + MOVF _PWR+1, 0 + SUBWF get_swr_PWR_max_L0+1, 0 + BTFSS STATUS+0, 2 + GOTO L__get_swr359 + MOVF _PWR+0, 0 + SUBWF get_swr_PWR_max_L0+0, 0 +L__get_swr359: + BTFSC STATUS+0, 0 + GOTO L_get_swr156 +;main.c,629 :: PWR_max = PWR; + MOVF _PWR+0, 0 + MOVWF get_swr_PWR_max_L0+0 + MOVF _PWR+1, 0 + MOVWF get_swr_PWR_max_L0+1 +L_get_swr156: +;main.c,630 :: } + GOTO L_get_swr157 +L_get_swr155: +;main.c,632 :: draw_power(PWR_max); + MOVF get_swr_PWR_max_L0+0, 0 + MOVWF FARG_draw_power_p+0 + MOVF get_swr_PWR_max_L0+1, 0 + MOVWF FARG_draw_power_p+1 + CALL _draw_power+0 +;main.c,633 :: PWR_max = 0; + CLRF get_swr_PWR_max_L0+0 + CLRF get_swr_PWR_max_L0+1 +;main.c,634 :: tune_cnt = 300; + MOVLW 44 + MOVWF get_swr_tune_cnt_L0+0 + MOVLW 1 + MOVWF get_swr_tune_cnt_L0+1 +;main.c,635 :: Delay_ms(1); + MOVLW 11 + MOVWF R12 + MOVLW 98 + MOVWF R13 +L_get_swr158: + DECFSZ R13, 1 + GOTO L_get_swr158 + DECFSZ R12, 1 + GOTO L_get_swr158 + NOP +;main.c,636 :: } +L_get_swr157: +;main.c,637 :: } + GOTO L_get_swr149 +L_get_swr150: +;main.c,639 :: return; +;main.c,640 :: } +L_end_get_swr: + RETURN +; end of _get_swr + +_get_batt: + +;main.c,642 :: void get_batt(void){ +;main.c,643 :: ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + MOVLW 67 + MOVWF FARG_ADC_Init_Advanced_reference+0 + CALL _ADC_Init_Advanced+0 +;main.c,644 :: Delay_us(100); + MOVLW 2 + MOVWF R12 + MOVLW 8 + MOVWF R13 +L_get_batt159: + DECFSZ R13, 1 + GOTO L_get_batt159 + DECFSZ R12, 1 + GOTO L_get_batt159 + NOP +;main.c,645 :: Voltage = ADC_Get_Sample(Battery_input) * 11; + MOVLW 9 + MOVWF FARG_ADC_Get_Sample_channel+0 + CALL _ADC_Get_Sample+0 + MOVLW 11 + MOVWF R4 + MOVLW 0 + MOVWF R5 + CALL _Mul_16X16_U+0 + MOVF R0, 0 + MOVWF _Voltage+0 + MOVF R1, 0 + MOVWF _Voltage+1 +;main.c,646 :: return; +;main.c,647 :: } +L_end_get_batt: + RETURN +; end of _get_batt + +_coarse_cap: + +;main.c,649 :: void coarse_cap() { +;main.c,650 :: char step = 3; + MOVLW 3 + MOVWF coarse_cap_step_L0+0 +;main.c,654 :: cap = 0; + CLRF _cap+0 +;main.c,655 :: Relay_set(ind, cap, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + CLRF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,656 :: get_swr(); + CALL _get_swr+0 +;main.c,657 :: min_swr = SWR + SWR/20; + MOVLW 20 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVF _SWR+0, 0 + MOVWF R0 + MOVF _SWR+1, 0 + MOVWF R1 + CALL _Div_16x16_S+0 + MOVF R0, 0 + ADDWF _SWR+0, 0 + MOVWF coarse_cap_min_swr_L0+0 + MOVF R1, 0 + ADDWFC _SWR+1, 0 + MOVWF coarse_cap_min_swr_L0+1 +;main.c,658 :: for(count=step; count<=31;) { + MOVF coarse_cap_step_L0+0, 0 + MOVWF coarse_cap_count_L0+0 +L_coarse_cap160: + MOVF coarse_cap_count_L0+0, 0 + SUBLW 31 + BTFSS STATUS+0, 0 + GOTO L_coarse_cap161 +;main.c,659 :: Relay_set(ind, count, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF coarse_cap_count_L0+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,660 :: get_swr(); + CALL _get_swr+0 +;main.c,661 :: if(SWR < min_swr) { + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF coarse_cap_min_swr_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__coarse_cap362 + MOVF coarse_cap_min_swr_L0+0, 0 + SUBWF _SWR+0, 0 +L__coarse_cap362: + BTFSC STATUS+0, 0 + GOTO L_coarse_cap163 +;main.c,662 :: min_swr = SWR + SWR/20; + MOVLW 20 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVF _SWR+0, 0 + MOVWF R0 + MOVF _SWR+1, 0 + MOVWF R1 + CALL _Div_16x16_S+0 + MOVF R0, 0 + ADDWF _SWR+0, 0 + MOVWF coarse_cap_min_swr_L0+0 + MOVF R1, 0 + ADDWFC _SWR+1, 0 + MOVWF coarse_cap_min_swr_L0+1 +;main.c,663 :: cap = count; + MOVF coarse_cap_count_L0+0, 0 + MOVWF _cap+0 +;main.c,664 :: step_cap = step; + MOVF coarse_cap_step_L0+0, 0 + MOVWF _step_cap+0 +;main.c,665 :: if(SWR<120) break; + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__coarse_cap363 + MOVLW 120 + SUBWF _SWR+0, 0 +L__coarse_cap363: + BTFSC STATUS+0, 0 + GOTO L_coarse_cap164 + GOTO L_coarse_cap161 +L_coarse_cap164: +;main.c,666 :: count += step; + MOVF coarse_cap_step_L0+0, 0 + ADDWF coarse_cap_count_L0+0, 0 + MOVWF R1 + MOVF R1, 0 + MOVWF coarse_cap_count_L0+0 +;main.c,667 :: if(count==9) count = 8; + MOVF R1, 0 + XORLW 9 + BTFSS STATUS+0, 2 + GOTO L_coarse_cap165 + MOVLW 8 + MOVWF coarse_cap_count_L0+0 + GOTO L_coarse_cap166 +L_coarse_cap165: +;main.c,668 :: else if(count==17) {count = 16; step = 4;} + MOVF coarse_cap_count_L0+0, 0 + XORLW 17 + BTFSS STATUS+0, 2 + GOTO L_coarse_cap167 + MOVLW 16 + MOVWF coarse_cap_count_L0+0 + MOVLW 4 + MOVWF coarse_cap_step_L0+0 +L_coarse_cap167: +L_coarse_cap166: +;main.c,669 :: } + GOTO L_coarse_cap168 +L_coarse_cap163: +;main.c,670 :: else break; + GOTO L_coarse_cap161 +L_coarse_cap168: +;main.c,671 :: } + GOTO L_coarse_cap160 +L_coarse_cap161: +;main.c,672 :: Relay_set(ind, cap, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF _cap+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,673 :: return; +;main.c,674 :: } +L_end_coarse_cap: + RETURN +; end of _coarse_cap + +_coarse_tune: + +;main.c,676 :: void coarse_tune() { +;main.c,677 :: char step = 3; + MOVLW 3 + MOVWF coarse_tune_step_L0+0 +;main.c,682 :: mem_cap = 0; + CLRF coarse_tune_mem_cap_L0+0 +;main.c,683 :: step_ind = step; + MOVF coarse_tune_step_L0+0, 0 + MOVWF _step_ind+0 +;main.c,684 :: mem_step_cap = 3; + MOVLW 3 + MOVWF coarse_tune_mem_step_cap_L0+0 +;main.c,685 :: min_swr = SWR + SWR/20; + MOVLW 20 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVF _SWR+0, 0 + MOVWF R0 + MOVF _SWR+1, 0 + MOVWF R1 + CALL _Div_16x16_S+0 + MOVF R0, 0 + ADDWF _SWR+0, 0 + MOVWF coarse_tune_min_swr_L0+0 + MOVF R1, 0 + ADDWFC _SWR+1, 0 + MOVWF coarse_tune_min_swr_L0+1 +;main.c,686 :: for(count=step; count<=31;) { + MOVF coarse_tune_step_L0+0, 0 + MOVWF coarse_tune_count_L0+0 +L_coarse_tune169: + MOVF coarse_tune_count_L0+0, 0 + SUBLW 31 + BTFSS STATUS+0, 0 + GOTO L_coarse_tune170 +;main.c,687 :: Relay_set(count, cap, SW); + MOVF coarse_tune_count_L0+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF _cap+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,688 :: coarse_cap(); + CALL _coarse_cap+0 +;main.c,689 :: get_swr(); + CALL _get_swr+0 +;main.c,690 :: if(SWR < min_swr) { + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF coarse_tune_min_swr_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__coarse_tune365 + MOVF coarse_tune_min_swr_L0+0, 0 + SUBWF _SWR+0, 0 +L__coarse_tune365: + BTFSC STATUS+0, 0 + GOTO L_coarse_tune172 +;main.c,691 :: min_swr = SWR + SWR/20; + MOVLW 20 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVF _SWR+0, 0 + MOVWF R0 + MOVF _SWR+1, 0 + MOVWF R1 + CALL _Div_16x16_S+0 + MOVF R0, 0 + ADDWF _SWR+0, 0 + MOVWF coarse_tune_min_swr_L0+0 + MOVF R1, 0 + ADDWFC _SWR+1, 0 + MOVWF coarse_tune_min_swr_L0+1 +;main.c,692 :: ind = count; + MOVF coarse_tune_count_L0+0, 0 + MOVWF _ind+0 +;main.c,693 :: mem_cap = cap; + MOVF _cap+0, 0 + MOVWF coarse_tune_mem_cap_L0+0 +;main.c,694 :: step_ind = step; + MOVF coarse_tune_step_L0+0, 0 + MOVWF _step_ind+0 +;main.c,695 :: mem_step_cap = step_cap; + MOVF _step_cap+0, 0 + MOVWF coarse_tune_mem_step_cap_L0+0 +;main.c,696 :: if(SWR<120) break; + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__coarse_tune366 + MOVLW 120 + SUBWF _SWR+0, 0 +L__coarse_tune366: + BTFSC STATUS+0, 0 + GOTO L_coarse_tune173 + GOTO L_coarse_tune170 +L_coarse_tune173: +;main.c,697 :: count += step; + MOVF coarse_tune_step_L0+0, 0 + ADDWF coarse_tune_count_L0+0, 0 + MOVWF R1 + MOVF R1, 0 + MOVWF coarse_tune_count_L0+0 +;main.c,698 :: if(count==9) count = 8; + MOVF R1, 0 + XORLW 9 + BTFSS STATUS+0, 2 + GOTO L_coarse_tune174 + MOVLW 8 + MOVWF coarse_tune_count_L0+0 + GOTO L_coarse_tune175 +L_coarse_tune174: +;main.c,699 :: else if(count==17) {count = 16; step = 4;} + MOVF coarse_tune_count_L0+0, 0 + XORLW 17 + BTFSS STATUS+0, 2 + GOTO L_coarse_tune176 + MOVLW 16 + MOVWF coarse_tune_count_L0+0 + MOVLW 4 + MOVWF coarse_tune_step_L0+0 +L_coarse_tune176: +L_coarse_tune175: +;main.c,700 :: } + GOTO L_coarse_tune177 +L_coarse_tune172: +;main.c,701 :: else break; + GOTO L_coarse_tune170 +L_coarse_tune177: +;main.c,702 :: } + GOTO L_coarse_tune169 +L_coarse_tune170: +;main.c,703 :: cap = mem_cap; + MOVF coarse_tune_mem_cap_L0+0, 0 + MOVWF _cap+0 +;main.c,704 :: Relay_set(ind, cap, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF coarse_tune_mem_cap_L0+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,705 :: step_cap = mem_step_cap; + MOVF coarse_tune_mem_step_cap_L0+0, 0 + MOVWF _step_cap+0 +;main.c,706 :: Delay_ms(10); + MOVLW 104 + MOVWF R12 + MOVLW 228 + MOVWF R13 +L_coarse_tune178: + DECFSZ R13, 1 + GOTO L_coarse_tune178 + DECFSZ R12, 1 + GOTO L_coarse_tune178 + NOP +;main.c,707 :: return; +;main.c,708 :: } +L_end_coarse_tune: + RETURN +; end of _coarse_tune + +_sharp_cap: + +;main.c,710 :: void sharp_cap() { +;main.c,713 :: range = step_cap; + MOVF _step_cap+0, 0 + MOVWF sharp_cap_range_L0+0 +;main.c,715 :: max_range = cap + range; + MOVF _step_cap+0, 0 + ADDWF _cap+0, 0 + MOVWF R1 + MOVF R1, 0 + MOVWF sharp_cap_max_range_L0+0 +;main.c,716 :: if(max_range>31) max_range = 31; + MOVF R1, 0 + SUBLW 31 + BTFSC STATUS+0, 0 + GOTO L_sharp_cap179 + MOVLW 31 + MOVWF sharp_cap_max_range_L0+0 +L_sharp_cap179: +;main.c,717 :: if(cap>range) min_range = cap - range; else min_range = 0; + MOVF _cap+0, 0 + SUBWF sharp_cap_range_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_sharp_cap180 + MOVF sharp_cap_range_L0+0, 0 + SUBWF _cap+0, 0 + MOVWF sharp_cap_min_range_L0+0 + GOTO L_sharp_cap181 +L_sharp_cap180: + CLRF sharp_cap_min_range_L0+0 +L_sharp_cap181: +;main.c,718 :: cap = min_range; + MOVF sharp_cap_min_range_L0+0, 0 + MOVWF _cap+0 +;main.c,719 :: Relay_set(ind, cap, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF sharp_cap_min_range_L0+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,720 :: get_swr(); + CALL _get_swr+0 +;main.c,721 :: if(SWR==0) return; + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_cap368 + MOVLW 0 + XORWF _SWR+0, 0 +L__sharp_cap368: + BTFSS STATUS+0, 2 + GOTO L_sharp_cap182 + GOTO L_end_sharp_cap +L_sharp_cap182: +;main.c,722 :: min_SWR = SWR; + MOVF _SWR+0, 0 + MOVWF sharp_cap_min_swr_L0+0 + MOVF _SWR+1, 0 + MOVWF sharp_cap_min_swr_L0+1 +;main.c,723 :: for(count=min_range+1; count<=max_range; count++) { + INCF sharp_cap_min_range_L0+0, 0 + MOVWF sharp_cap_count_L0+0 +L_sharp_cap183: + MOVF sharp_cap_count_L0+0, 0 + SUBWF sharp_cap_max_range_L0+0, 0 + BTFSS STATUS+0, 0 + GOTO L_sharp_cap184 +;main.c,724 :: Relay_set(ind, count, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF sharp_cap_count_L0+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,725 :: get_swr(); + CALL _get_swr+0 +;main.c,726 :: if(SWR==0) return; + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_cap369 + MOVLW 0 + XORWF _SWR+0, 0 +L__sharp_cap369: + BTFSS STATUS+0, 2 + GOTO L_sharp_cap186 + GOTO L_end_sharp_cap +L_sharp_cap186: +;main.c,727 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF sharp_cap_min_swr_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_cap370 + MOVF sharp_cap_min_swr_L0+0, 0 + SUBWF _SWR+0, 0 +L__sharp_cap370: + BTFSS STATUS+0, 0 + GOTO L_sharp_cap187 + MOVLW 104 + MOVWF R12 + MOVLW 228 + MOVWF R13 +L_sharp_cap188: + DECFSZ R13, 1 + GOTO L_sharp_cap188 + DECFSZ R12, 1 + GOTO L_sharp_cap188 + NOP + CALL _get_swr+0 +L_sharp_cap187: +;main.c,728 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF sharp_cap_min_swr_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_cap371 + MOVF sharp_cap_min_swr_L0+0, 0 + SUBWF _SWR+0, 0 +L__sharp_cap371: + BTFSS STATUS+0, 0 + GOTO L_sharp_cap189 + MOVLW 104 + MOVWF R12 + MOVLW 228 + MOVWF R13 +L_sharp_cap190: + DECFSZ R13, 1 + GOTO L_sharp_cap190 + DECFSZ R12, 1 + GOTO L_sharp_cap190 + NOP + CALL _get_swr+0 +L_sharp_cap189: +;main.c,729 :: if(SWR < min_SWR) { + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF sharp_cap_min_swr_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_cap372 + MOVF sharp_cap_min_swr_L0+0, 0 + SUBWF _SWR+0, 0 +L__sharp_cap372: + BTFSC STATUS+0, 0 + GOTO L_sharp_cap191 +;main.c,730 :: min_SWR = SWR; + MOVF _SWR+0, 0 + MOVWF sharp_cap_min_swr_L0+0 + MOVF _SWR+1, 0 + MOVWF sharp_cap_min_swr_L0+1 +;main.c,731 :: cap = count; + MOVF sharp_cap_count_L0+0, 0 + MOVWF _cap+0 +;main.c,732 :: if(SWR<120) break; + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_cap373 + MOVLW 120 + SUBWF _SWR+0, 0 +L__sharp_cap373: + BTFSC STATUS+0, 0 + GOTO L_sharp_cap192 + GOTO L_sharp_cap184 +L_sharp_cap192: +;main.c,733 :: } + GOTO L_sharp_cap193 +L_sharp_cap191: +;main.c,734 :: else break; + GOTO L_sharp_cap184 +L_sharp_cap193: +;main.c,723 :: for(count=min_range+1; count<=max_range; count++) { + INCF sharp_cap_count_L0+0, 1 +;main.c,735 :: } + GOTO L_sharp_cap183 +L_sharp_cap184: +;main.c,736 :: Relay_set(ind, cap, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF _cap+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,737 :: return; +;main.c,738 :: } +L_end_sharp_cap: + RETURN +; end of _sharp_cap + +_sharp_ind: + +;main.c,740 :: void sharp_ind() { +;main.c,743 :: range = step_ind; + MOVF _step_ind+0, 0 + MOVWF sharp_ind_range_L0+0 +;main.c,745 :: max_range = ind + range; + MOVF _step_ind+0, 0 + ADDWF _ind+0, 0 + MOVWF R1 + MOVF R1, 0 + MOVWF sharp_ind_max_range_L0+0 +;main.c,746 :: if(max_range>31) max_range = 31; + MOVF R1, 0 + SUBLW 31 + BTFSC STATUS+0, 0 + GOTO L_sharp_ind194 + MOVLW 31 + MOVWF sharp_ind_max_range_L0+0 +L_sharp_ind194: +;main.c,747 :: if(ind>range) min_range = ind - range; else min_range = 0; + MOVF _ind+0, 0 + SUBWF sharp_ind_range_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_sharp_ind195 + MOVF sharp_ind_range_L0+0, 0 + SUBWF _ind+0, 0 + MOVWF sharp_ind_min_range_L0+0 + GOTO L_sharp_ind196 +L_sharp_ind195: + CLRF sharp_ind_min_range_L0+0 +L_sharp_ind196: +;main.c,748 :: ind = min_range; + MOVF sharp_ind_min_range_L0+0, 0 + MOVWF _ind+0 +;main.c,749 :: Relay_set(ind, cap, SW); + MOVF sharp_ind_min_range_L0+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF _cap+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,750 :: get_swr(); + CALL _get_swr+0 +;main.c,751 :: if(SWR==0) return; + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_ind375 + MOVLW 0 + XORWF _SWR+0, 0 +L__sharp_ind375: + BTFSS STATUS+0, 2 + GOTO L_sharp_ind197 + GOTO L_end_sharp_ind +L_sharp_ind197: +;main.c,752 :: min_SWR = SWR; + MOVF _SWR+0, 0 + MOVWF sharp_ind_min_SWR_L0+0 + MOVF _SWR+1, 0 + MOVWF sharp_ind_min_SWR_L0+1 +;main.c,753 :: for(count=min_range+1; count<=max_range; count++) { + INCF sharp_ind_min_range_L0+0, 0 + MOVWF sharp_ind_count_L0+0 +L_sharp_ind198: + MOVF sharp_ind_count_L0+0, 0 + SUBWF sharp_ind_max_range_L0+0, 0 + BTFSS STATUS+0, 0 + GOTO L_sharp_ind199 +;main.c,754 :: Relay_set(count, cap, SW); + MOVF sharp_ind_count_L0+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF _cap+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,755 :: get_swr(); + CALL _get_swr+0 +;main.c,756 :: if(SWR==0) return; + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_ind376 + MOVLW 0 + XORWF _SWR+0, 0 +L__sharp_ind376: + BTFSS STATUS+0, 2 + GOTO L_sharp_ind201 + GOTO L_end_sharp_ind +L_sharp_ind201: +;main.c,757 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF sharp_ind_min_SWR_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_ind377 + MOVF sharp_ind_min_SWR_L0+0, 0 + SUBWF _SWR+0, 0 +L__sharp_ind377: + BTFSS STATUS+0, 0 + GOTO L_sharp_ind202 + MOVLW 104 + MOVWF R12 + MOVLW 228 + MOVWF R13 +L_sharp_ind203: + DECFSZ R13, 1 + GOTO L_sharp_ind203 + DECFSZ R12, 1 + GOTO L_sharp_ind203 + NOP + CALL _get_swr+0 +L_sharp_ind202: +;main.c,758 :: if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF sharp_ind_min_SWR_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_ind378 + MOVF sharp_ind_min_SWR_L0+0, 0 + SUBWF _SWR+0, 0 +L__sharp_ind378: + BTFSS STATUS+0, 0 + GOTO L_sharp_ind204 + MOVLW 104 + MOVWF R12 + MOVLW 228 + MOVWF R13 +L_sharp_ind205: + DECFSZ R13, 1 + GOTO L_sharp_ind205 + DECFSZ R12, 1 + GOTO L_sharp_ind205 + NOP + CALL _get_swr+0 +L_sharp_ind204: +;main.c,759 :: if(SWR < min_SWR) { + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF sharp_ind_min_SWR_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_ind379 + MOVF sharp_ind_min_SWR_L0+0, 0 + SUBWF _SWR+0, 0 +L__sharp_ind379: + BTFSC STATUS+0, 0 + GOTO L_sharp_ind206 +;main.c,760 :: min_SWR = SWR; + MOVF _SWR+0, 0 + MOVWF sharp_ind_min_SWR_L0+0 + MOVF _SWR+1, 0 + MOVWF sharp_ind_min_SWR_L0+1 +;main.c,761 :: ind = count; + MOVF sharp_ind_count_L0+0, 0 + MOVWF _ind+0 +;main.c,762 :: if(SWR<120) break; + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__sharp_ind380 + MOVLW 120 + SUBWF _SWR+0, 0 +L__sharp_ind380: + BTFSC STATUS+0, 0 + GOTO L_sharp_ind207 + GOTO L_sharp_ind199 +L_sharp_ind207: +;main.c,763 :: } + GOTO L_sharp_ind208 +L_sharp_ind206: +;main.c,764 :: else break; + GOTO L_sharp_ind199 +L_sharp_ind208: +;main.c,753 :: for(count=min_range+1; count<=max_range; count++) { + INCF sharp_ind_count_L0+0, 1 +;main.c,765 :: } + GOTO L_sharp_ind198 +L_sharp_ind199: +;main.c,766 :: Relay_set(ind, cap, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF _cap+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,767 :: return; +;main.c,768 :: } +L_end_sharp_ind: + RETURN +; end of _sharp_ind + +_tune: + +;main.c,771 :: void tune() { +;main.c,773 :: asm CLRWDT; + CLRWDT +;main.c,774 :: Key_out = 0; + BCF LATD2_bit+0, BitPos(LATD2_bit+0) +;main.c,775 :: Delay_ms(100); + MOVLW 5 + MOVWF R11 + MOVLW 15 + MOVWF R12 + MOVLW 241 + MOVWF R13 +L_tune209: + DECFSZ R13, 1 + GOTO L_tune209 + DECFSZ R12, 1 + GOTO L_tune209 + DECFSZ R11, 1 + GOTO L_tune209 +;main.c,776 :: get_swr(); if(SWR<110) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune382 + MOVLW 110 + SUBWF _SWR+0, 0 +L__tune382: + BTFSC STATUS+0, 0 + GOTO L_tune210 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune210: +;main.c,777 :: atu_reset(); + CALL _atu_reset+0 +;main.c,778 :: Delay_ms(50); + MOVLW 3 + MOVWF R11 + MOVLW 8 + MOVWF R12 + MOVLW 119 + MOVWF R13 +L_tune211: + DECFSZ R13, 1 + GOTO L_tune211 + DECFSZ R12, 1 + GOTO L_tune211 + DECFSZ R11, 1 + GOTO L_tune211 +;main.c,779 :: get_swr(); if(SWR<110) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune383 + MOVLW 110 + SUBWF _SWR+0, 0 +L__tune383: + BTFSC STATUS+0, 0 + GOTO L_tune212 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune212: +;main.c,781 :: swr_mem = SWR; + MOVF _SWR+0, 0 + MOVWF tune_swr_mem_L0+0 + MOVF _SWR+1, 0 + MOVWF tune_swr_mem_L0+1 +;main.c,782 :: coarse_tune(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + CALL _coarse_tune+0 + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__tune384 + MOVLW 0 + XORWF _SWR+0, 0 +L__tune384: + BTFSS STATUS+0, 2 + GOTO L_tune213 + CALL _atu_reset+0 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune213: +;main.c,783 :: get_swr(); if(SWR<120) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune385 + MOVLW 120 + SUBWF _SWR+0, 0 +L__tune385: + BTFSC STATUS+0, 0 + GOTO L_tune214 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune214: +;main.c,784 :: sharp_ind(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + CALL _sharp_ind+0 + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__tune386 + MOVLW 0 + XORWF _SWR+0, 0 +L__tune386: + BTFSS STATUS+0, 2 + GOTO L_tune215 + CALL _atu_reset+0 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune215: +;main.c,785 :: get_swr(); if(SWR<120) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune387 + MOVLW 120 + SUBWF _SWR+0, 0 +L__tune387: + BTFSC STATUS+0, 0 + GOTO L_tune216 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune216: +;main.c,786 :: sharp_cap(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + CALL _sharp_cap+0 + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__tune388 + MOVLW 0 + XORWF _SWR+0, 0 +L__tune388: + BTFSS STATUS+0, 2 + GOTO L_tune217 + CALL _atu_reset+0 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune217: +;main.c,787 :: get_swr(); if(SWR<120) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune389 + MOVLW 120 + SUBWF _SWR+0, 0 +L__tune389: + BTFSC STATUS+0, 0 + GOTO L_tune218 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune218: +;main.c,789 :: if(SWR<200 & SWR100) { Key_out = 1; return; } + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R1 + MOVLW 128 + SUBWF R1, 0 + BTFSS STATUS+0, 2 + GOTO L__tune390 + MOVLW 200 + SUBWF _SWR+0, 0 +L__tune390: + MOVLW 1 + BTFSC STATUS+0, 0 + MOVLW 0 + MOVWF R1 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + XORWF tune_swr_mem_L0+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune391 + MOVF tune_swr_mem_L0+0, 0 + SUBWF _SWR+0, 0 +L__tune391: + MOVLW 1 + BTFSC STATUS+0, 0 + MOVLW 0 + MOVWF R0 + MOVF R0, 0 + ANDWF R1, 0 + MOVWF R3 + MOVF _SWR+0, 0 + SUBWF tune_swr_mem_L0+0, 0 + MOVWF R1 + MOVF _SWR+1, 0 + SUBWFB tune_swr_mem_L0+1, 0 + MOVWF R2 + MOVLW 128 + MOVWF R0 + MOVLW 128 + XORWF R2, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune392 + MOVF R1, 0 + SUBLW 100 +L__tune392: + MOVLW 1 + BTFSC STATUS+0, 0 + MOVLW 0 + MOVWF R0 + MOVF R3, 0 + ANDWF R0, 1 + BTFSC STATUS+0, 2 + GOTO L_tune219 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune219: +;main.c,790 :: swr_mem = SWR; + MOVF _SWR+0, 0 + MOVWF tune_swr_mem_L0+0 + MOVF _SWR+1, 0 + MOVWF tune_swr_mem_L0+1 +;main.c,791 :: ind_mem = ind; + MOVF _ind+0, 0 + MOVWF tune_ind_mem_L0+0 + CLRF tune_ind_mem_L0+1 +;main.c,792 :: cap_mem = cap; + MOVF _cap+0, 0 + MOVWF tune_cap_mem_L0+0 + CLRF tune_cap_mem_L0+1 +;main.c,794 :: if(SW==1) SW = 0; else SW = 1; + MOVF _SW+0, 0 + XORLW 1 + BTFSS STATUS+0, 2 + GOTO L_tune220 + CLRF _SW+0 + GOTO L_tune221 +L_tune220: + MOVLW 1 + MOVWF _SW+0 +L_tune221: +;main.c,795 :: atu_reset(); + CALL _atu_reset+0 +;main.c,796 :: Relay_set(ind, cap, SW); + MOVF _ind+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF _cap+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,797 :: Delay_ms(50); + MOVLW 3 + MOVWF R11 + MOVLW 8 + MOVWF R12 + MOVLW 119 + MOVWF R13 +L_tune222: + DECFSZ R13, 1 + GOTO L_tune222 + DECFSZ R12, 1 + GOTO L_tune222 + DECFSZ R11, 1 + GOTO L_tune222 +;main.c,798 :: get_swr(); if(SWR<120) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune393 + MOVLW 120 + SUBWF _SWR+0, 0 +L__tune393: + BTFSC STATUS+0, 0 + GOTO L_tune223 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune223: +;main.c,800 :: coarse_tune(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + CALL _coarse_tune+0 + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__tune394 + MOVLW 0 + XORWF _SWR+0, 0 +L__tune394: + BTFSS STATUS+0, 2 + GOTO L_tune224 + CALL _atu_reset+0 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune224: +;main.c,801 :: get_swr(); if(SWR<120) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune395 + MOVLW 120 + SUBWF _SWR+0, 0 +L__tune395: + BTFSC STATUS+0, 0 + GOTO L_tune225 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune225: +;main.c,802 :: sharp_ind(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + CALL _sharp_ind+0 + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__tune396 + MOVLW 0 + XORWF _SWR+0, 0 +L__tune396: + BTFSS STATUS+0, 2 + GOTO L_tune226 + CALL _atu_reset+0 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune226: +;main.c,803 :: get_swr(); if(SWR<120) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune397 + MOVLW 120 + SUBWF _SWR+0, 0 +L__tune397: + BTFSC STATUS+0, 0 + GOTO L_tune227 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune227: +;main.c,804 :: sharp_cap(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + CALL _sharp_cap+0 + MOVLW 0 + XORWF _SWR+1, 0 + BTFSS STATUS+0, 2 + GOTO L__tune398 + MOVLW 0 + XORWF _SWR+0, 0 +L__tune398: + BTFSS STATUS+0, 2 + GOTO L_tune228 + CALL _atu_reset+0 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune228: +;main.c,805 :: get_swr(); if(SWR<120) { Key_out = 1; return; } + CALL _get_swr+0 + MOVLW 128 + XORWF _SWR+1, 0 + MOVWF R0 + MOVLW 128 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune399 + MOVLW 120 + SUBWF _SWR+0, 0 +L__tune399: + BTFSC STATUS+0, 0 + GOTO L_tune229 + BSF LATD2_bit+0, BitPos(LATD2_bit+0) + GOTO L_end_tune +L_tune229: +;main.c,807 :: if(SWR>swr_mem) { + MOVLW 128 + XORWF tune_swr_mem_L0+1, 0 + MOVWF R0 + MOVLW 128 + XORWF _SWR+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__tune400 + MOVF _SWR+0, 0 + SUBWF tune_swr_mem_L0+0, 0 +L__tune400: + BTFSC STATUS+0, 0 + GOTO L_tune230 +;main.c,808 :: if(SW==1) SW = 0; else SW = 1; + MOVF _SW+0, 0 + XORLW 1 + BTFSS STATUS+0, 2 + GOTO L_tune231 + CLRF _SW+0 + GOTO L_tune232 +L_tune231: + MOVLW 1 + MOVWF _SW+0 +L_tune232: +;main.c,809 :: ind = ind_mem; + MOVF tune_ind_mem_L0+0, 0 + MOVWF _ind+0 +;main.c,810 :: cap = cap_mem; + MOVF tune_cap_mem_L0+0, 0 + MOVWF _cap+0 +;main.c,811 :: Relay_set(ind, cap, sw); + MOVF tune_ind_mem_L0+0, 0 + MOVWF FARG_Relay_set_L+0 + MOVF tune_cap_mem_L0+0, 0 + MOVWF FARG_Relay_set_C+0 + MOVF _SW+0, 0 + MOVWF FARG_Relay_set_I+0 + CALL _Relay_set+0 +;main.c,812 :: } +L_tune230: +;main.c,814 :: asm CLRWDT; + CLRWDT +;main.c,815 :: get_SWR(); + CALL _get_swr+0 +;main.c,816 :: Key_out = 1; + BSF LATD2_bit+0, BitPos(LATD2_bit+0) +;main.c,817 :: return; +;main.c,818 :: } +L_end_tune: + RETURN +; end of _tune diff --git a/Firmware/ATU-10_FW_13/main.c b/Firmware/ATU-10_FW_13/main.c new file mode 100644 index 0000000..aca8b7b --- /dev/null +++ b/Firmware/ATU-10_FW_13/main.c @@ -0,0 +1,818 @@ +// X-202 HF FM AM SSB Receiver +// David Fainitski, N7DDC +// 2020 + +#include "pic_init.h" +#include "main.h" +#include "oled_control.h" +#include "Soft_I2C.h" + + +// global variables +char txt[8], txt_2[8]; +unsigned long Tick = 0; // ms system tick +int Voltage, Voltage_old = 0; +char btn_1_cnt = 0, btn_2_cnt = 0; +unsigned long volt_cnt = 0, watch_cnt = 0, btn_cnt = 0, off_cnt, disp_cnt; +int PWR, SWR, SWR_ind = 0, SWR_fixed_old = 100, PWR_fixed_old = 9999; +char ind = 0, cap = 0, SW = 0, step_cap = 0, step_ind = 0, L_linear = 0, C_linear = 0; +bit Overflow, B_short, B_long, B_xlong, gre, E_short, E_long; + +int Rel_Del = 7, rldl, min_for_start = 10, max_for_start = 150; +int Auto_delta = 130; // 1.3 SWR + +unsigned long Disp_time = 300; // Time in seconds +unsigned long Off_time = 1800; // Time in seconds + +#define FW_VER "1.3" + +// interrupt processing +void interupt() iv 0x0004 { + // + if(TMR0IF_bit) { // Timer0 + TMR0IF_bit = 0; + Tick++; + TMR0L = 0xC0; // 80_000 cycles to OF + TMR0H = 0xE0; + } + // + if(Tick>=btn_cnt){ // every 10ms + btn_cnt += 10; + // + if(GetButton | Start){ + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + } + // + if(GetButton){ // + if(btn_1_cnt<250) btn_1_cnt++; + if(btn_1_cnt==25) B_long = 1; // long pressing detected + if(btn_1_cnt==250 & OLED_PWD) B_xlong = 1; // Xtra long pressing detected + } + else if(btn_1_cnt>2 & btn_1_cnt<25){ + B_short = 1; // short pressing detected + btn_1_cnt = 0; + } + else + btn_1_cnt = 0; + // External interface + if(Start){ + if(btn_2_cnt<25) btn_2_cnt++; + if(btn_2_cnt==20 & Key_in) E_long = 1; + } + else if(btn_2_cnt>1 & btn_2_cnt<10){ + E_short = 1; + btn_2_cnt = 0; + } + else + btn_2_cnt = 0; + } + return; +} + + +void main() { + pic_init(); + Red = 1; + Key_out = 1; + gre = 1; + oled_start(); + //if(Debug) check_reset_flags(); + ADC_Init(); + Overflow = 0; + B_short = 0; + B_long = 0; + B_xlong = 0; + E_short = 0; + E_long = 0; + // + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + + // + rldl = Rel_Del; + //Relay_set(0, 0, 0); + // + while(1) { + if(Tick>=volt_cnt){ // every 3 second + volt_cnt += 3000; + Voltage_show(); + } + // + if(Tick>=watch_cnt){ // every 300 ms unless power off + watch_cnt += 300; + watch_swr(); + } + // + if(Tick>=disp_cnt){ // Display off + //Disp = 0; + OLED_PWD = 0; + } + // + if(Tick>=off_cnt){ // Go to power off + power_off(); + } + // + if(B_short){ + if(OLED_PWD) Btn_short(); + else oled_start(); + } + if(B_long){ + if(OLED_PWD) Btn_long(); + else oled_start(); + } + if(B_xlong){ + if(OLED_PWD) Btn_xlong(); + else oled_start(); + } + // External interface + if(E_short){ + if(OLED_PWD==0) oled_start(); + Btn_short(); + } + if(E_long){ + if(OLED_PWD==0) { Ext_long(); oled_start(); } + else Btn_long(); + } + + } // while(1) +} // main + + +void oled_start(){ + OLED_PWD = 1; + //Disp = 1; + Delay_ms(200); + Soft_I2C_init(); + Delay_ms(10); + oled_init(); + // + if(gre){ + Greating(); + gre = 0; + oled_clear(); + } + oled_wr_str(0, 0, "PWR W", 9); + oled_bat(); + oled_wr_str(2, 0, "SWR ", 9); + oled_wr_str(0, 42, "=", 1); + oled_wr_str(2, 42, "=", 1); + Voltage_old = 9999; + SWR_fixed_old = 100; + PWR_fixed_old = 9999; + SWR_ind = 0; + draw_swr(SWR_ind); + volt_cnt = Tick + 1; + watch_cnt = Tick; + B_short = 0; B_long = 0; B_xlong = 0; + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + return; +} + + +void watch_swr(void){ + char peak_cnt, cnt; + int delta = Auto_delta - 100; + int PWR_fixed, SWR_fixed; + // + Delay_ms(50); + // peak detector + cnt = 600; + PWR_fixed = 0; + SWR_fixed = 0; + for(peak_cnt=0; peak_cntPWR_fixed) {PWR_fixed = PWR; SWR_fixed = SWR;} + Delay_ms(1); + } + // + if(PWR_fixed>0){ + if(OLED_PWD){ + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + } + else oled_start(); + }; + // + if(PWR_fixed!=PWR_fixed_old){ + if(Overflow) + oled_wr_str(0, 42, ">", 1); + else + oled_wr_str(0, 42, "=", 1); + PWR_fixed_old = PWR_fixed; + draw_power(PWR_fixed); + } + // + if(PWR_fixed<10){ + SWR_fixed = 0; + //SWR_ind = 0; // Last meassured SWR on display ! not a bug + draw_swr(SWR_ind); + return; + } + // + if(Overflow){ + for(cnt=3; cnt!=0; cnt--){ + oled_wr_str(2, 6, "OVERLOAD ", 9); + Delay_ms(500); + oled_wr_str(2, 0, " ", 9); + Delay_ms(500); + } + oled_wr_str(2, 0, "SWR ", 9); + oled_wr_str(2, 42, "=", 1); + draw_swr(SWR_fixed); + Delay_ms(500); + Overflow = 0; + } + // + else if(PWR_fixed>=min_for_start && PWR_fixed=Auto_delta || SWR_Fixed>900 ) { + if( (SWR_fixed>SWR_fixed_old && (SWR_fixed-SWR_fixed_old)>delta) || (SWR_fixeddelta) || SWR_Fixed>900 ) { + Btn_long(); + return; + } + } + // + if(SWR_fixed>99 && SWR_fixed!=SWR_ind){ + SWR_ind = SWR_fixed; + draw_swr(SWR_ind); + } + // + return; +} + +void draw_swr(unsigned int s){ + if(s==0) + oled_wr_str(2, 60, "0.00", 4); + else { + IntToStr(s, txt_2); + txt[0] = txt_2[3]; + txt[1] = '.'; + txt[2] = txt_2[4]; + txt[3] = txt_2[5]; + // + oled_wr_str(2, 60, txt, 4); + } + return; +} + +void draw_power(unsigned int p){ + // + if(p==0){ + oled_wr_str(0, 60, "0.0", 3); + return; + } + else if(p<10){ // <1 W + IntToStr(p, txt_2); + txt[0] = '0'; + txt[1] = '.'; + txt[2] = txt_2[5]; + } + else if(p<100){ // <10W + IntToStr(p, txt_2); + txt[0] = txt_2[4]; + txt[1] = '.'; + txt[2] = txt_2[5]; + } + else{ // >10W + p += 5; + IntToStr(p, txt_2); + txt[0] = ' '; + txt[1] = txt_2[3]; + txt[2] = txt_2[4]; + } + oled_wr_str(0, 60, txt, 3); + return; +} + +void Voltage_show(){ + get_batt(); + if(Voltage != Voltage_old) { Voltage_old = Voltage; oled_voltage(Voltage); } + // 4.2 - 3.4 + //rldl = Rel_Del + (4200 - Voltage) / 100; + if(Voltage>3700){ + Green = 0; + Red = 1; + Delay_ms(30); + Green = 1; + Red = 1; + } + else if(Voltage>3590){ + Green = 0; + Red = 0; + Delay_ms(30); + Green = 1; + Red = 1; + } + else { // <3.7V + Red = 0; + Green = 1; + Delay_ms(30); + Red = 1; + Green = 1; + } + // + if(Voltage<3400){ + oled_clear(); + oled_wr_str(1, 0, " LOW BATT ", 11); + Delay_ms(2000); + OLED_PWD = 0; + power_off(); + } + return; +} + +void Btn_xlong(){ + B_xlong = 0; + btn_cnt = 0; + oled_clear(); + oled_wr_str(1, 0, " POWER OFF ", 11); + Delay_ms(2000); + power_off(); + return; +} + +void Btn_long(){ + Green = 0; + oled_wr_str(2, 0, "TUNE ", 9); + tune(); + SWR_ind = SWR; + SWR_fixed_old = SWR; + oled_wr_str(2, 0, "SWR ", 4); + oled_wr_str(2, 42, "=", 1); + draw_swr(SWR_ind); + Green = 1; + B_long = 0; + E_long = 0; + btn_1_cnt = 0; + volt_cnt = Tick; + watch_cnt = Tick; + return; +} + +void Ext_long(){ + Green = 0; + OLED_PWD = 1; + tune(); + SWR_ind = SWR; + Green = 1; + E_long = 0; + return; +} + +void Btn_short(){ + Green = 0; + atu_reset(); + oled_wr_str(2, 0, "RESET ", 9); + Delay_ms(600); + oled_wr_str(2, 0, "SWR ", 5); + oled_wr_str(2, 42, "=", 1); + oled_wr_str(2, 60, "0.00", 4); + SWR_fixed_old = 100; + Delay_ms(300); + Green = 1; + B_short = 0; + E_short = 0; + btn_1_cnt = 0; + volt_cnt = Tick; + watch_cnt = Tick; + return; +} + +void Greating(){ + Green = 0; + oled_clear(); + oled_wr_str_s(1, 0, " DESIGNED BY N7DDC", 18); + oled_wr_str_s(3, 0, " FW VERSION ", 12); + oled_wr_str_s(3, 12*7, FW_VER, 3); + Delay_ms(3000); + while(GetButton) asm NOP; + Green = 1; + return; +} + +void atu_reset(){ + ind = 0; + cap = 0; + SW = 0; + Relay_set(ind, cap, SW); + return; +} + +void Relay_set(char L, char C, char I){ + L_010 = ~L.B0; + L_022 = ~L.B1; + L_045 = ~L.B2; + L_100 = ~L.B3; + L_220 = ~L.B4; + L_450 = ~L.B5; + L_1000 = ~L.B6; + // + C_22 = ~C.B0; + C_47 = ~C.B1; + C_100 = ~C.B2; + C_220 = ~C.B3; + C_470 = ~C.B4; + C_1000 = ~C.B5; + C_2200 = ~C.B6; + // + C_sw = I; + // + Rel_to_gnd = 1; + Vdelay_ms(rldl); + Rel_to_gnd = 0; + Delay_us(10); + Rel_to_plus_N = 0; + Vdelay_ms(rldl); + Rel_to_plus_N = 1; + Vdelay_ms(rldl); + // + L_010 = 0; + L_022 = 0; + L_045 = 0; + L_100 = 0; + L_220 = 0; + L_450 = 0; + L_1000 = 0; + // + C_22 = 0; + C_47 = 0; + C_100 = 0; + C_220 = 0; + C_470 = 0; + C_1000 = 0; + C_2200 = 0; + // + C_sw = 0; + return; +} + +void power_off(void){ + char btn_cnt; + // Disable interrupts + GIE_bit = 0; + T0EN_bit = 0; + TMR0IF_bit = 0; + IOCIE_bit = 1; + IOCBF5_bit = 0; + IOCBN5_bit = 1; + // Power saving + OLED_PWD = 0; + RED = 1; + Green = 1; + // + C_sw = 0; + SYSCMD_bit = 1; + // + btn_cnt = 0; + while(1){ + if(btn_cnt==0){ Delay_ms(100); IOCBF5_bit = 0; asm sleep; } + asm NOP; + Delay_ms(100); + if(GetButton) btn_cnt++; + else btn_cnt = 0; + if(btn_cnt>15) break; + } + // Power saving + SYSCMD_bit = 0; + // Enable interrupts + IOCIE_bit = 0; + IOCBN5_bit = 0; + IOCBF5_bit = 0; + T0EN_bit = 1; + GIE_bit = 1; + // Return to work + gre = 1; + oled_start(); + while(GetButton){asm NOP;} + B_short = 0; + B_long = 0; + B_xlong = 0; + E_long = 0; + btn_1_cnt = 0; + btn_cnt = Tick; + return; +} + + +void check_reset_flags(void){ + char i = 0; + if(STKOVF_bit){oled_wr_str_s(0, 0, "Stack overflow", 14); i = 1;} + if(STKUNF_bit){oled_wr_str_s(1, 0, "Stack underflow", 15); i = 1;} + if(!nRWDT_bit){oled_wr_str_s(2, 0, "WDT overflow", 12); i = 1;} + if(!nRMCLR_bit){oled_wr_str_s(3, 0, "MCLR reset ", 12); i = 1;} + if(!nBOR_bit){oled_wr_str_s(4, 0, "BOR reset ", 12); i = 1;} + if(i){ + Delay_ms(5000); + oled_clear(); + } + return; +} + +int correction(int input) { + input *= 2; + // + if(input <= 543) input += 256; + else if(input <= 791) input += 274; + else if(input <= 1225) input += 288; + else if(input <= 1991) input += 286; + else if(input <= 2766) input += 288; + else if(input <= 3970) input += 260; + else if(input <= 5100) input += 250; + else input += 240; + // + return input; +} + +int get_reverse(void){ + unsigned int v; + unsigned long d; + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + Delay_us(100); + v = ADC_Get_Sample(REV_input); + if(v==1023){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); + Delay_us(100); + v = ADC_Get_Sample(REV_input) * 2; + } + if(v==2046){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); + Delay_us(100); + v = ADC_Get_Sample(REV_input); + if(v==1023) Overflow = 1; + get_batt(); + d = (long)v * (long)Voltage; + d = d / 1024; + v = (int)d; + } + return v; +} + +int get_forward(void){ + unsigned int v; + unsigned long d; + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + Delay_us(100); + v = ADC_Get_Sample(FWD_input); + if(v==1023){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); + Delay_us(100); + v = ADC_Get_Sample(FWD_input) * 2; + } + if(v==2046){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); + Delay_us(100); + v = ADC_Get_Sample(FWD_input); + if(v==1023) Overflow = 1; + get_batt(); + d = (long)v * (long)Voltage; + d = d / 1024; + v = (int)d; + } + return v; +} + + +void get_pwr(){ + long Forward, Reverse; + float p; + // + Forward = get_forward(); + Reverse = get_reverse(); + // + p = correction(Forward); + P = p * 5 / 1000; + p = p / 1.414; + p = p * p; + p = p / 5; + p += 0.5; + PWR = p; + // + if(PWR>0){ + if(OLED_PWD){ + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + } + else oled_start(); + } + // + if(Reverse >= Forward) + Forward = 999; + else { + Forward = ((Forward + Reverse) * 100) / (Forward - Reverse); + if(Forward>999) Forward = 999; + } + // + SWR = Forward; + return; +} + +void get_swr(){ + unsigned int tune_cnt = 300; + unsigned int PWR_max = 0; + get_pwr(); + while(PWRmax_for_start){ // waiting for good power + if(B_short){ + Btn_short(); + SWR = 0; + break; + } + if(B_xlong){ + //Btn_xlong(); + SWR = 0; + break; + } + // + get_pwr(); + if(tune_cnt>0){ + tune_cnt --; + if(PWR>PWR_max) + PWR_max = PWR; + } + else { + draw_power(PWR_max); + PWR_max = 0; + tune_cnt = 300; + Delay_ms(1); + } + } + // good power + return; +} + +void get_batt(void){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + Delay_us(100); + Voltage = ADC_Get_Sample(Battery_input) * 11; + return; +} + + void coarse_cap() { + char step = 3; + char count; + int min_swr; + // + cap = 0; + Relay_set(ind, cap, SW); + get_swr(); + min_swr = SWR + SWR/20; + for(count=step; count<=31;) { + Relay_set(ind, count, SW); + get_swr(); + if(SWR < min_swr) { + min_swr = SWR + SWR/20; + cap = count; + step_cap = step; + if(SWR<120) break; + count += step; + if(count==9) count = 8; + else if(count==17) {count = 16; step = 4;} + } + else break; + } + Relay_set(ind, cap, SW); + return; +} + +void coarse_tune() { + char step = 3; + char count; + char mem_cap, mem_step_cap; + int min_swr; + + mem_cap = 0; + step_ind = step; + mem_step_cap = 3; + min_swr = SWR + SWR/20; + for(count=step; count<=31;) { + Relay_set(count, cap, SW); + coarse_cap(); + get_swr(); + if(SWR < min_swr) { + min_swr = SWR + SWR/20; + ind = count; + mem_cap = cap; + step_ind = step; + mem_step_cap = step_cap; + if(SWR<120) break; + count += step; + if(count==9) count = 8; + else if(count==17) {count = 16; step = 4;} + } + else break; + } + cap = mem_cap; + Relay_set(ind, cap, SW); + step_cap = mem_step_cap; + Delay_ms(10); + return; +} + +void sharp_cap() { + char range, count, max_range, min_range; + int min_swr; + range = step_cap; + // + max_range = cap + range; + if(max_range>31) max_range = 31; + if(cap>range) min_range = cap - range; else min_range = 0; + cap = min_range; + Relay_set(ind, cap, SW); + get_swr(); + if(SWR==0) return; + min_SWR = SWR; + for(count=min_range+1; count<=max_range; count++) { + Relay_set(ind, count, SW); + get_swr(); + if(SWR==0) return; + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR < min_SWR) { + min_SWR = SWR; + cap = count; + if(SWR<120) break; + } + else break; + } + Relay_set(ind, cap, SW); + return; +} + +void sharp_ind() { + char range, count, max_range, min_range; + int min_SWR; + range = step_ind; + // + max_range = ind + range; + if(max_range>31) max_range = 31; + if(ind>range) min_range = ind - range; else min_range = 0; + ind = min_range; + Relay_set(ind, cap, SW); + get_swr(); + if(SWR==0) return; + min_SWR = SWR; + for(count=min_range+1; count<=max_range; count++) { + Relay_set(count, cap, SW); + get_swr(); + if(SWR==0) return; + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR < min_SWR) { + min_SWR = SWR; + ind = count; + if(SWR<120) break; + } + else break; + } + Relay_set(ind, cap, SW); + return; +} + + +void tune() { + int swr_mem, ind_mem, cap_mem; + asm CLRWDT; + Key_out = 0; + Delay_ms(100); + get_swr(); if(SWR<110) { Key_out = 1; return; } + atu_reset(); + Delay_ms(50); + get_swr(); if(SWR<110) { Key_out = 1; return; } + // + swr_mem = SWR; + coarse_tune(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + get_swr(); if(SWR<120) { Key_out = 1; return; } + sharp_ind(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + get_swr(); if(SWR<120) { Key_out = 1; return; } + sharp_cap(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + get_swr(); if(SWR<120) { Key_out = 1; return; } + // + if(SWR<200 & SWR100) { Key_out = 1; return; } + swr_mem = SWR; + ind_mem = ind; + cap_mem = cap; + // + if(SW==1) SW = 0; else SW = 1; + atu_reset(); + Relay_set(ind, cap, SW); + Delay_ms(50); + get_swr(); if(SWR<120) { Key_out = 1; return; } + // + coarse_tune(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + get_swr(); if(SWR<120) { Key_out = 1; return; } + sharp_ind(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + get_swr(); if(SWR<120) { Key_out = 1; return; } + sharp_cap(); if(SWR==0) {atu_reset(); Key_out = 1; return;} + get_swr(); if(SWR<120) { Key_out = 1; return; } + // + if(SWR>swr_mem) { + if(SW==1) SW = 0; else SW = 1; + ind = ind_mem; + cap = cap_mem; + Relay_set(ind, cap, sw); + } + // + asm CLRWDT; + get_SWR(); + Key_out = 1; + return; +} \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/main.c.ini b/Firmware/ATU-10_FW_13/main.c.ini new file mode 100644 index 0000000..978a202 --- /dev/null +++ b/Firmware/ATU-10_FW_13/main.c.ini @@ -0,0 +1,5 @@ +[Position] +Line=445 +Column=13 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/main.cp b/Firmware/ATU-10_FW_13/main.cp new file mode 100644 index 0000000..c50e5ef --- /dev/null +++ b/Firmware/ATU-10_FW_13/main.cp @@ -0,0 +1,1041 @@ +#line 1 "D:/Projects/ATU-10/Firmware_1.3/main.c" +#line 1 "d:/projects/atu-10/firmware_1.3/pic_init.h" + + + + +sbit Red at LATB4_bit; +sbit Green at LATB3_bit; +sbit OLED_PWD at LATA4_bit; +sbit C_sw at LATE0_bit; +sbit L_010 at LATD7_bit; +sbit L_022 at LATD6_bit; +sbit L_045 at LATD5_bit; +sbit L_100 at LATD4_bit; +sbit L_220 at LATC7_bit; +sbit L_450 at LATC6_bit; +sbit L_1000 at LATC5_bit; +sbit C_22 at LATA5_bit; +sbit C_47 at LATE1_bit; +sbit C_100 at LATA7_bit; +sbit C_220 at LATA6_bit; +sbit C_470 at LATC0_bit; +sbit C_1000 at LATC1_bit; +sbit C_2200 at LATC2_bit; +sbit Rel_to_gnd at LATD3_bit; +sbit Rel_to_plus_N at LATC4_bit; +#line 1 "d:/projects/atu-10/firmware_1.3/main.h" + +void pic_init(void); +void Btn_long(void); +void Btn_short(void); +void Btn_xlong(void); +void check_reset_flags(void); +void Voltage_show(void); +void Relay_set(char, char, char); +int get_reverse(void); +int get_forward(void); +void get_pwr(void); +void get_swr(void); +void get_batt(void); +void watch_swr(void); +void coarse_cap(void); +void coarse_tune(void); +void sharp_cap(void); +void sharp_ind(void); +void sub_tune(void); +void tune(void); +int correction(int); +void atu_reset(void); +void draw_swr(unsigned int); +void draw_power(unsigned int); +void oled_start(void); +void power_off(void); +void Greating(void); +void Ext_long(void); +#line 1 "d:/projects/atu-10/firmware_1.3/oled_control.h" +#line 1 "d:/projects/atu-10/firmware_1.3/font_5x8.h" + static const code char font_5x8[] = { + +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, +0x24, 0x2A, 0x7F, 0x2A, 0x12, +0x23, 0x13, 0x08, 0x64, 0x62, +0x36, 0x49, 0x55, 0x22, 0x50, +0x00, 0x05, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, +0x08, 0x2A, 0x1C, 0x2A, 0x08, +0x08, 0x08, 0x3E, 0x08, 0x08, +0x00, 0x50, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, +0x00, 0x30, 0x30, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, +0x3E, 0x51, 0x49, 0x45, 0x3E, +0x00, 0x42, 0x7F, 0x40, 0x00, +0x42, 0x61, 0x51, 0x49, 0x46, +0x21, 0x41, 0x45, 0x4B, 0x31, +0x18, 0x14, 0x12, 0x7F, 0x10, +0x27, 0x45, 0x45, 0x45, 0x39, +0x3C, 0x4A, 0x49, 0x49, 0x30, +0x01, 0x71, 0x09, 0x05, 0x03, +0x36, 0x49, 0x49, 0x49, 0x36, +0x06, 0x49, 0x49, 0x29, 0x1E, +0x00, 0x36, 0x36, 0x00, 0x00, +0x00, 0x56, 0x36, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, +0x14, 0x14, 0x14, 0x14, 0x14, +0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x51, 0x09, 0x06, +0x32, 0x49, 0x79, 0x41, 0x3E, +0x7E, 0x11, 0x11, 0x11, 0x7E, +0x7F, 0x49, 0x49, 0x49, 0x36, +0x3E, 0x41, 0x41, 0x41, 0x22, +0x7F, 0x41, 0x41, 0x22, 0x1C, +0x7F, 0x49, 0x49, 0x49, 0x41, +0x7F, 0x09, 0x09, 0x01, 0x01, +0x3E, 0x41, 0x41, 0x51, 0x32, +0x7F, 0x08, 0x08, 0x08, 0x7F, +0x00, 0x41, 0x7F, 0x41, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, +0x7F, 0x08, 0x14, 0x22, 0x41, +0x7F, 0x40, 0x40, 0x40, 0x40, +0x7F, 0x02, 0x04, 0x02, 0x7F, +0x7F, 0x04, 0x08, 0x10, 0x7F, +0x3E, 0x41, 0x41, 0x41, 0x3E, +0x7F, 0x09, 0x09, 0x09, 0x06, +0x3E, 0x41, 0x51, 0x21, 0x5E, +0x7F, 0x09, 0x19, 0x29, 0x46, +0x46, 0x49, 0x49, 0x49, 0x31, +0x01, 0x01, 0x7F, 0x01, 0x01, +0x3F, 0x40, 0x40, 0x40, 0x3F, +0x1F, 0x20, 0x40, 0x20, 0x1F, +0x7F, 0x20, 0x18, 0x20, 0x7F, +0x63, 0x14, 0x08, 0x14, 0x63, +0x03, 0x04, 0x78, 0x04, 0x03, +0x61, 0x51, 0x49, 0x45, 0x43, +0x00, 0x00, 0x7F, 0x41, 0x41, +0x02, 0x04, 0x08, 0x10, 0x20, +0x41, 0x41, 0x7F, 0x00, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, +0x40, 0x40, 0x40, 0x40, 0x40, +0x00, 0x01, 0x02, 0x04, 0x00, +0x20, 0x54, 0x54, 0x54, 0x78, +0x7F, 0x48, 0x44, 0x44, 0x38, +0x38, 0x44, 0x44, 0x44, 0x20, +0x38, 0x44, 0x44, 0x48, 0x7F, +0x38, 0x54, 0x54, 0x54, 0x18, +0x08, 0x7E, 0x09, 0x01, 0x02, +0x08, 0x14, 0x54, 0x54, 0x3C, +0x7F, 0x08, 0x04, 0x04, 0x78, +0x00, 0x44, 0x7D, 0x40, 0x00, +0x20, 0x40, 0x44, 0x3D, 0x00, +0x00, 0x7F, 0x10, 0x28, 0x44, +0x00, 0x41, 0x7F, 0x40, 0x00, +0x7C, 0x04, 0x18, 0x04, 0x78, +0x7C, 0x08, 0x04, 0x04, 0x78, +0x38, 0x44, 0x44, 0x44, 0x38, +0x7C, 0x14, 0x14, 0x14, 0x08, +0x08, 0x14, 0x14, 0x18, 0x7C, +0x7C, 0x08, 0x04, 0x04, 0x08, +0x48, 0x54, 0x54, 0x54, 0x20, +0x04, 0x3F, 0x44, 0x40, 0x20, +0x3C, 0x40, 0x40, 0x20, 0x7C, +0x1C, 0x20, 0x40, 0x20, 0x1C, +0x3C, 0x40, 0x30, 0x40, 0x3C, +0x44, 0x28, 0x10, 0x28, 0x44, +0x0C, 0x50, 0x50, 0x50, 0x3C, +0x44, 0x64, 0x54, 0x4C, 0x44, +0x00, 0x08, 0x36, 0x41, 0x00, +0x00, 0x00, 0x7F, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, +0x08, 0x1C, 0x2A, 0x08, 0x08 +}; +#line 3 "d:/projects/atu-10/firmware_1.3/oled_control.h" +static oled_addr = 0x78; +static char shift_line = 64; +static char oled_shift = 2; +static char inversion = 1; + +void oled_init (void); +void oled_clear(void); +void send_command (char); +void set_addressing (char, char); +void oled_wr_str_s(char, char, char*, char); +void oled_wr_str(char, char, char*, char); +void oled_bat (void); +void oled_voltage (int); +void oled_clear (void); + + +static const char batt[] = { + 0B11111000, + 0B11111000, + + 0B00011111, + 0B00011111, + 0B00000011, + 0B00000011, + 0B00000011, + 0B00011111, + 0B00011111, + + 0B11111000, + 0B11111000, + + 0B11111111, + 0B11111111, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B11111111, + 0B11111111, + + 0B11111111, + 0B11111111, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B11111111, + 0B11111111, + + 0B11111111, + 0B11111111, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11111111, + 0B11111111 + }; +#line 1 "d:/projects/atu-10/firmware_1.3/soft_i2c.h" + +void Soft_I2C_Init(void); +void Soft_I2C_Start(void); +char Soft_I2C_Write(char); +char Soft_I2C_Read(void); +void Soft_I2C_ACK(void); +void Soft_I2C_NACK(void); +void Soft_I2C_Stop(void); +#line 12 "D:/Projects/ATU-10/Firmware_1.3/main.c" +char txt[8], txt_2[8]; +unsigned long Tick = 0; +int Voltage, Voltage_old = 0; +char btn_1_cnt = 0, btn_2_cnt = 0; +unsigned long volt_cnt = 0, watch_cnt = 0, btn_cnt = 0, off_cnt, disp_cnt; +int PWR, SWR, SWR_ind = 0, SWR_fixed_old = 100, PWR_fixed_old = 9999; +char ind = 0, cap = 0, SW = 0, step_cap = 0, step_ind = 0, L_linear = 0, C_linear = 0; +bit Overflow, B_short, B_long, B_xlong, gre, E_short, E_long; + +int Rel_Del = 7, rldl, min_for_start = 10, max_for_start = 150; +int Auto_delta = 130; + +unsigned long Disp_time = 300; +unsigned long Off_time = 1800; + + + + +void interupt() iv 0x0004 { + + if(TMR0IF_bit) { + TMR0IF_bit = 0; + Tick++; + TMR0L = 0xC0; + TMR0H = 0xE0; + } + + if(Tick>=btn_cnt){ + btn_cnt += 10; + + if( ~ PORTB.B5 | ~PORTD.B1 ){ + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + } + + if( ~ PORTB.B5 ){ + if(btn_1_cnt<250) btn_1_cnt++; + if(btn_1_cnt==25) B_long = 1; + if(btn_1_cnt==250 & OLED_PWD) B_xlong = 1; + } + else if(btn_1_cnt>2 & btn_1_cnt<25){ + B_short = 1; + btn_1_cnt = 0; + } + else + btn_1_cnt = 0; + + if( ~PORTD.B1 ){ + if(btn_2_cnt<25) btn_2_cnt++; + if(btn_2_cnt==20 & PORTD.B2 ) E_long = 1; + } + else if(btn_2_cnt>1 & btn_2_cnt<10){ + E_short = 1; + btn_2_cnt = 0; + } + else + btn_2_cnt = 0; + } + return; +} + + +void main() { + pic_init(); + Red = 1; + LATD2_bit = 1; + gre = 1; + oled_start(); + + ADC_Init(); + Overflow = 0; + B_short = 0; + B_long = 0; + B_xlong = 0; + E_short = 0; + E_long = 0; + + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + + + rldl = Rel_Del; + + + while(1) { + if(Tick>=volt_cnt){ + volt_cnt += 3000; + Voltage_show(); + } + + if(Tick>=watch_cnt){ + watch_cnt += 300; + watch_swr(); + } + + if(Tick>=disp_cnt){ + + OLED_PWD = 0; + } + + if(Tick>=off_cnt){ + power_off(); + } + + if(B_short){ + if(OLED_PWD) Btn_short(); + else oled_start(); + } + if(B_long){ + if(OLED_PWD) Btn_long(); + else oled_start(); + } + if(B_xlong){ + if(OLED_PWD) Btn_xlong(); + else oled_start(); + } + + if(E_short){ + if(OLED_PWD==0) oled_start(); + Btn_short(); + } + if(E_long){ + if(OLED_PWD==0) { Ext_long(); oled_start(); } + else Btn_long(); + } + + } +} + + +void oled_start(){ + OLED_PWD = 1; + + Delay_ms(200); + Soft_I2C_init(); + Delay_ms(10); + oled_init(); + + if(gre){ + Greating(); + gre = 0; + oled_clear(); + } + oled_wr_str(0, 0, "PWR W", 9); + oled_bat(); + oled_wr_str(2, 0, "SWR ", 9); + oled_wr_str(0, 42, "=", 1); + oled_wr_str(2, 42, "=", 1); + Voltage_old = 9999; + SWR_fixed_old = 100; + PWR_fixed_old = 9999; + SWR_ind = 0; + draw_swr(SWR_ind); + volt_cnt = Tick + 1; + watch_cnt = Tick; + B_short = 0; B_long = 0; B_xlong = 0; + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + return; +} + + +void watch_swr(void){ + char peak_cnt, cnt; + int delta = Auto_delta - 100; + int PWR_fixed, SWR_fixed; + + Delay_ms(50); + + cnt = 600; + PWR_fixed = 0; + SWR_fixed = 0; + for(peak_cnt=0; peak_cntPWR_fixed) {PWR_fixed = PWR; SWR_fixed = SWR;} + Delay_ms(1); + } + + if(PWR_fixed>0){ + if(OLED_PWD){ + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + } + else oled_start(); + }; + + if(PWR_fixed!=PWR_fixed_old){ + if(Overflow) + oled_wr_str(0, 42, ">", 1); + else + oled_wr_str(0, 42, "=", 1); + PWR_fixed_old = PWR_fixed; + draw_power(PWR_fixed); + } + + if(PWR_fixed<10){ + SWR_fixed = 0; + + draw_swr(SWR_ind); + return; + } + + if(Overflow){ + for(cnt=3; cnt!=0; cnt--){ + oled_wr_str(2, 6, "OVERLOAD ", 9); + Delay_ms(500); + oled_wr_str(2, 0, " ", 9); + Delay_ms(500); + } + oled_wr_str(2, 0, "SWR ", 9); + oled_wr_str(2, 42, "=", 1); + draw_swr(SWR_fixed); + Delay_ms(500); + Overflow = 0; + } + + else if(PWR_fixed>=min_for_start && PWR_fixed=Auto_delta || SWR_Fixed>900 ) { + if( (SWR_fixed>SWR_fixed_old && (SWR_fixed-SWR_fixed_old)>delta) || (SWR_fixeddelta) || SWR_Fixed>900 ) { + Btn_long(); + return; + } + } + + if(SWR_fixed>99 && SWR_fixed!=SWR_ind){ + SWR_ind = SWR_fixed; + draw_swr(SWR_ind); + } + + return; +} + +void draw_swr(unsigned int s){ + if(s==0) + oled_wr_str(2, 60, "0.00", 4); + else { + IntToStr(s, txt_2); + txt[0] = txt_2[3]; + txt[1] = '.'; + txt[2] = txt_2[4]; + txt[3] = txt_2[5]; + + oled_wr_str(2, 60, txt, 4); + } + return; +} + +void draw_power(unsigned int p){ + + if(p==0){ + oled_wr_str(0, 60, "0.0", 3); + return; + } + else if(p<10){ + IntToStr(p, txt_2); + txt[0] = '0'; + txt[1] = '.'; + txt[2] = txt_2[5]; + } + else if(p<100){ + IntToStr(p, txt_2); + txt[0] = txt_2[4]; + txt[1] = '.'; + txt[2] = txt_2[5]; + } + else{ + p += 5; + IntToStr(p, txt_2); + txt[0] = ' '; + txt[1] = txt_2[3]; + txt[2] = txt_2[4]; + } + oled_wr_str(0, 60, txt, 3); + return; +} + +void Voltage_show(){ + get_batt(); + if(Voltage != Voltage_old) { Voltage_old = Voltage; oled_voltage(Voltage); } + + + if(Voltage>3700){ + Green = 0; + Red = 1; + Delay_ms(30); + Green = 1; + Red = 1; + } + else if(Voltage>3590){ + Green = 0; + Red = 0; + Delay_ms(30); + Green = 1; + Red = 1; + } + else { + Red = 0; + Green = 1; + Delay_ms(30); + Red = 1; + Green = 1; + } + + if(Voltage<3400){ + oled_clear(); + oled_wr_str(1, 0, " LOW BATT ", 11); + Delay_ms(2000); + OLED_PWD = 0; + power_off(); + } + return; +} + +void Btn_xlong(){ + B_xlong = 0; + btn_cnt = 0; + oled_clear(); + oled_wr_str(1, 0, " POWER OFF ", 11); + Delay_ms(2000); + power_off(); + return; +} + +void Btn_long(){ + Green = 0; + oled_wr_str(2, 0, "TUNE ", 9); + tune(); + SWR_ind = SWR; + SWR_fixed_old = SWR; + oled_wr_str(2, 0, "SWR ", 4); + oled_wr_str(2, 42, "=", 1); + draw_swr(SWR_ind); + Green = 1; + B_long = 0; + E_long = 0; + btn_1_cnt = 0; + volt_cnt = Tick; + watch_cnt = Tick; + return; +} + +void Ext_long(){ + Green = 0; + OLED_PWD = 1; + tune(); + SWR_ind = SWR; + Green = 1; + E_long = 0; + return; +} + +void Btn_short(){ + Green = 0; + atu_reset(); + oled_wr_str(2, 0, "RESET ", 9); + Delay_ms(600); + oled_wr_str(2, 0, "SWR ", 5); + oled_wr_str(2, 42, "=", 1); + oled_wr_str(2, 60, "0.00", 4); + SWR_fixed_old = 100; + Delay_ms(300); + Green = 1; + B_short = 0; + E_short = 0; + btn_1_cnt = 0; + volt_cnt = Tick; + watch_cnt = Tick; + return; +} + +void Greating(){ + Green = 0; + oled_clear(); + oled_wr_str_s(1, 0, " DESIGNED BY N7DDC", 18); + oled_wr_str_s(3, 0, " FW VERSION ", 12); + oled_wr_str_s(3, 12*7, "1.3" , 3); + Delay_ms(3000); + while( ~ PORTB.B5 ) asm NOP; + Green = 1; + return; +} + +void atu_reset(){ + ind = 0; + cap = 0; + SW = 0; + Relay_set(ind, cap, SW); + return; +} + +void Relay_set(char L, char C, char I){ + L_010 = ~L.B0; + L_022 = ~L.B1; + L_045 = ~L.B2; + L_100 = ~L.B3; + L_220 = ~L.B4; + L_450 = ~L.B5; + L_1000 = ~L.B6; + + C_22 = ~C.B0; + C_47 = ~C.B1; + C_100 = ~C.B2; + C_220 = ~C.B3; + C_470 = ~C.B4; + C_1000 = ~C.B5; + C_2200 = ~C.B6; + + C_sw = I; + + Rel_to_gnd = 1; + Vdelay_ms(rldl); + Rel_to_gnd = 0; + Delay_us(10); + Rel_to_plus_N = 0; + Vdelay_ms(rldl); + Rel_to_plus_N = 1; + Vdelay_ms(rldl); + + L_010 = 0; + L_022 = 0; + L_045 = 0; + L_100 = 0; + L_220 = 0; + L_450 = 0; + L_1000 = 0; + + C_22 = 0; + C_47 = 0; + C_100 = 0; + C_220 = 0; + C_470 = 0; + C_1000 = 0; + C_2200 = 0; + + C_sw = 0; + return; +} + +void power_off(void){ + char btn_cnt; + + GIE_bit = 0; + T0EN_bit = 0; + TMR0IF_bit = 0; + IOCIE_bit = 1; + IOCBF5_bit = 0; + IOCBN5_bit = 1; + + OLED_PWD = 0; + RED = 1; + Green = 1; + + C_sw = 0; + SYSCMD_bit = 1; + + btn_cnt = 0; + while(1){ + if(btn_cnt==0){ Delay_ms(100); IOCBF5_bit = 0; asm sleep; } + asm NOP; + Delay_ms(100); + if( ~ PORTB.B5 ) btn_cnt++; + else btn_cnt = 0; + if(btn_cnt>15) break; + } + + SYSCMD_bit = 0; + + IOCIE_bit = 0; + IOCBN5_bit = 0; + IOCBF5_bit = 0; + T0EN_bit = 1; + GIE_bit = 1; + + gre = 1; + oled_start(); + while( ~ PORTB.B5 ){asm NOP;} + B_short = 0; + B_long = 0; + B_xlong = 0; + E_long = 0; + btn_1_cnt = 0; + btn_cnt = Tick; + return; +} + + +void check_reset_flags(void){ + char i = 0; + if(STKOVF_bit){oled_wr_str_s(0, 0, "Stack overflow", 14); i = 1;} + if(STKUNF_bit){oled_wr_str_s(1, 0, "Stack underflow", 15); i = 1;} + if(!nRWDT_bit){oled_wr_str_s(2, 0, "WDT overflow", 12); i = 1;} + if(!nRMCLR_bit){oled_wr_str_s(3, 0, "MCLR reset ", 12); i = 1;} + if(!nBOR_bit){oled_wr_str_s(4, 0, "BOR reset ", 12); i = 1;} + if(i){ + Delay_ms(5000); + oled_clear(); + } + return; +} + +int correction(int input) { + input *= 2; + + if(input <= 543) input += 256; + else if(input <= 791) input += 274; + else if(input <= 1225) input += 288; + else if(input <= 1991) input += 286; + else if(input <= 2766) input += 288; + else if(input <= 3970) input += 260; + else if(input <= 5100) input += 250; + else input += 240; + + return input; +} + +int get_reverse(void){ + unsigned int v; + unsigned long d; + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + Delay_us(100); + v = ADC_Get_Sample( 10 ); + if(v==1023){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); + Delay_us(100); + v = ADC_Get_Sample( 10 ) * 2; + } + if(v==2046){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); + Delay_us(100); + v = ADC_Get_Sample( 10 ); + if(v==1023) Overflow = 1; + get_batt(); + d = (long)v * (long)Voltage; + d = d / 1024; + v = (int)d; + } + return v; +} + +int get_forward(void){ + unsigned int v; + unsigned long d; + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + Delay_us(100); + v = ADC_Get_Sample( 8 ); + if(v==1023){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH2); + Delay_us(100); + v = ADC_Get_Sample( 8 ) * 2; + } + if(v==2046){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_VREFH); + Delay_us(100); + v = ADC_Get_Sample( 8 ); + if(v==1023) Overflow = 1; + get_batt(); + d = (long)v * (long)Voltage; + d = d / 1024; + v = (int)d; + } + return v; +} + + +void get_pwr(){ + long Forward, Reverse; + float p; + + Forward = get_forward(); + Reverse = get_reverse(); + + p = correction(Forward); + P = p * 5 / 1000; + p = p / 1.414; + p = p * p; + p = p / 5; + p += 0.5; + PWR = p; + + if(PWR>0){ + if(OLED_PWD){ + disp_cnt = Tick + Disp_time*1000; + off_cnt = Tick + Off_time*1000; + } + else oled_start(); + } + + if(Reverse >= Forward) + Forward = 999; + else { + Forward = ((Forward + Reverse) * 100) / (Forward - Reverse); + if(Forward>999) Forward = 999; + } + + SWR = Forward; + return; +} + +void get_swr(){ + unsigned int tune_cnt = 300; + unsigned int PWR_max = 0; + get_pwr(); + while(PWRmax_for_start){ + if(B_short){ + Btn_short(); + SWR = 0; + break; + } + if(B_xlong){ + + SWR = 0; + break; + } + + get_pwr(); + if(tune_cnt>0){ + tune_cnt --; + if(PWR>PWR_max) + PWR_max = PWR; + } + else { + draw_power(PWR_max); + PWR_max = 0; + tune_cnt = 300; + Delay_ms(1); + } + } + + return; +} + +void get_batt(void){ + ADC_Init_Advanced(_ADC_INTERNAL_VREFL | _ADC_INTERNAL_FVRH1); + Delay_us(100); + Voltage = ADC_Get_Sample( 9 ) * 11; + return; +} + + void coarse_cap() { + char step = 3; + char count; + int min_swr; + + cap = 0; + Relay_set(ind, cap, SW); + get_swr(); + min_swr = SWR + SWR/20; + for(count=step; count<=31;) { + Relay_set(ind, count, SW); + get_swr(); + if(SWR < min_swr) { + min_swr = SWR + SWR/20; + cap = count; + step_cap = step; + if(SWR<120) break; + count += step; + if(count==9) count = 8; + else if(count==17) {count = 16; step = 4;} + } + else break; + } + Relay_set(ind, cap, SW); + return; +} + +void coarse_tune() { + char step = 3; + char count; + char mem_cap, mem_step_cap; + int min_swr; + + mem_cap = 0; + step_ind = step; + mem_step_cap = 3; + min_swr = SWR + SWR/20; + for(count=step; count<=31;) { + Relay_set(count, cap, SW); + coarse_cap(); + get_swr(); + if(SWR < min_swr) { + min_swr = SWR + SWR/20; + ind = count; + mem_cap = cap; + step_ind = step; + mem_step_cap = step_cap; + if(SWR<120) break; + count += step; + if(count==9) count = 8; + else if(count==17) {count = 16; step = 4;} + } + else break; + } + cap = mem_cap; + Relay_set(ind, cap, SW); + step_cap = mem_step_cap; + Delay_ms(10); + return; +} + +void sharp_cap() { + char range, count, max_range, min_range; + int min_swr; + range = step_cap; + + max_range = cap + range; + if(max_range>31) max_range = 31; + if(cap>range) min_range = cap - range; else min_range = 0; + cap = min_range; + Relay_set(ind, cap, SW); + get_swr(); + if(SWR==0) return; + min_SWR = SWR; + for(count=min_range+1; count<=max_range; count++) { + Relay_set(ind, count, SW); + get_swr(); + if(SWR==0) return; + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR < min_SWR) { + min_SWR = SWR; + cap = count; + if(SWR<120) break; + } + else break; + } + Relay_set(ind, cap, SW); + return; +} + +void sharp_ind() { + char range, count, max_range, min_range; + int min_SWR; + range = step_ind; + + max_range = ind + range; + if(max_range>31) max_range = 31; + if(ind>range) min_range = ind - range; else min_range = 0; + ind = min_range; + Relay_set(ind, cap, SW); + get_swr(); + if(SWR==0) return; + min_SWR = SWR; + for(count=min_range+1; count<=max_range; count++) { + Relay_set(count, cap, SW); + get_swr(); + if(SWR==0) return; + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } + if(SWR < min_SWR) { + min_SWR = SWR; + ind = count; + if(SWR<120) break; + } + else break; + } + Relay_set(ind, cap, SW); + return; +} + + +void tune() { + int swr_mem, ind_mem, cap_mem; + asm CLRWDT; + LATD2_bit = 0; + Delay_ms(100); + get_swr(); if(SWR<110) { LATD2_bit = 1; return; } + atu_reset(); + Delay_ms(50); + get_swr(); if(SWR<110) { LATD2_bit = 1; return; } + + swr_mem = SWR; + coarse_tune(); if(SWR==0) {atu_reset(); LATD2_bit = 1; return;} + get_swr(); if(SWR<120) { LATD2_bit = 1; return; } + sharp_ind(); if(SWR==0) {atu_reset(); LATD2_bit = 1; return;} + get_swr(); if(SWR<120) { LATD2_bit = 1; return; } + sharp_cap(); if(SWR==0) {atu_reset(); LATD2_bit = 1; return;} + get_swr(); if(SWR<120) { LATD2_bit = 1; return; } + + if(SWR<200 & SWR100) { LATD2_bit = 1; return; } + swr_mem = SWR; + ind_mem = ind; + cap_mem = cap; + + if(SW==1) SW = 0; else SW = 1; + atu_reset(); + Relay_set(ind, cap, SW); + Delay_ms(50); + get_swr(); if(SWR<120) { LATD2_bit = 1; return; } + + coarse_tune(); if(SWR==0) {atu_reset(); LATD2_bit = 1; return;} + get_swr(); if(SWR<120) { LATD2_bit = 1; return; } + sharp_ind(); if(SWR==0) {atu_reset(); LATD2_bit = 1; return;} + get_swr(); if(SWR<120) { LATD2_bit = 1; return; } + sharp_cap(); if(SWR==0) {atu_reset(); LATD2_bit = 1; return;} + get_swr(); if(SWR<120) { LATD2_bit = 1; return; } + + if(SWR>swr_mem) { + if(SW==1) SW = 0; else SW = 1; + ind = ind_mem; + cap = cap_mem; + Relay_set(ind, cap, sw); + } + + asm CLRWDT; + get_SWR(); + LATD2_bit = 1; + return; +} diff --git a/Firmware/ATU-10_FW_13/main.h b/Firmware/ATU-10_FW_13/main.h new file mode 100644 index 0000000..9272222 --- /dev/null +++ b/Firmware/ATU-10_FW_13/main.h @@ -0,0 +1,43 @@ + +void pic_init(void); +void Btn_long(void); +void Btn_short(void); +void Btn_xlong(void); +void check_reset_flags(void); +void Voltage_show(void); +void Relay_set(char, char, char); +int get_reverse(void); +int get_forward(void); +void get_pwr(void); +void get_swr(void); +void get_batt(void); +void watch_swr(void); +void coarse_cap(void); +void coarse_tune(void); +void sharp_cap(void); +void sharp_ind(void); +void sub_tune(void); +void tune(void); +int correction(int); +void atu_reset(void); +void draw_swr(unsigned int); +void draw_power(unsigned int); +void oled_start(void); +void power_off(void); +void Greating(void); +void Ext_long(void); + + + +#define ON 1 +#define OFF 0 +#define INT GIE_bit +#define Battery_input 9 +#define FWD_input 8 +#define REV_input 10 +#define _AD_High ADFVR0_bit=0;ADFVR1_bit=1; +#define _AD_Low ADFVR0_bit=1;ADFVR1_bit=0; +#define Key_out LATD2_bit +#define Key_in PORTD.B2 +#define Start_out LATD1_bit +#define Start ~PORTD.B1 \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/main.h.ini b/Firmware/ATU-10_FW_13/main.h.ini new file mode 100644 index 0000000..f538c59 --- /dev/null +++ b/Firmware/ATU-10_FW_13/main.h.ini @@ -0,0 +1,5 @@ +[Position] +Line=21 +Column=16 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/main.mcl b/Firmware/ATU-10_FW_13/main.mcl new file mode 100644 index 0000000..796dfeb Binary files /dev/null and b/Firmware/ATU-10_FW_13/main.mcl differ diff --git a/Firmware/ATU-10_FW_13/oled_control.asm b/Firmware/ATU-10_FW_13/oled_control.asm new file mode 100644 index 0000000..d9a5e71 --- /dev/null +++ b/Firmware/ATU-10_FW_13/oled_control.asm @@ -0,0 +1,1339 @@ + +_oled_disp_on: + +;oled_control.c,4 :: void oled_disp_on() { +;oled_control.c,5 :: send_command(0xAF); // display ON + MOVLW 175 + MOVWF FARG_send_command+0 + CALL _send_command+0 +;oled_control.c,6 :: } +L_end_oled_disp_on: + RETURN +; end of _oled_disp_on + +_oled_disp_off: + +;oled_control.c,8 :: void oled_disp_off() { +;oled_control.c,9 :: send_command(0xAE); // display OFF + MOVLW 174 + MOVWF FARG_send_command+0 + CALL _send_command+0 +;oled_control.c,10 :: } +L_end_oled_disp_off: + RETURN +; end of _oled_disp_off + +_oled_init: + +;oled_control.c,12 :: void oled_init (void) { // OLED init +;oled_control.c,14 :: for(cnt=0; cnt<10; cnt++){ + CLRF oled_init_cnt_L0+0 +L_oled_init0: + MOVLW 10 + SUBWF oled_init_cnt_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_oled_init1 +;oled_control.c,15 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,16 :: if(Soft_I2C_Write(oled_addr)==0) break; // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 + MOVF R0, 0 + XORLW 0 + BTFSS STATUS+0, 2 + GOTO L_oled_init3 + GOTO L_oled_init1 +L_oled_init3: +;oled_control.c,17 :: else Soft_I2C_Stop(); + CALL _Soft_I2C_Stop+0 +;oled_control.c,18 :: Delay_ms(300); + MOVLW 13 + MOVWF R11 + MOVLW 45 + MOVWF R12 + MOVLW 215 + MOVWF R13 +L_oled_init5: + DECFSZ R13, 1 + GOTO L_oled_init5 + DECFSZ R12, 1 + GOTO L_oled_init5 + DECFSZ R11, 1 + GOTO L_oled_init5 + NOP + NOP +;oled_control.c,14 :: for(cnt=0; cnt<10; cnt++){ + INCF oled_init_cnt_L0+0, 1 +;oled_control.c,19 :: } + GOTO L_oled_init0 +L_oled_init1: +;oled_control.c,20 :: Soft_I2C_Write(0); // 0 - continious mode, command; 64 - Co, data + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,21 :: Soft_I2C_Write (0xAE); // display OFF + MOVLW 174 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,23 :: Soft_I2C_Write (0xD5); // clock division + MOVLW 213 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,24 :: Soft_I2C_Write (0x80); // ratio + MOVLW 128 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,26 :: Soft_I2C_Write (0xA8); // multiplexer + MOVLW 168 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,27 :: Soft_I2C_Write (63); // + MOVLW 63 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,29 :: Soft_I2C_Write (0xD3); // offset + MOVLW 211 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,30 :: Soft_I2C_Write (shift_line); // 32 no offset for x64 ! + MOVF oled_control_shift_line+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,32 :: Soft_I2C_Write (0x40); // set line, line = 0 + MOVLW 64 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,34 :: Soft_I2C_Write (0x8D); // charge pump + MOVLW 141 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,35 :: Soft_I2C_Write (0x14); // 0x10 - external, 0x14 - internal + MOVLW 20 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,37 :: Soft_I2C_Write (0x81); // contrast + MOVLW 129 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,38 :: Soft_I2C_Write (255); // 0-255 + MOVLW 255 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,40 :: Soft_I2C_Write (0xD9); // pre-charge + MOVLW 217 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,41 :: Soft_I2C_Write (0xF1); // 0x22 - external, 0xF1 - internal + MOVLW 241 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,43 :: Soft_I2C_Write (0x20); // memory addressing mode + MOVLW 32 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,44 :: Soft_I2C_Write (0x02); // page addressing mode 02 + MOVLW 2 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,46 :: Soft_I2C_Write (0x21); // set column range + MOVLW 33 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,47 :: Soft_I2C_Write (0); // column start + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,48 :: Soft_I2C_Write (127); // column stop + MOVLW 127 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,50 :: Soft_I2C_Write (0x2E); // stop scrolling + MOVLW 46 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,52 :: if(inversion) { + MOVF oled_control_inversion+0, 0 + BTFSC STATUS+0, 2 + GOTO L_oled_init6 +;oled_control.c,53 :: Soft_I2C_Write (0xA0); // segment re-map, A0 - normal, A1 - remapped + MOVLW 160 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,54 :: Soft_I2C_Write (0xC0); // scan direction, C0 - normal, C8 - remapped + MOVLW 192 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,55 :: } + GOTO L_oled_init7 +L_oled_init6: +;oled_control.c,57 :: Soft_I2C_Write (0xA1); // segment re-map, A0 - normal, A1 - remapped + MOVLW 161 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,58 :: Soft_I2C_Write (0xC8); // scan direction, C0 - normal, C8 - remapped + MOVLW 200 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,59 :: } +L_oled_init7: +;oled_control.c,61 :: Soft_I2C_Write (0xDA); // COM pins configure + MOVLW 218 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,62 :: Soft_I2C_Write (0x02); // 02 for 32 12 for x64 + MOVLW 2 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,64 :: Soft_I2C_Write (0xDB); // V-COM detect + MOVLW 219 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,65 :: Soft_I2C_Write (0x40); // + MOVLW 64 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,67 :: Soft_I2C_Write (0xA4); // display entire ON + MOVLW 164 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,69 :: Soft_I2C_Write (0xA6); // 0xA6 - normal, 0xA7 - inverse + MOVLW 166 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,71 :: Soft_I2C_Stop (); + CALL _Soft_I2C_Stop+0 +;oled_control.c,73 :: oled_clear(); + CALL _oled_clear+0 +;oled_control.c,74 :: send_command (0xAF); // display ON + MOVLW 175 + MOVWF FARG_send_command+0 + CALL _send_command+0 +;oled_control.c,75 :: return; +;oled_control.c,76 :: } +L_end_oled_init: + RETURN +; end of _oled_init + +_oled_clear: + +;oled_control.c,78 :: void oled_clear(void){ +;oled_control.c,81 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,82 :: Soft_I2C_Write(oled_addr); // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,83 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + MOVLW 64 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,85 :: for (r = 0; r <=7; r++) { + CLRF oled_clear_r_L0+0 +L_oled_clear8: + MOVF oled_clear_r_L0+0, 0 + SUBLW 7 + BTFSS STATUS+0, 0 + GOTO L_oled_clear9 +;oled_control.c,86 :: set_addressing (r, 0); // clear all 8 pages + MOVF oled_clear_r_L0+0, 0 + MOVWF FARG_set_addressing+0 + CLRF FARG_set_addressing+0 + CALL _set_addressing+0 +;oled_control.c,87 :: for (i = 0; i < 128; i++, Soft_I2C_Write(0x00)); // clear one page pixels + CLRF oled_clear_i_L0+0 +L_oled_clear11: + MOVLW 128 + SUBWF oled_clear_i_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_oled_clear12 + INCF oled_clear_i_L0+0, 1 + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 + GOTO L_oled_clear11 +L_oled_clear12: +;oled_control.c,85 :: for (r = 0; r <=7; r++) { + INCF oled_clear_r_L0+0, 1 +;oled_control.c,88 :: } + GOTO L_oled_clear8 +L_oled_clear9: +;oled_control.c,89 :: Soft_I2C_Stop (); + CALL _Soft_I2C_Stop+0 +;oled_control.c,91 :: return; +;oled_control.c,92 :: } +L_end_oled_clear: + RETURN +; end of _oled_clear + +_send_command: + +;oled_control.c,94 :: void send_command (char oled_command) { +;oled_control.c,95 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,96 :: Soft_I2C_Write(oled_addr); // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,97 :: Soft_I2C_Write(128); // 128 - command, 192 - data + MOVLW 128 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,98 :: Soft_I2C_Write(oled_command); + MOVF FARG_send_command_oled_command+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,99 :: Soft_I2C_Stop(); + CALL _Soft_I2C_Stop+0 +;oled_control.c,100 :: return; +;oled_control.c,101 :: } +L_end_send_command: + RETURN +; end of _send_command + +_set_addressing: + +;oled_control.c,103 :: void set_addressing (char pagenum, char c_start) { +;oled_control.c,105 :: c = c_start + oled_shift; + MOVF oled_control_oled_shift+0, 0 + ADDWF FARG_set_addressing_c_start+0, 0 + MOVWF set_addressing_c_L0+0 +;oled_control.c,106 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,107 :: Soft_I2C_Write(oled_addr); // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,108 :: Soft_I2C_Write(0); // 0 - continious mode, command; 64 - Co, data + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,109 :: Soft_I2C_Write(0xB0 + pagenum); // set page number + MOVF FARG_set_addressing_pagenum+0, 0 + ADDLW 176 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,111 :: if (c <= 15) { a = c; b = 0; } + MOVF set_addressing_c_L0+0, 0 + SUBLW 15 + BTFSS STATUS+0, 0 + GOTO L_set_addressing14 + MOVF set_addressing_c_L0+0, 0 + MOVWF set_addressing_a_L0+0 + CLRF set_addressing_b_L0+0 + GOTO L_set_addressing15 +L_set_addressing14: +;oled_control.c,112 :: else { b = c / 16; a = c - b * 16; } + MOVF set_addressing_c_L0+0, 0 + MOVWF R2 + LSRF R2, 1 + LSRF R2, 1 + LSRF R2, 1 + LSRF R2, 1 + MOVF R2, 0 + MOVWF set_addressing_b_L0+0 + MOVF R2, 0 + MOVWF R0 + LSLF R0, 1 + LSLF R0, 1 + LSLF R0, 1 + LSLF R0, 1 + MOVF R0, 0 + SUBWF set_addressing_c_L0+0, 0 + MOVWF set_addressing_a_L0+0 +L_set_addressing15: +;oled_control.c,113 :: Soft_I2C_Write (a); // set lower nibble of start address + MOVF set_addressing_a_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,114 :: Soft_I2C_Write (0x10 + b); // set higher nibble of start address + MOVF set_addressing_b_L0+0, 0 + ADDLW 16 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,116 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,117 :: Soft_I2C_Write(oled_addr); // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,118 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + MOVLW 64 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,119 :: return; +;oled_control.c,120 :: } +L_end_set_addressing: + RETURN +; end of _set_addressing + +_oled_wr_str_s: + +;oled_control.c,122 :: void oled_wr_str_s(char page, char col, char str[], char len) { // 128*64 OLED +;oled_control.c,124 :: set_addressing (page, col); + MOVF FARG_oled_wr_str_s_page+0, 0 + MOVWF FARG_set_addressing_pagenum+0 + MOVF FARG_oled_wr_str_s_col+0, 0 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,126 :: for (i = 0; i < len; i++) { // write string + CLRF oled_wr_str_s_i_L0+0 +L_oled_wr_str_s16: + MOVF FARG_oled_wr_str_s_len+0, 0 + SUBWF oled_wr_str_s_i_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_oled_wr_str_s17 +;oled_control.c,127 :: g = str[i] - 32; // table shift + MOVF oled_wr_str_s_i_L0+0, 0 + ADDWF FARG_oled_wr_str_s_str+0, 0 + MOVWF FSR0L + MOVLW 0 + ADDWFC FARG_oled_wr_str_s_str+1, 0 + MOVWF FSR0H + MOVLW 32 + SUBWF INDF0+0, 0 + MOVWF oled_wr_str_s_g_L0+0 +;oled_control.c,128 :: for (h = 0; h < 5; h++) { // write letter + CLRF oled_wr_str_s_h_L0+0 +L_oled_wr_str_s19: + MOVLW 5 + SUBWF oled_wr_str_s_h_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_oled_wr_str_s20 +;oled_control.c,129 :: Soft_I2C_Write(font_5x8[g*5+h]); + MOVF oled_wr_str_s_g_L0+0, 0 + MOVWF R0 + MOVLW 5 + MOVWF R4 + CALL _Mul_8X8_U+0 + MOVF oled_wr_str_s_h_L0+0, 0 + ADDWF R0, 1 + MOVLW 0 + ADDWFC R1, 1 + MOVLW oled_control_font_5x8+0 + ADDWF R0, 0 + MOVWF FSR0L + MOVLW hi_addr(oled_control_font_5x8+0) + ADDWFC R1, 0 + MOVWF FSR0H + MOVF INDF0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,128 :: for (h = 0; h < 5; h++) { // write letter + INCF oled_wr_str_s_h_L0+0, 1 +;oled_control.c,130 :: } + GOTO L_oled_wr_str_s19 +L_oled_wr_str_s20: +;oled_control.c,131 :: Soft_I2C_Write (0); + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,126 :: for (i = 0; i < len; i++) { // write string + INCF oled_wr_str_s_i_L0+0, 1 +;oled_control.c,132 :: } + GOTO L_oled_wr_str_s16 +L_oled_wr_str_s17: +;oled_control.c,133 :: Soft_I2C_Stop (); + CALL _Soft_I2C_Stop+0 +;oled_control.c,134 :: return; +;oled_control.c,135 :: } +L_end_oled_wr_str_s: + RETURN +; end of _oled_wr_str_s + +_oled_wr_str: + +;oled_control.c,138 :: void oled_wr_str (char page, char col, char str[], char leng ) { // +;oled_control.c,140 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,141 :: Soft_I2C_Write(oled_addr); // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,142 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + MOVLW 64 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,144 :: set_addressing (page, col); + MOVF FARG_oled_wr_str_page+0, 0 + MOVWF FARG_set_addressing_pagenum+0 + MOVF FARG_oled_wr_str_col+0, 0 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,146 :: for (i = 0; i < leng; i++) { // write string + CLRF oled_wr_str_i_L0+0 +L_oled_wr_str22: + MOVF FARG_oled_wr_str_leng+0, 0 + SUBWF oled_wr_str_i_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_oled_wr_str23 +;oled_control.c,147 :: if (str[i] == 0) g = 0; else g = str[i] - 32; // NULL detection + MOVF oled_wr_str_i_L0+0, 0 + ADDWF FARG_oled_wr_str_str+0, 0 + MOVWF FSR0L + MOVLW 0 + ADDWFC FARG_oled_wr_str_str+1, 0 + MOVWF FSR0H + MOVF INDF0+0, 0 + XORLW 0 + BTFSS STATUS+0, 2 + GOTO L_oled_wr_str25 + CLRF oled_wr_str_g_L0+0 + GOTO L_oled_wr_str26 +L_oled_wr_str25: + MOVF oled_wr_str_i_L0+0, 0 + ADDWF FARG_oled_wr_str_str+0, 0 + MOVWF FSR0L + MOVLW 0 + ADDWFC FARG_oled_wr_str_str+1, 0 + MOVWF FSR0H + MOVLW 32 + SUBWF INDF0+0, 0 + MOVWF oled_wr_str_g_L0+0 +L_oled_wr_str26: +;oled_control.c,148 :: for (h = 0; h <= 4; h++) { // write letter + CLRF oled_wr_str_h_L0+0 +L_oled_wr_str27: + MOVF oled_wr_str_h_L0+0, 0 + SUBLW 4 + BTFSS STATUS+0, 0 + GOTO L_oled_wr_str28 +;oled_control.c,149 :: w1 = font_5x8[g*5+h]; + MOVF oled_wr_str_g_L0+0, 0 + MOVWF R0 + MOVLW 5 + MOVWF R4 + CALL _Mul_8X8_U+0 + MOVF oled_wr_str_h_L0+0, 0 + ADDWF R0, 1 + MOVLW 0 + ADDWFC R1, 1 + MOVLW oled_control_font_5x8+0 + ADDWF R0, 0 + MOVWF FSR0L + MOVLW hi_addr(oled_control_font_5x8+0) + ADDWFC R1, 0 + MOVWF FSR0H + MOVF INDF0+0, 0 + MOVWF oled_wr_str_w1_L0+0 +;oled_control.c,150 :: if(page != 2) { + MOVF FARG_oled_wr_str_page+0, 0 + XORLW 2 + BTFSC STATUS+0, 2 + GOTO L_oled_wr_str30 +;oled_control.c,151 :: w2.B7 = w1.B3; + BTFSC oled_wr_str_w1_L0+0, 3 + GOTO L__oled_wr_str74 + BCF oled_wr_str_w2_L0+0, 7 + GOTO L__oled_wr_str75 +L__oled_wr_str74: + BSF oled_wr_str_w2_L0+0, 7 +L__oled_wr_str75: +;oled_control.c,152 :: w2.B6 = w1.B3; + BTFSC oled_wr_str_w1_L0+0, 3 + GOTO L__oled_wr_str76 + BCF oled_wr_str_w2_L0+0, 6 + GOTO L__oled_wr_str77 +L__oled_wr_str76: + BSF oled_wr_str_w2_L0+0, 6 +L__oled_wr_str77: +;oled_control.c,153 :: w2.B5 = w1.B2; + BTFSC oled_wr_str_w1_L0+0, 2 + GOTO L__oled_wr_str78 + BCF oled_wr_str_w2_L0+0, 5 + GOTO L__oled_wr_str79 +L__oled_wr_str78: + BSF oled_wr_str_w2_L0+0, 5 +L__oled_wr_str79: +;oled_control.c,154 :: w2.B4 = w1.B2; + BTFSC oled_wr_str_w1_L0+0, 2 + GOTO L__oled_wr_str80 + BCF oled_wr_str_w2_L0+0, 4 + GOTO L__oled_wr_str81 +L__oled_wr_str80: + BSF oled_wr_str_w2_L0+0, 4 +L__oled_wr_str81: +;oled_control.c,155 :: w2.B3 = w1.B1; + BTFSC oled_wr_str_w1_L0+0, 1 + GOTO L__oled_wr_str82 + BCF oled_wr_str_w2_L0+0, 3 + GOTO L__oled_wr_str83 +L__oled_wr_str82: + BSF oled_wr_str_w2_L0+0, 3 +L__oled_wr_str83: +;oled_control.c,156 :: w2.B2 = w1.B1; + BTFSC oled_wr_str_w1_L0+0, 1 + GOTO L__oled_wr_str84 + BCF oled_wr_str_w2_L0+0, 2 + GOTO L__oled_wr_str85 +L__oled_wr_str84: + BSF oled_wr_str_w2_L0+0, 2 +L__oled_wr_str85: +;oled_control.c,157 :: w2.B1 = w1.B0; + BTFSC oled_wr_str_w1_L0+0, 0 + GOTO L__oled_wr_str86 + BCF oled_wr_str_w2_L0+0, 1 + GOTO L__oled_wr_str87 +L__oled_wr_str86: + BSF oled_wr_str_w2_L0+0, 1 +L__oled_wr_str87: +;oled_control.c,158 :: w2.B0 = w1.B0; } + BTFSC oled_wr_str_w1_L0+0, 0 + GOTO L__oled_wr_str88 + BCF oled_wr_str_w2_L0+0, 0 + GOTO L__oled_wr_str89 +L__oled_wr_str88: + BSF oled_wr_str_w2_L0+0, 0 +L__oled_wr_str89: + GOTO L_oled_wr_str31 +L_oled_wr_str30: +;oled_control.c,160 :: w2.B7 = w1.B2; + BTFSC oled_wr_str_w1_L0+0, 2 + GOTO L__oled_wr_str90 + BCF oled_wr_str_w2_L0+0, 7 + GOTO L__oled_wr_str91 +L__oled_wr_str90: + BSF oled_wr_str_w2_L0+0, 7 +L__oled_wr_str91: +;oled_control.c,161 :: w2.B6 = w1.B2; + BTFSC oled_wr_str_w1_L0+0, 2 + GOTO L__oled_wr_str92 + BCF oled_wr_str_w2_L0+0, 6 + GOTO L__oled_wr_str93 +L__oled_wr_str92: + BSF oled_wr_str_w2_L0+0, 6 +L__oled_wr_str93: +;oled_control.c,162 :: w2.B5 = w1.B1; + BTFSC oled_wr_str_w1_L0+0, 1 + GOTO L__oled_wr_str94 + BCF oled_wr_str_w2_L0+0, 5 + GOTO L__oled_wr_str95 +L__oled_wr_str94: + BSF oled_wr_str_w2_L0+0, 5 +L__oled_wr_str95: +;oled_control.c,163 :: w2.B4 = w1.B1; + BTFSC oled_wr_str_w1_L0+0, 1 + GOTO L__oled_wr_str96 + BCF oled_wr_str_w2_L0+0, 4 + GOTO L__oled_wr_str97 +L__oled_wr_str96: + BSF oled_wr_str_w2_L0+0, 4 +L__oled_wr_str97: +;oled_control.c,164 :: w2.B3 = w1.B0; + BTFSC oled_wr_str_w1_L0+0, 0 + GOTO L__oled_wr_str98 + BCF oled_wr_str_w2_L0+0, 3 + GOTO L__oled_wr_str99 +L__oled_wr_str98: + BSF oled_wr_str_w2_L0+0, 3 +L__oled_wr_str99: +;oled_control.c,165 :: w2.B2 = w1.B0; + BTFSC oled_wr_str_w1_L0+0, 0 + GOTO L__oled_wr_str100 + BCF oled_wr_str_w2_L0+0, 2 + GOTO L__oled_wr_str101 +L__oled_wr_str100: + BSF oled_wr_str_w2_L0+0, 2 +L__oled_wr_str101: +;oled_control.c,166 :: w2.B1 = 0; + BCF oled_wr_str_w2_L0+0, 1 +;oled_control.c,167 :: w2.B0 = 0; + BCF oled_wr_str_w2_L0+0, 0 +;oled_control.c,168 :: } +L_oled_wr_str31: +;oled_control.c,169 :: Soft_I2C_Write(w2); + MOVF oled_wr_str_w2_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,170 :: Soft_I2C_Write(w2); + MOVF oled_wr_str_w2_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,148 :: for (h = 0; h <= 4; h++) { // write letter + INCF oled_wr_str_h_L0+0, 1 +;oled_control.c,171 :: } + GOTO L_oled_wr_str27 +L_oled_wr_str28: +;oled_control.c,172 :: Soft_I2C_Write (0); + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,173 :: Soft_I2C_Write (0); + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,146 :: for (i = 0; i < leng; i++) { // write string + INCF oled_wr_str_i_L0+0, 1 +;oled_control.c,174 :: } + GOTO L_oled_wr_str22 +L_oled_wr_str23: +;oled_control.c,175 :: set_addressing (page+1, col); + INCF FARG_oled_wr_str_page+0, 0 + MOVWF FARG_set_addressing_pagenum+0 + MOVF FARG_oled_wr_str_col+0, 0 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,177 :: for (i = 0; i < leng; i++) { // write string + CLRF oled_wr_str_i_L0+0 +L_oled_wr_str32: + MOVF FARG_oled_wr_str_leng+0, 0 + SUBWF oled_wr_str_i_L0+0, 0 + BTFSC STATUS+0, 0 + GOTO L_oled_wr_str33 +;oled_control.c,178 :: if (str[i] == 0) g = 0; else g = str[i] - 32; // NULL detection + MOVF oled_wr_str_i_L0+0, 0 + ADDWF FARG_oled_wr_str_str+0, 0 + MOVWF FSR0L + MOVLW 0 + ADDWFC FARG_oled_wr_str_str+1, 0 + MOVWF FSR0H + MOVF INDF0+0, 0 + XORLW 0 + BTFSS STATUS+0, 2 + GOTO L_oled_wr_str35 + CLRF oled_wr_str_g_L0+0 + GOTO L_oled_wr_str36 +L_oled_wr_str35: + MOVF oled_wr_str_i_L0+0, 0 + ADDWF FARG_oled_wr_str_str+0, 0 + MOVWF FSR0L + MOVLW 0 + ADDWFC FARG_oled_wr_str_str+1, 0 + MOVWF FSR0H + MOVLW 32 + SUBWF INDF0+0, 0 + MOVWF oled_wr_str_g_L0+0 +L_oled_wr_str36: +;oled_control.c,179 :: for (h = 0; h <= 4; h++) { // write letter + CLRF oled_wr_str_h_L0+0 +L_oled_wr_str37: + MOVF oled_wr_str_h_L0+0, 0 + SUBLW 4 + BTFSS STATUS+0, 0 + GOTO L_oled_wr_str38 +;oled_control.c,180 :: w1 = font_5x8[g*5+h]; + MOVF oled_wr_str_g_L0+0, 0 + MOVWF R0 + MOVLW 5 + MOVWF R4 + CALL _Mul_8X8_U+0 + MOVF oled_wr_str_h_L0+0, 0 + ADDWF R0, 1 + MOVLW 0 + ADDWFC R1, 1 + MOVLW oled_control_font_5x8+0 + ADDWF R0, 0 + MOVWF FSR0L + MOVLW hi_addr(oled_control_font_5x8+0) + ADDWFC R1, 0 + MOVWF FSR0H + MOVF INDF0+0, 0 + MOVWF oled_wr_str_w1_L0+0 +;oled_control.c,181 :: if(page != 2) { + MOVF FARG_oled_wr_str_page+0, 0 + XORLW 2 + BTFSC STATUS+0, 2 + GOTO L_oled_wr_str40 +;oled_control.c,182 :: w2.B7 = w1.B7; + BTFSC oled_wr_str_w1_L0+0, 7 + GOTO L__oled_wr_str102 + BCF oled_wr_str_w2_L0+0, 7 + GOTO L__oled_wr_str103 +L__oled_wr_str102: + BSF oled_wr_str_w2_L0+0, 7 +L__oled_wr_str103: +;oled_control.c,183 :: w2.B6 = w1.B7; + BTFSC oled_wr_str_w1_L0+0, 7 + GOTO L__oled_wr_str104 + BCF oled_wr_str_w2_L0+0, 6 + GOTO L__oled_wr_str105 +L__oled_wr_str104: + BSF oled_wr_str_w2_L0+0, 6 +L__oled_wr_str105: +;oled_control.c,184 :: w2.B5 = w1.B6; + BTFSC oled_wr_str_w1_L0+0, 6 + GOTO L__oled_wr_str106 + BCF oled_wr_str_w2_L0+0, 5 + GOTO L__oled_wr_str107 +L__oled_wr_str106: + BSF oled_wr_str_w2_L0+0, 5 +L__oled_wr_str107: +;oled_control.c,185 :: w2.B4 = w1.B6; + BTFSC oled_wr_str_w1_L0+0, 6 + GOTO L__oled_wr_str108 + BCF oled_wr_str_w2_L0+0, 4 + GOTO L__oled_wr_str109 +L__oled_wr_str108: + BSF oled_wr_str_w2_L0+0, 4 +L__oled_wr_str109: +;oled_control.c,186 :: w2.B3 = w1.B5; + BTFSC oled_wr_str_w1_L0+0, 5 + GOTO L__oled_wr_str110 + BCF oled_wr_str_w2_L0+0, 3 + GOTO L__oled_wr_str111 +L__oled_wr_str110: + BSF oled_wr_str_w2_L0+0, 3 +L__oled_wr_str111: +;oled_control.c,187 :: w2.B2 = w1.B5; + BTFSC oled_wr_str_w1_L0+0, 5 + GOTO L__oled_wr_str112 + BCF oled_wr_str_w2_L0+0, 2 + GOTO L__oled_wr_str113 +L__oled_wr_str112: + BSF oled_wr_str_w2_L0+0, 2 +L__oled_wr_str113: +;oled_control.c,188 :: w2.B1 = w1.B4; + BTFSC oled_wr_str_w1_L0+0, 4 + GOTO L__oled_wr_str114 + BCF oled_wr_str_w2_L0+0, 1 + GOTO L__oled_wr_str115 +L__oled_wr_str114: + BSF oled_wr_str_w2_L0+0, 1 +L__oled_wr_str115: +;oled_control.c,189 :: w2.B0 = w1.B4; } + BTFSC oled_wr_str_w1_L0+0, 4 + GOTO L__oled_wr_str116 + BCF oled_wr_str_w2_L0+0, 0 + GOTO L__oled_wr_str117 +L__oled_wr_str116: + BSF oled_wr_str_w2_L0+0, 0 +L__oled_wr_str117: + GOTO L_oled_wr_str41 +L_oled_wr_str40: +;oled_control.c,191 :: w2.B7 = w1.B6; + BTFSC oled_wr_str_w1_L0+0, 6 + GOTO L__oled_wr_str118 + BCF oled_wr_str_w2_L0+0, 7 + GOTO L__oled_wr_str119 +L__oled_wr_str118: + BSF oled_wr_str_w2_L0+0, 7 +L__oled_wr_str119: +;oled_control.c,192 :: w2.B6 = w1.B6; + BTFSC oled_wr_str_w1_L0+0, 6 + GOTO L__oled_wr_str120 + BCF oled_wr_str_w2_L0+0, 6 + GOTO L__oled_wr_str121 +L__oled_wr_str120: + BSF oled_wr_str_w2_L0+0, 6 +L__oled_wr_str121: +;oled_control.c,193 :: w2.B5 = w1.B5; + BTFSC oled_wr_str_w1_L0+0, 5 + GOTO L__oled_wr_str122 + BCF oled_wr_str_w2_L0+0, 5 + GOTO L__oled_wr_str123 +L__oled_wr_str122: + BSF oled_wr_str_w2_L0+0, 5 +L__oled_wr_str123: +;oled_control.c,194 :: w2.B4 = w1.B5; + BTFSC oled_wr_str_w1_L0+0, 5 + GOTO L__oled_wr_str124 + BCF oled_wr_str_w2_L0+0, 4 + GOTO L__oled_wr_str125 +L__oled_wr_str124: + BSF oled_wr_str_w2_L0+0, 4 +L__oled_wr_str125: +;oled_control.c,195 :: w2.B3 = w1.B4; + BTFSC oled_wr_str_w1_L0+0, 4 + GOTO L__oled_wr_str126 + BCF oled_wr_str_w2_L0+0, 3 + GOTO L__oled_wr_str127 +L__oled_wr_str126: + BSF oled_wr_str_w2_L0+0, 3 +L__oled_wr_str127: +;oled_control.c,196 :: w2.B2 = w1.B4; + BTFSC oled_wr_str_w1_L0+0, 4 + GOTO L__oled_wr_str128 + BCF oled_wr_str_w2_L0+0, 2 + GOTO L__oled_wr_str129 +L__oled_wr_str128: + BSF oled_wr_str_w2_L0+0, 2 +L__oled_wr_str129: +;oled_control.c,197 :: w2.B1 = w1.B3; + BTFSC oled_wr_str_w1_L0+0, 3 + GOTO L__oled_wr_str130 + BCF oled_wr_str_w2_L0+0, 1 + GOTO L__oled_wr_str131 +L__oled_wr_str130: + BSF oled_wr_str_w2_L0+0, 1 +L__oled_wr_str131: +;oled_control.c,198 :: w2.B0 = w1.B3; + BTFSC oled_wr_str_w1_L0+0, 3 + GOTO L__oled_wr_str132 + BCF oled_wr_str_w2_L0+0, 0 + GOTO L__oled_wr_str133 +L__oled_wr_str132: + BSF oled_wr_str_w2_L0+0, 0 +L__oled_wr_str133: +;oled_control.c,199 :: } +L_oled_wr_str41: +;oled_control.c,200 :: Soft_I2C_Write(w2); + MOVF oled_wr_str_w2_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,201 :: Soft_I2C_Write(w2); + MOVF oled_wr_str_w2_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,179 :: for (h = 0; h <= 4; h++) { // write letter + INCF oled_wr_str_h_L0+0, 1 +;oled_control.c,202 :: } + GOTO L_oled_wr_str37 +L_oled_wr_str38: +;oled_control.c,203 :: Soft_I2C_Write (0); + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,204 :: Soft_I2C_Write (0); + CLRF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,177 :: for (i = 0; i < leng; i++) { // write string + INCF oled_wr_str_i_L0+0, 1 +;oled_control.c,205 :: } + GOTO L_oled_wr_str32 +L_oled_wr_str33: +;oled_control.c,206 :: Soft_I2C_Stop (); + CALL _Soft_I2C_Stop+0 +;oled_control.c,207 :: } +L_end_oled_wr_str: + RETURN +; end of _oled_wr_str + +_oled_bat: + +;oled_control.c,210 :: void oled_bat () { +;oled_control.c,212 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,213 :: Soft_I2C_Write(oled_addr); // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,214 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + MOVLW 64 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,217 :: for(g=0; g<=3; g++) { // batt drawing + CLRF oled_bat_g_L0+0 +L_oled_bat42: + MOVF oled_bat_g_L0+0, 0 + SUBLW 3 + BTFSS STATUS+0, 0 + GOTO L_oled_bat43 +;oled_control.c,218 :: set_addressing (g, 115); + MOVF oled_bat_g_L0+0, 0 + MOVWF FARG_set_addressing_pagenum+0 + MOVLW 115 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,219 :: for(i=0; i<=10; i++) { Soft_I2C_Write(batt[g*11+i]); } + CLRF oled_bat_i_L0+0 +L_oled_bat45: + MOVF oled_bat_i_L0+0, 0 + SUBLW 10 + BTFSS STATUS+0, 0 + GOTO L_oled_bat46 + MOVF oled_bat_g_L0+0, 0 + MOVWF R0 + MOVLW 11 + MOVWF R4 + CALL _Mul_8X8_U+0 + MOVF oled_bat_i_L0+0, 0 + ADDWF R0, 1 + MOVLW 0 + ADDWFC R1, 1 + MOVLW oled_control_batt+0 + ADDWF R0, 0 + MOVWF FSR0L + MOVLW hi_addr(oled_control_batt+0) + ADDWFC R1, 0 + MOVWF FSR0H + MOVF INDF0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 + INCF oled_bat_i_L0+0, 1 + GOTO L_oled_bat45 +L_oled_bat46: +;oled_control.c,217 :: for(g=0; g<=3; g++) { // batt drawing + INCF oled_bat_g_L0+0, 1 +;oled_control.c,220 :: } + GOTO L_oled_bat42 +L_oled_bat43: +;oled_control.c,221 :: Soft_I2C_Stop (); + CALL _Soft_I2C_Stop+0 +;oled_control.c,222 :: return; +;oled_control.c,223 :: } +L_end_oled_bat: + RETURN +; end of _oled_bat + +_oled_voltage: + +;oled_control.c,226 :: void oled_voltage(int Voltage) { +;oled_control.c,228 :: Soft_I2C_Start(); + CALL _Soft_I2C_Start+0 +;oled_control.c,229 :: Soft_I2C_Write(oled_addr); // device addres + MOVF oled_control_oled_addr+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,230 :: Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + MOVLW 64 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,232 :: Voltage /= 10; + MOVLW 10 + MOVWF R4 + MOVLW 0 + MOVWF R5 + MOVF FARG_oled_voltage_Voltage+0, 0 + MOVWF R0 + MOVF FARG_oled_voltage_Voltage+1, 0 + MOVWF R1 + CALL _Div_16x16_S+0 + MOVF R0, 0 + MOVWF FARG_oled_voltage_Voltage+0 + MOVF R1, 0 + MOVWF FARG_oled_voltage_Voltage+1 +;oled_control.c,233 :: if(Voltage < 300) Voltage = 300; + MOVLW 128 + XORWF R1, 0 + MOVWF R2 + MOVLW 128 + XORLW 1 + SUBWF R2, 0 + BTFSS STATUS+0, 2 + GOTO L__oled_voltage136 + MOVLW 44 + SUBWF R0, 0 +L__oled_voltage136: + BTFSC STATUS+0, 0 + GOTO L_oled_voltage48 + MOVLW 44 + MOVWF FARG_oled_voltage_Voltage+0 + MOVLW 1 + MOVWF FARG_oled_voltage_Voltage+1 + GOTO L_oled_voltage49 +L_oled_voltage48: +;oled_control.c,234 :: else if(Voltage > 420) Voltage = 420; + MOVLW 128 + XORLW 1 + MOVWF R0 + MOVLW 128 + XORWF FARG_oled_voltage_Voltage+1, 0 + SUBWF R0, 0 + BTFSS STATUS+0, 2 + GOTO L__oled_voltage137 + MOVF FARG_oled_voltage_Voltage+0, 0 + SUBLW 164 +L__oled_voltage137: + BTFSC STATUS+0, 0 + GOTO L_oled_voltage50 + MOVLW 164 + MOVWF FARG_oled_voltage_Voltage+0 + MOVLW 1 + MOVWF FARG_oled_voltage_Voltage+1 +L_oled_voltage50: +L_oled_voltage49: +;oled_control.c,235 :: Voltage = Voltage - 300; // 0 - 120 + MOVLW 44 + SUBWF FARG_oled_voltage_Voltage+0, 0 + MOVWF R3 + MOVLW 1 + SUBWFB FARG_oled_voltage_Voltage+1, 0 + MOVWF R4 + MOVF R3, 0 + MOVWF FARG_oled_voltage_Voltage+0 + MOVF R4, 0 + MOVWF FARG_oled_voltage_Voltage+1 +;oled_control.c,236 :: Voltage = Voltage * 32; + MOVLW 5 + MOVWF R2 + MOVF R3, 0 + MOVWF R0 + MOVF R4, 0 + MOVWF R1 + MOVF R2, 0 +L__oled_voltage138: + BTFSC STATUS+0, 2 + GOTO L__oled_voltage139 + LSLF R0, 1 + RLF R1, 1 + ADDLW 255 + GOTO L__oled_voltage138 +L__oled_voltage139: + MOVF R0, 0 + MOVWF FARG_oled_voltage_Voltage+0 + MOVF R1, 0 + MOVWF FARG_oled_voltage_Voltage+1 +;oled_control.c,237 :: v = Voltage / 120; + MOVLW 120 + MOVWF R4 + MOVLW 0 + MOVWF R5 + CALL _Div_16x16_S+0 + MOVF R0, 0 + MOVWF oled_voltage_v_L0+0 +;oled_control.c,240 :: if(v >= 25) { u0 = v - 24; u1 = 8; u2 = 8; u3 = 8; } + MOVLW 25 + SUBWF R0, 0 + BTFSS STATUS+0, 0 + GOTO L_oled_voltage51 + MOVLW 24 + SUBWF oled_voltage_v_L0+0, 0 + MOVWF oled_voltage_u0_L0+0 + MOVLW 8 + MOVWF oled_voltage_u1_L0+0 + MOVLW 8 + MOVWF oled_voltage_u2_L0+0 + MOVLW 8 + MOVWF oled_voltage_u3_L0+0 + GOTO L_oled_voltage52 +L_oled_voltage51: +;oled_control.c,241 :: else if(v >= 17) { u0 = 0; u1 = v - 16; u2 = 8; u3 = 8; } + MOVLW 17 + SUBWF oled_voltage_v_L0+0, 0 + BTFSS STATUS+0, 0 + GOTO L_oled_voltage53 + CLRF oled_voltage_u0_L0+0 + MOVLW 16 + SUBWF oled_voltage_v_L0+0, 0 + MOVWF oled_voltage_u1_L0+0 + MOVLW 8 + MOVWF oled_voltage_u2_L0+0 + MOVLW 8 + MOVWF oled_voltage_u3_L0+0 + GOTO L_oled_voltage54 +L_oled_voltage53: +;oled_control.c,242 :: else if(v >= 9 ) { u0 = 0; u1 = 0; u2 = v - 8; u3 = 8; } + MOVLW 9 + SUBWF oled_voltage_v_L0+0, 0 + BTFSS STATUS+0, 0 + GOTO L_oled_voltage55 + CLRF oled_voltage_u0_L0+0 + CLRF oled_voltage_u1_L0+0 + MOVLW 8 + SUBWF oled_voltage_v_L0+0, 0 + MOVWF oled_voltage_u2_L0+0 + MOVLW 8 + MOVWF oled_voltage_u3_L0+0 + GOTO L_oled_voltage56 +L_oled_voltage55: +;oled_control.c,243 :: else { u0 = 0; u1 = 0; u2 = 0; u3 = v ; } + CLRF oled_voltage_u0_L0+0 + CLRF oled_voltage_u1_L0+0 + CLRF oled_voltage_u2_L0+0 + MOVF oled_voltage_v_L0+0, 0 + MOVWF oled_voltage_u3_L0+0 +L_oled_voltage56: +L_oled_voltage54: +L_oled_voltage52: +;oled_control.c,245 :: m = 128; + MOVLW 128 + MOVWF oled_voltage_m_L0+0 +;oled_control.c,246 :: m = 255 - (m >> (u0-1)) +1; + MOVLW 1 + SUBWF oled_voltage_u0_L0+0, 0 + MOVWF R0 + CLRF R1 + MOVLW 0 + SUBWFB R1, 1 + MOVF R0, 0 + MOVWF R1 + MOVF oled_voltage_m_L0+0, 0 + MOVWF R0 + MOVF R1, 0 +L__oled_voltage140: + BTFSC STATUS+0, 2 + GOTO L__oled_voltage141 + LSRF R0, 1 + ADDLW 255 + GOTO L__oled_voltage140 +L__oled_voltage141: + MOVF R0, 0 + SUBLW 255 + MOVWF oled_voltage_m_L0+0 + INCF oled_voltage_m_L0+0, 1 +;oled_control.c,247 :: m = m | 0b00000011; + MOVLW 3 + IORWF oled_voltage_m_L0+0, 1 +;oled_control.c,248 :: set_addressing (0, 119); + CLRF FARG_set_addressing_pagenum+0 + MOVLW 119 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,249 :: Soft_I2C_Write(m); + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,250 :: Soft_I2C_Write(m); + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,251 :: Soft_I2C_Write(m); + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,252 :: m = m | 0b00011111; + MOVLW 31 + IORWF oled_voltage_m_L0+0, 1 +;oled_control.c,253 :: set_addressing (0, 117); + CLRF FARG_set_addressing_pagenum+0 + MOVLW 117 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,254 :: Soft_I2C_Write(m); + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,255 :: Soft_I2C_Write(m); + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,256 :: set_addressing (0, 122); + CLRF FARG_set_addressing_pagenum+0 + MOVLW 122 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,257 :: Soft_I2C_Write(m); + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,258 :: Soft_I2C_Write(m); + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 +;oled_control.c,260 :: m = 128; + MOVLW 128 + MOVWF oled_voltage_m_L0+0 +;oled_control.c,261 :: m = 255 - (m >> (u1-1)) + 1; + MOVLW 1 + SUBWF oled_voltage_u1_L0+0, 0 + MOVWF R0 + CLRF R1 + MOVLW 0 + SUBWFB R1, 1 + MOVF R0, 0 + MOVWF R1 + MOVF oled_voltage_m_L0+0, 0 + MOVWF R0 + MOVF R1, 0 +L__oled_voltage142: + BTFSC STATUS+0, 2 + GOTO L__oled_voltage143 + LSRF R0, 1 + ADDLW 255 + GOTO L__oled_voltage142 +L__oled_voltage143: + MOVF R0, 0 + SUBLW 255 + MOVWF oled_voltage_m_L0+0 + INCF oled_voltage_m_L0+0, 1 +;oled_control.c,262 :: set_addressing (1, 117); + MOVLW 1 + MOVWF FARG_set_addressing_pagenum+0 + MOVLW 117 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,263 :: for(i=0; i<=6; i++) Soft_I2C_Write(m); + CLRF oled_voltage_i_L0+0 +L_oled_voltage57: + MOVF oled_voltage_i_L0+0, 0 + SUBLW 6 + BTFSS STATUS+0, 0 + GOTO L_oled_voltage58 + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 + INCF oled_voltage_i_L0+0, 1 + GOTO L_oled_voltage57 +L_oled_voltage58: +;oled_control.c,265 :: m = 128; + MOVLW 128 + MOVWF oled_voltage_m_L0+0 +;oled_control.c,266 :: m = 255 - (m >> (u2-1)) + 1; + MOVLW 1 + SUBWF oled_voltage_u2_L0+0, 0 + MOVWF R0 + CLRF R1 + MOVLW 0 + SUBWFB R1, 1 + MOVF R0, 0 + MOVWF R1 + MOVF oled_voltage_m_L0+0, 0 + MOVWF R0 + MOVF R1, 0 +L__oled_voltage144: + BTFSC STATUS+0, 2 + GOTO L__oled_voltage145 + LSRF R0, 1 + ADDLW 255 + GOTO L__oled_voltage144 +L__oled_voltage145: + MOVF R0, 0 + SUBLW 255 + MOVWF oled_voltage_m_L0+0 + INCF oled_voltage_m_L0+0, 1 +;oled_control.c,267 :: set_addressing (2, 117); + MOVLW 2 + MOVWF FARG_set_addressing_pagenum+0 + MOVLW 117 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,268 :: for(i=0; i<=6; i++) Soft_I2C_Write(m); + CLRF oled_voltage_i_L0+0 +L_oled_voltage60: + MOVF oled_voltage_i_L0+0, 0 + SUBLW 6 + BTFSS STATUS+0, 0 + GOTO L_oled_voltage61 + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 + INCF oled_voltage_i_L0+0, 1 + GOTO L_oled_voltage60 +L_oled_voltage61: +;oled_control.c,270 :: m = 128; + MOVLW 128 + MOVWF oled_voltage_m_L0+0 +;oled_control.c,271 :: m = 255 - (m >> (u3-1)) +1; + MOVLW 1 + SUBWF oled_voltage_u3_L0+0, 0 + MOVWF R0 + CLRF R1 + MOVLW 0 + SUBWFB R1, 1 + MOVF R0, 0 + MOVWF R1 + MOVF oled_voltage_m_L0+0, 0 + MOVWF R0 + MOVF R1, 0 +L__oled_voltage146: + BTFSC STATUS+0, 2 + GOTO L__oled_voltage147 + LSRF R0, 1 + ADDLW 255 + GOTO L__oled_voltage146 +L__oled_voltage147: + MOVF R0, 0 + SUBLW 255 + MOVWF oled_voltage_m_L0+0 + INCF oled_voltage_m_L0+0, 1 +;oled_control.c,272 :: m = m | 0b11000000; + MOVLW 192 + IORWF oled_voltage_m_L0+0, 1 +;oled_control.c,273 :: set_addressing (3, 117); + MOVLW 3 + MOVWF FARG_set_addressing_pagenum+0 + MOVLW 117 + MOVWF FARG_set_addressing_c_start+0 + CALL _set_addressing+0 +;oled_control.c,274 :: for(i=0; i<=6; i++) Soft_I2C_Write(m); + CLRF oled_voltage_i_L0+0 +L_oled_voltage63: + MOVF oled_voltage_i_L0+0, 0 + SUBLW 6 + BTFSS STATUS+0, 0 + GOTO L_oled_voltage64 + MOVF oled_voltage_m_L0+0, 0 + MOVWF FARG_Soft_I2C_Write+0 + CALL _Soft_I2C_Write+0 + INCF oled_voltage_i_L0+0, 1 + GOTO L_oled_voltage63 +L_oled_voltage64: +;oled_control.c,276 :: Soft_I2C_Stop (); + CALL _Soft_I2C_Stop+0 +;oled_control.c,277 :: return; +;oled_control.c,278 :: } +L_end_oled_voltage: + RETURN +; end of _oled_voltage diff --git a/Firmware/ATU-10_FW_13/oled_control.c b/Firmware/ATU-10_FW_13/oled_control.c new file mode 100644 index 0000000..16b97f8 --- /dev/null +++ b/Firmware/ATU-10_FW_13/oled_control.c @@ -0,0 +1,279 @@ +#include "oled_control.h" +#include "Soft_I2C.h" + +void oled_disp_on() { + send_command(0xAF); // display ON +} + +void oled_disp_off() { + send_command(0xAE); // display OFF +} + +void oled_init (void) { // OLED init + char cnt; + for(cnt=0; cnt<10; cnt++){ + Soft_I2C_Start(); + if(Soft_I2C_Write(oled_addr)==0) break; // device addres + else Soft_I2C_Stop(); + Delay_ms(300); + } + Soft_I2C_Write(0); // 0 - continious mode, command; 64 - Co, data + Soft_I2C_Write (0xAE); // display OFF + // initialisation + Soft_I2C_Write (0xD5); // clock division + Soft_I2C_Write (0x80); // ratio + // + Soft_I2C_Write (0xA8); // multiplexer + Soft_I2C_Write (63); // + // + Soft_I2C_Write (0xD3); // offset + Soft_I2C_Write (shift_line); // 32 no offset for x64 ! + // + Soft_I2C_Write (0x40); // set line, line = 0 + // + Soft_I2C_Write (0x8D); // charge pump + Soft_I2C_Write (0x14); // 0x10 - external, 0x14 - internal + // + Soft_I2C_Write (0x81); // contrast + Soft_I2C_Write (255); // 0-255 + // + Soft_I2C_Write (0xD9); // pre-charge + Soft_I2C_Write (0xF1); // 0x22 - external, 0xF1 - internal + // + Soft_I2C_Write (0x20); // memory addressing mode + Soft_I2C_Write (0x02); // page addressing mode 02 + // + Soft_I2C_Write (0x21); // set column range + Soft_I2C_Write (0); // column start + Soft_I2C_Write (127); // column stop + // + Soft_I2C_Write (0x2E); // stop scrolling + // + if(inversion) { + Soft_I2C_Write (0xA0); // segment re-map, A0 - normal, A1 - remapped + Soft_I2C_Write (0xC0); // scan direction, C0 - normal, C8 - remapped + } + else { + Soft_I2C_Write (0xA1); // segment re-map, A0 - normal, A1 - remapped + Soft_I2C_Write (0xC8); // scan direction, C0 - normal, C8 - remapped + } + // + Soft_I2C_Write (0xDA); // COM pins configure + Soft_I2C_Write (0x02); // 02 for 32 12 for x64 + // + Soft_I2C_Write (0xDB); // V-COM detect + Soft_I2C_Write (0x40); // + // + Soft_I2C_Write (0xA4); // display entire ON + // + Soft_I2C_Write (0xA6); // 0xA6 - normal, 0xA7 - inverse + // + Soft_I2C_Stop (); + // + oled_clear(); + send_command (0xAF); // display ON + return; +} + +void oled_clear(void){ + char i, r; + // ********clear OLED*********** + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); // device addres + Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + // + for (r = 0; r <=7; r++) { + set_addressing (r, 0); // clear all 8 pages + for (i = 0; i < 128; i++, Soft_I2C_Write(0x00)); // clear one page pixels + } + Soft_I2C_Stop (); + // + return; +} + +void send_command (char oled_command) { + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); // device addres + Soft_I2C_Write(128); // 128 - command, 192 - data + Soft_I2C_Write(oled_command); + Soft_I2C_Stop(); + return; +} + +void set_addressing (char pagenum, char c_start) { + char a, b, c; + c = c_start + oled_shift; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); // device addres + Soft_I2C_Write(0); // 0 - continious mode, command; 64 - Co, data + Soft_I2C_Write(0xB0 + pagenum); // set page number + // + if (c <= 15) { a = c; b = 0; } + else { b = c / 16; a = c - b * 16; } + Soft_I2C_Write (a); // set lower nibble of start address + Soft_I2C_Write (0x10 + b); // set higher nibble of start address + // + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); // device addres + Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + return; +} + +void oled_wr_str_s(char page, char col, char str[], char len) { // 128*64 OLED + char i, h, g; + set_addressing (page, col); + // + for (i = 0; i < len; i++) { // write string + g = str[i] - 32; // table shift + for (h = 0; h < 5; h++) { // write letter + Soft_I2C_Write(font_5x8[g*5+h]); + } + Soft_I2C_Write (0); + } + Soft_I2C_Stop (); + return; +} + +// +void oled_wr_str (char page, char col, char str[], char leng ) { // + char i, h, g, w1, w2; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); // device addres + Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + // + set_addressing (page, col); + // + for (i = 0; i < leng; i++) { // write string + if (str[i] == 0) g = 0; else g = str[i] - 32; // NULL detection + for (h = 0; h <= 4; h++) { // write letter + w1 = font_5x8[g*5+h]; + if(page != 2) { + w2.B7 = w1.B3; + w2.B6 = w1.B3; + w2.B5 = w1.B2; + w2.B4 = w1.B2; + w2.B3 = w1.B1; + w2.B2 = w1.B1; + w2.B1 = w1.B0; + w2.B0 = w1.B0; } + else { + w2.B7 = w1.B2; + w2.B6 = w1.B2; + w2.B5 = w1.B1; + w2.B4 = w1.B1; + w2.B3 = w1.B0; + w2.B2 = w1.B0; + w2.B1 = 0; + w2.B0 = 0; + } + Soft_I2C_Write(w2); + Soft_I2C_Write(w2); + } + Soft_I2C_Write (0); + Soft_I2C_Write (0); + } + set_addressing (page+1, col); + // + for (i = 0; i < leng; i++) { // write string + if (str[i] == 0) g = 0; else g = str[i] - 32; // NULL detection + for (h = 0; h <= 4; h++) { // write letter + w1 = font_5x8[g*5+h]; + if(page != 2) { + w2.B7 = w1.B7; + w2.B6 = w1.B7; + w2.B5 = w1.B6; + w2.B4 = w1.B6; + w2.B3 = w1.B5; + w2.B2 = w1.B5; + w2.B1 = w1.B4; + w2.B0 = w1.B4; } + else { + w2.B7 = w1.B6; + w2.B6 = w1.B6; + w2.B5 = w1.B5; + w2.B4 = w1.B5; + w2.B3 = w1.B4; + w2.B2 = w1.B4; + w2.B1 = w1.B3; + w2.B0 = w1.B3; + } + Soft_I2C_Write(w2); + Soft_I2C_Write(w2); + } + Soft_I2C_Write (0); + Soft_I2C_Write (0); + } + Soft_I2C_Stop (); +} + +// +void oled_bat () { + char i, g; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); // device addres + Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + // + + for(g=0; g<=3; g++) { // batt drawing + set_addressing (g, 115); + for(i=0; i<=10; i++) { Soft_I2C_Write(batt[g*11+i]); } + } + Soft_I2C_Stop (); + return; + } + +// +void oled_voltage(int Voltage) { + char i, v, u0, u1, u2, u3, m; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); // device addres + Soft_I2C_Write(64); // 0 - continious mode, command; 64 - Co, data + // + Voltage /= 10; + if(Voltage < 300) Voltage = 300; + else if(Voltage > 420) Voltage = 420; + Voltage = Voltage - 300; // 0 - 120 + Voltage = Voltage * 32; + v = Voltage / 120; + + + if(v >= 25) { u0 = v - 24; u1 = 8; u2 = 8; u3 = 8; } + else if(v >= 17) { u0 = 0; u1 = v - 16; u2 = 8; u3 = 8; } + else if(v >= 9 ) { u0 = 0; u1 = 0; u2 = v - 8; u3 = 8; } + else { u0 = 0; u1 = 0; u2 = 0; u3 = v ; } + + m = 128; + m = 255 - (m >> (u0-1)) +1; + m = m | 0b00000011; + set_addressing (0, 119); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + m = m | 0b00011111; + set_addressing (0, 117); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + set_addressing (0, 122); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + + m = 128; + m = 255 - (m >> (u1-1)) + 1; + set_addressing (1, 117); + for(i=0; i<=6; i++) Soft_I2C_Write(m); + + m = 128; + m = 255 - (m >> (u2-1)) + 1; + set_addressing (2, 117); + for(i=0; i<=6; i++) Soft_I2C_Write(m); + + m = 128; + m = 255 - (m >> (u3-1)) +1; + m = m | 0b11000000; + set_addressing (3, 117); + for(i=0; i<=6; i++) Soft_I2C_Write(m); + // + Soft_I2C_Stop (); + return; +} +// \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/oled_control.c.ini b/Firmware/ATU-10_FW_13/oled_control.c.ini new file mode 100644 index 0000000..41c6455 --- /dev/null +++ b/Firmware/ATU-10_FW_13/oled_control.c.ini @@ -0,0 +1,5 @@ +[Position] +Line=18 +Column=17 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/oled_control.cp b/Firmware/ATU-10_FW_13/oled_control.cp new file mode 100644 index 0000000..f04d1c2 --- /dev/null +++ b/Firmware/ATU-10_FW_13/oled_control.cp @@ -0,0 +1,455 @@ +#line 1 "D:/Projects/ATU-10/Firmware_1.3/oled_control.c" +#line 1 "d:/projects/atu-10/firmware_1.3/oled_control.h" +#line 1 "d:/projects/atu-10/firmware_1.3/font_5x8.h" + static const code char font_5x8[] = { + +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, +0x24, 0x2A, 0x7F, 0x2A, 0x12, +0x23, 0x13, 0x08, 0x64, 0x62, +0x36, 0x49, 0x55, 0x22, 0x50, +0x00, 0x05, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, +0x08, 0x2A, 0x1C, 0x2A, 0x08, +0x08, 0x08, 0x3E, 0x08, 0x08, +0x00, 0x50, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, +0x00, 0x30, 0x30, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, +0x3E, 0x51, 0x49, 0x45, 0x3E, +0x00, 0x42, 0x7F, 0x40, 0x00, +0x42, 0x61, 0x51, 0x49, 0x46, +0x21, 0x41, 0x45, 0x4B, 0x31, +0x18, 0x14, 0x12, 0x7F, 0x10, +0x27, 0x45, 0x45, 0x45, 0x39, +0x3C, 0x4A, 0x49, 0x49, 0x30, +0x01, 0x71, 0x09, 0x05, 0x03, +0x36, 0x49, 0x49, 0x49, 0x36, +0x06, 0x49, 0x49, 0x29, 0x1E, +0x00, 0x36, 0x36, 0x00, 0x00, +0x00, 0x56, 0x36, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, +0x14, 0x14, 0x14, 0x14, 0x14, +0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x51, 0x09, 0x06, +0x32, 0x49, 0x79, 0x41, 0x3E, +0x7E, 0x11, 0x11, 0x11, 0x7E, +0x7F, 0x49, 0x49, 0x49, 0x36, +0x3E, 0x41, 0x41, 0x41, 0x22, +0x7F, 0x41, 0x41, 0x22, 0x1C, +0x7F, 0x49, 0x49, 0x49, 0x41, +0x7F, 0x09, 0x09, 0x01, 0x01, +0x3E, 0x41, 0x41, 0x51, 0x32, +0x7F, 0x08, 0x08, 0x08, 0x7F, +0x00, 0x41, 0x7F, 0x41, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, +0x7F, 0x08, 0x14, 0x22, 0x41, +0x7F, 0x40, 0x40, 0x40, 0x40, +0x7F, 0x02, 0x04, 0x02, 0x7F, +0x7F, 0x04, 0x08, 0x10, 0x7F, +0x3E, 0x41, 0x41, 0x41, 0x3E, +0x7F, 0x09, 0x09, 0x09, 0x06, +0x3E, 0x41, 0x51, 0x21, 0x5E, +0x7F, 0x09, 0x19, 0x29, 0x46, +0x46, 0x49, 0x49, 0x49, 0x31, +0x01, 0x01, 0x7F, 0x01, 0x01, +0x3F, 0x40, 0x40, 0x40, 0x3F, +0x1F, 0x20, 0x40, 0x20, 0x1F, +0x7F, 0x20, 0x18, 0x20, 0x7F, +0x63, 0x14, 0x08, 0x14, 0x63, +0x03, 0x04, 0x78, 0x04, 0x03, +0x61, 0x51, 0x49, 0x45, 0x43, +0x00, 0x00, 0x7F, 0x41, 0x41, +0x02, 0x04, 0x08, 0x10, 0x20, +0x41, 0x41, 0x7F, 0x00, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, +0x40, 0x40, 0x40, 0x40, 0x40, +0x00, 0x01, 0x02, 0x04, 0x00, +0x20, 0x54, 0x54, 0x54, 0x78, +0x7F, 0x48, 0x44, 0x44, 0x38, +0x38, 0x44, 0x44, 0x44, 0x20, +0x38, 0x44, 0x44, 0x48, 0x7F, +0x38, 0x54, 0x54, 0x54, 0x18, +0x08, 0x7E, 0x09, 0x01, 0x02, +0x08, 0x14, 0x54, 0x54, 0x3C, +0x7F, 0x08, 0x04, 0x04, 0x78, +0x00, 0x44, 0x7D, 0x40, 0x00, +0x20, 0x40, 0x44, 0x3D, 0x00, +0x00, 0x7F, 0x10, 0x28, 0x44, +0x00, 0x41, 0x7F, 0x40, 0x00, +0x7C, 0x04, 0x18, 0x04, 0x78, +0x7C, 0x08, 0x04, 0x04, 0x78, +0x38, 0x44, 0x44, 0x44, 0x38, +0x7C, 0x14, 0x14, 0x14, 0x08, +0x08, 0x14, 0x14, 0x18, 0x7C, +0x7C, 0x08, 0x04, 0x04, 0x08, +0x48, 0x54, 0x54, 0x54, 0x20, +0x04, 0x3F, 0x44, 0x40, 0x20, +0x3C, 0x40, 0x40, 0x20, 0x7C, +0x1C, 0x20, 0x40, 0x20, 0x1C, +0x3C, 0x40, 0x30, 0x40, 0x3C, +0x44, 0x28, 0x10, 0x28, 0x44, +0x0C, 0x50, 0x50, 0x50, 0x3C, +0x44, 0x64, 0x54, 0x4C, 0x44, +0x00, 0x08, 0x36, 0x41, 0x00, +0x00, 0x00, 0x7F, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, +0x08, 0x1C, 0x2A, 0x08, 0x08 +}; +#line 3 "d:/projects/atu-10/firmware_1.3/oled_control.h" +static oled_addr = 0x78; +static char shift_line = 64; +static char oled_shift = 2; +static char inversion = 1; + +void oled_init (void); +void oled_clear(void); +void send_command (char); +void set_addressing (char, char); +void oled_wr_str_s(char, char, char*, char); +void oled_wr_str(char, char, char*, char); +void oled_bat (void); +void oled_voltage (int); +void oled_clear (void); + + +static const char batt[] = { + 0B11111000, + 0B11111000, + + 0B00011111, + 0B00011111, + 0B00000011, + 0B00000011, + 0B00000011, + 0B00011111, + 0B00011111, + + 0B11111000, + 0B11111000, + + 0B11111111, + 0B11111111, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B11111111, + 0B11111111, + + 0B11111111, + 0B11111111, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B11111111, + 0B11111111, + + 0B11111111, + 0B11111111, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11111111, + 0B11111111 + }; +#line 1 "d:/projects/atu-10/firmware_1.3/soft_i2c.h" + +void Soft_I2C_Init(void); +void Soft_I2C_Start(void); +char Soft_I2C_Write(char); +char Soft_I2C_Read(void); +void Soft_I2C_ACK(void); +void Soft_I2C_NACK(void); +void Soft_I2C_Stop(void); +#line 4 "D:/Projects/ATU-10/Firmware_1.3/oled_control.c" +void oled_disp_on() { + send_command(0xAF); +} + +void oled_disp_off() { + send_command(0xAE); +} + +void oled_init (void) { + char cnt; + for(cnt=0; cnt<10; cnt++){ + Soft_I2C_Start(); + if(Soft_I2C_Write(oled_addr)==0) break; + else Soft_I2C_Stop(); + Delay_ms(300); + } + Soft_I2C_Write(0); + Soft_I2C_Write (0xAE); + + Soft_I2C_Write (0xD5); + Soft_I2C_Write (0x80); + + Soft_I2C_Write (0xA8); + Soft_I2C_Write (63); + + Soft_I2C_Write (0xD3); + Soft_I2C_Write (shift_line); + + Soft_I2C_Write (0x40); + + Soft_I2C_Write (0x8D); + Soft_I2C_Write (0x14); + + Soft_I2C_Write (0x81); + Soft_I2C_Write (255); + + Soft_I2C_Write (0xD9); + Soft_I2C_Write (0xF1); + + Soft_I2C_Write (0x20); + Soft_I2C_Write (0x02); + + Soft_I2C_Write (0x21); + Soft_I2C_Write (0); + Soft_I2C_Write (127); + + Soft_I2C_Write (0x2E); + + if(inversion) { + Soft_I2C_Write (0xA0); + Soft_I2C_Write (0xC0); + } + else { + Soft_I2C_Write (0xA1); + Soft_I2C_Write (0xC8); + } + + Soft_I2C_Write (0xDA); + Soft_I2C_Write (0x02); + + Soft_I2C_Write (0xDB); + Soft_I2C_Write (0x40); + + Soft_I2C_Write (0xA4); + + Soft_I2C_Write (0xA6); + + Soft_I2C_Stop (); + + oled_clear(); + send_command (0xAF); + return; +} + +void oled_clear(void){ + char i, r; + + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); + Soft_I2C_Write(64); + + for (r = 0; r <=7; r++) { + set_addressing (r, 0); + for (i = 0; i < 128; i++, Soft_I2C_Write(0x00)); + } + Soft_I2C_Stop (); + + return; +} + +void send_command (char oled_command) { + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); + Soft_I2C_Write(128); + Soft_I2C_Write(oled_command); + Soft_I2C_Stop(); + return; +} + +void set_addressing (char pagenum, char c_start) { + char a, b, c; + c = c_start + oled_shift; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); + Soft_I2C_Write(0); + Soft_I2C_Write(0xB0 + pagenum); + + if (c <= 15) { a = c; b = 0; } + else { b = c / 16; a = c - b * 16; } + Soft_I2C_Write (a); + Soft_I2C_Write (0x10 + b); + + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); + Soft_I2C_Write(64); + return; +} + +void oled_wr_str_s(char page, char col, char str[], char len) { + char i, h, g; + set_addressing (page, col); + + for (i = 0; i < len; i++) { + g = str[i] - 32; + for (h = 0; h < 5; h++) { + Soft_I2C_Write(font_5x8[g*5+h]); + } + Soft_I2C_Write (0); + } + Soft_I2C_Stop (); + return; +} + + +void oled_wr_str (char page, char col, char str[], char leng ) { + char i, h, g, w1, w2; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); + Soft_I2C_Write(64); + + set_addressing (page, col); + + for (i = 0; i < leng; i++) { + if (str[i] == 0) g = 0; else g = str[i] - 32; + for (h = 0; h <= 4; h++) { + w1 = font_5x8[g*5+h]; + if(page != 2) { + w2.B7 = w1.B3; + w2.B6 = w1.B3; + w2.B5 = w1.B2; + w2.B4 = w1.B2; + w2.B3 = w1.B1; + w2.B2 = w1.B1; + w2.B1 = w1.B0; + w2.B0 = w1.B0; } + else { + w2.B7 = w1.B2; + w2.B6 = w1.B2; + w2.B5 = w1.B1; + w2.B4 = w1.B1; + w2.B3 = w1.B0; + w2.B2 = w1.B0; + w2.B1 = 0; + w2.B0 = 0; + } + Soft_I2C_Write(w2); + Soft_I2C_Write(w2); + } + Soft_I2C_Write (0); + Soft_I2C_Write (0); + } + set_addressing (page+1, col); + + for (i = 0; i < leng; i++) { + if (str[i] == 0) g = 0; else g = str[i] - 32; + for (h = 0; h <= 4; h++) { + w1 = font_5x8[g*5+h]; + if(page != 2) { + w2.B7 = w1.B7; + w2.B6 = w1.B7; + w2.B5 = w1.B6; + w2.B4 = w1.B6; + w2.B3 = w1.B5; + w2.B2 = w1.B5; + w2.B1 = w1.B4; + w2.B0 = w1.B4; } + else { + w2.B7 = w1.B6; + w2.B6 = w1.B6; + w2.B5 = w1.B5; + w2.B4 = w1.B5; + w2.B3 = w1.B4; + w2.B2 = w1.B4; + w2.B1 = w1.B3; + w2.B0 = w1.B3; + } + Soft_I2C_Write(w2); + Soft_I2C_Write(w2); + } + Soft_I2C_Write (0); + Soft_I2C_Write (0); + } + Soft_I2C_Stop (); +} + + +void oled_bat () { + char i, g; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); + Soft_I2C_Write(64); + + + for(g=0; g<=3; g++) { + set_addressing (g, 115); + for(i=0; i<=10; i++) { Soft_I2C_Write(batt[g*11+i]); } + } + Soft_I2C_Stop (); + return; + } + + +void oled_voltage(int Voltage) { + char i, v, u0, u1, u2, u3, m; + Soft_I2C_Start(); + Soft_I2C_Write(oled_addr); + Soft_I2C_Write(64); + + Voltage /= 10; + if(Voltage < 300) Voltage = 300; + else if(Voltage > 420) Voltage = 420; + Voltage = Voltage - 300; + Voltage = Voltage * 32; + v = Voltage / 120; + + + if(v >= 25) { u0 = v - 24; u1 = 8; u2 = 8; u3 = 8; } + else if(v >= 17) { u0 = 0; u1 = v - 16; u2 = 8; u3 = 8; } + else if(v >= 9 ) { u0 = 0; u1 = 0; u2 = v - 8; u3 = 8; } + else { u0 = 0; u1 = 0; u2 = 0; u3 = v ; } + + m = 128; + m = 255 - (m >> (u0-1)) +1; + m = m | 0b00000011; + set_addressing (0, 119); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + m = m | 0b00011111; + set_addressing (0, 117); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + set_addressing (0, 122); + Soft_I2C_Write(m); + Soft_I2C_Write(m); + + m = 128; + m = 255 - (m >> (u1-1)) + 1; + set_addressing (1, 117); + for(i=0; i<=6; i++) Soft_I2C_Write(m); + + m = 128; + m = 255 - (m >> (u2-1)) + 1; + set_addressing (2, 117); + for(i=0; i<=6; i++) Soft_I2C_Write(m); + + m = 128; + m = 255 - (m >> (u3-1)) +1; + m = m | 0b11000000; + set_addressing (3, 117); + for(i=0; i<=6; i++) Soft_I2C_Write(m); + + Soft_I2C_Stop (); + return; +} diff --git a/Firmware/ATU-10_FW_13/oled_control.h b/Firmware/ATU-10_FW_13/oled_control.h new file mode 100644 index 0000000..bffc79c --- /dev/null +++ b/Firmware/ATU-10_FW_13/oled_control.h @@ -0,0 +1,69 @@ +#include "font_5x8.h" + +static oled_addr = 0x78; +static char shift_line = 64; // shift the image down +static char oled_shift = 2; // shift the image left +static char inversion = 1; +// +void oled_init (void); +void oled_clear(void); +void send_command (char); +void set_addressing (char, char); +void oled_wr_str_s(char, char, char*, char); +void oled_wr_str(char, char, char*, char); +void oled_bat (void); +void oled_voltage (int); +void oled_clear (void); + +// +static const char batt[] = { + 0B11111000, + 0B11111000, + + 0B00011111, + 0B00011111, + 0B00000011, + 0B00000011, + 0B00000011, + 0B00011111, + 0B00011111, + + 0B11111000, + 0B11111000, + // + 0B11111111, + 0B11111111, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B11111111, + 0B11111111, + // + 0B11111111, + 0B11111111, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B00000000, + 0B11111111, + 0B11111111, + // + 0B11111111, + 0B11111111, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11000000, + 0B11111111, + 0B11111111 + }; \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/oled_control.h.ini b/Firmware/ATU-10_FW_13/oled_control.h.ini new file mode 100644 index 0000000..ff713ba --- /dev/null +++ b/Firmware/ATU-10_FW_13/oled_control.h.ini @@ -0,0 +1,5 @@ +[Position] +Line=1 +Column=1 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/oled_control.mcl b/Firmware/ATU-10_FW_13/oled_control.mcl new file mode 100644 index 0000000..6f3ef96 Binary files /dev/null and b/Firmware/ATU-10_FW_13/oled_control.mcl differ diff --git a/Firmware/ATU-10_FW_13/pic_init.asm b/Firmware/ATU-10_FW_13/pic_init.asm new file mode 100644 index 0000000..5c1a62a --- /dev/null +++ b/Firmware/ATU-10_FW_13/pic_init.asm @@ -0,0 +1,124 @@ + +_pic_init: + +;pic_init.c,5 :: void pic_init (void) { +;pic_init.c,7 :: ANSELA = 0; // all as digital + CLRF ANSELA+0 +;pic_init.c,8 :: ANSELB = 0; // all as digital + CLRF ANSELB+0 +;pic_init.c,9 :: ANSB0_bit = 1; // analog input + BSF ANSB0_bit+0, BitPos(ANSB0_bit+0) +;pic_init.c,10 :: ANSB1_bit = 1; // analog input + BSF ANSB1_bit+0, BitPos(ANSB1_bit+0) +;pic_init.c,11 :: ANSB2_bit = 1; // analog input + BSF ANSB2_bit+0, BitPos(ANSB2_bit+0) +;pic_init.c,12 :: ANSELC = 0; // all as digital + CLRF ANSELC+0 +;pic_init.c,13 :: ANSELE = 0; // all as digital + CLRF ANSELE+0 +;pic_init.c,14 :: ANSELD = 0; // all as digital + CLRF ANSELD+0 +;pic_init.c,16 :: C1ON_bit = 0; // Disable comparators + BCF C1ON_bit+0, BitPos(C1ON_bit+0) +;pic_init.c,17 :: C2ON_bit = 0; + BCF C2ON_bit+0, BitPos(C2ON_bit+0) +;pic_init.c,19 :: PORTA = 0; + CLRF PORTA+0 +;pic_init.c,20 :: PORTB = 0; + CLRF PORTB+0 +;pic_init.c,21 :: PORTC = 0; + CLRF PORTC+0 +;pic_init.c,22 :: PORTD = 0; + CLRF PORTD+0 +;pic_init.c,23 :: PORTE = 0; + CLRF PORTE+0 +;pic_init.c,24 :: LATA = 0b00000000; + CLRF LATA+0 +;pic_init.c,25 :: LATB = 0b00000000; + CLRF LATB+0 +;pic_init.c,26 :: LATC = 0b00010000; + MOVLW 16 + MOVWF LATC+0 +;pic_init.c,27 :: LATD = 0b00000110; + MOVLW 6 + MOVWF LATD+0 +;pic_init.c,28 :: LATE = 0b00000000; + CLRF LATE+0 +;pic_init.c,29 :: TRISA = 0b00000000; + CLRF TRISA+0 +;pic_init.c,30 :: TRISB = 0b00100111; + MOVLW 39 + MOVWF TRISB+0 +;pic_init.c,31 :: TRISC = 0b00000000; + CLRF TRISC+0 +;pic_init.c,32 :: TRISD = 0b00000000; + CLRF TRISD+0 +;pic_init.c,33 :: TRISE = 0b00000000; + CLRF TRISE+0 +;pic_init.c,36 :: ODCA2_bit = 1; + BSF ODCA2_bit+0, BitPos(ODCA2_bit+0) +;pic_init.c,37 :: ODCA3_bit = 1; + BSF ODCA3_bit+0, BitPos(ODCA3_bit+0) +;pic_init.c,38 :: ODCD1_bit = 1; + BSF ODCD1_bit+0, BitPos(ODCD1_bit+0) +;pic_init.c,39 :: ODCD2_bit = 1; + BSF ODCD2_bit+0, BitPos(ODCD2_bit+0) +;pic_init.c,42 :: T0CS0_bit = 0; // Fosc/4 + BCF T0CS0_bit+0, BitPos(T0CS0_bit+0) +;pic_init.c,43 :: T0CS1_bit = 1; + BSF T0CS1_bit+0, BitPos(T0CS1_bit+0) +;pic_init.c,44 :: T0CS2_bit = 0; + BCF T0CS2_bit+0, BitPos(T0CS2_bit+0) +;pic_init.c,45 :: T016BIT_bit = 1; + BSF T016BIT_bit+0, BitPos(T016BIT_bit+0) +;pic_init.c,46 :: TMR0L = 0xC0; // 8_000 cycles to OF + MOVLW 192 + MOVWF TMR0L+0 +;pic_init.c,47 :: TMR0H = 0xE0; + MOVLW 224 + MOVWF TMR0H+0 +;pic_init.c,48 :: TMR0IF_bit = 0; + BCF TMR0IF_bit+0, BitPos(TMR0IF_bit+0) +;pic_init.c,49 :: T0EN_bit = 1; + BSF T0EN_bit+0, BitPos(T0EN_bit+0) +;pic_init.c,50 :: TMR0IE_bit = 1; + BSF TMR0IE_bit+0, BitPos(TMR0IE_bit+0) +;pic_init.c,53 :: PMD0 = 0b00011110; // + MOVLW 30 + MOVWF PMD0+0 +;pic_init.c,54 :: PMD1 = 0b11111110; + MOVLW 254 + MOVWF PMD1+0 +;pic_init.c,55 :: PMD2 = 0b01000111; + MOVLW 71 + MOVWF PMD2+0 +;pic_init.c,56 :: PMD3 = 0b01111111; + MOVLW 127 + MOVWF PMD3+0 +;pic_init.c,57 :: PMD4 = 0b1110111; + MOVLW 119 + MOVWF PMD4+0 +;pic_init.c,58 :: PMD5 = 0b11011111; + MOVLW 223 + MOVWF PMD5+0 +;pic_init.c,60 :: GIE_bit = 1; + BSF GIE_bit+0, BitPos(GIE_bit+0) +;pic_init.c,61 :: Delay_ms (100); + MOVLW 5 + MOVWF R11 + MOVLW 15 + MOVWF R12 + MOVLW 241 + MOVWF R13 +L_pic_init0: + DECFSZ R13, 1 + GOTO L_pic_init0 + DECFSZ R12, 1 + GOTO L_pic_init0 + DECFSZ R11, 1 + GOTO L_pic_init0 +;pic_init.c,62 :: return; +;pic_init.c,63 :: } +L_end_pic_init: + RETURN +; end of _pic_init diff --git a/Firmware/ATU-10_FW_13/pic_init.c b/Firmware/ATU-10_FW_13/pic_init.c new file mode 100644 index 0000000..9f4daa1 --- /dev/null +++ b/Firmware/ATU-10_FW_13/pic_init.c @@ -0,0 +1,63 @@ +// pic_init unit for Micro C PRO +// David Fainitski for X-202 project +// 2020 + +void pic_init (void) { +// ports initialisation + ANSELA = 0; // all as digital + ANSELB = 0; // all as digital + ANSB0_bit = 1; // analog input + ANSB1_bit = 1; // analog input + ANSB2_bit = 1; // analog input + ANSELC = 0; // all as digital + ANSELE = 0; // all as digital + ANSELD = 0; // all as digital + + C1ON_bit = 0; // Disable comparators + C2ON_bit = 0; + + PORTA = 0; + PORTB = 0; + PORTC = 0; + PORTD = 0; + PORTE = 0; + LATA = 0b00000000; + LATB = 0b00000000; + LATC = 0b00010000; + LATD = 0b00000110; + LATE = 0b00000000; + TRISA = 0b00000000; + TRISB = 0b00100111; + TRISC = 0b00000000; + TRISD = 0b00000000; + TRISE = 0b00000000; + + // open drains + ODCA2_bit = 1; + ODCA3_bit = 1; + ODCD1_bit = 1; + ODCD2_bit = 1; + + // Timer0 settings + T0CS0_bit = 0; // Fosc/4 + T0CS1_bit = 1; + T0CS2_bit = 0; + T016BIT_bit = 1; + TMR0L = 0xC0; // 8_000 cycles to OF + TMR0H = 0xE0; + TMR0IF_bit = 0; + T0EN_bit = 1; + TMR0IE_bit = 1; + + // Modules disable + PMD0 = 0b00011110; // + PMD1 = 0b11111110; + PMD2 = 0b01000111; + PMD3 = 0b01111111; + PMD4 = 0b1110111; + PMD5 = 0b11011111; + //interrupt setting + GIE_bit = 1; + Delay_ms (100); + return; +} \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/pic_init.c.ini b/Firmware/ATU-10_FW_13/pic_init.c.ini new file mode 100644 index 0000000..daf7780 --- /dev/null +++ b/Firmware/ATU-10_FW_13/pic_init.c.ini @@ -0,0 +1,5 @@ +[Position] +Line=46 +Column=23 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/pic_init.cp b/Firmware/ATU-10_FW_13/pic_init.cp new file mode 100644 index 0000000..3b22daa --- /dev/null +++ b/Firmware/ATU-10_FW_13/pic_init.cp @@ -0,0 +1,64 @@ +#line 1 "D:/Projects/ATU-10/Firmware_1.3/pic_init.c" + + + + +void pic_init (void) { + + ANSELA = 0; + ANSELB = 0; + ANSB0_bit = 1; + ANSB1_bit = 1; + ANSB2_bit = 1; + ANSELC = 0; + ANSELE = 0; + ANSELD = 0; + + C1ON_bit = 0; + C2ON_bit = 0; + + PORTA = 0; + PORTB = 0; + PORTC = 0; + PORTD = 0; + PORTE = 0; + LATA = 0b00000000; + LATB = 0b00000000; + LATC = 0b00010000; + LATD = 0b00000110; + LATE = 0b00000000; + TRISA = 0b00000000; + TRISB = 0b00100111; + TRISC = 0b00000000; + TRISD = 0b00000000; + TRISE = 0b00000000; + + + ODCA2_bit = 1; + ODCA3_bit = 1; + ODCD1_bit = 1; + ODCD2_bit = 1; + + + T0CS0_bit = 0; + T0CS1_bit = 1; + T0CS2_bit = 0; + T016BIT_bit = 1; + TMR0L = 0xC0; + TMR0H = 0xE0; + TMR0IF_bit = 0; + T0EN_bit = 1; + TMR0IE_bit = 1; + + + PMD0 = 0b00011110; + PMD1 = 0b11111110; + PMD2 = 0b01000111; + PMD3 = 0b01111111; + PMD4 = 0b1110111; + PMD5 = 0b11011111; + + GIE_bit = 1; + Delay_ms (100); + return; +} diff --git a/Firmware/ATU-10_FW_13/pic_init.h b/Firmware/ATU-10_FW_13/pic_init.h new file mode 100644 index 0000000..db8661b --- /dev/null +++ b/Firmware/ATU-10_FW_13/pic_init.h @@ -0,0 +1,24 @@ +// Connections +// +#define GetButton ~ PORTB.B5 +// +sbit Red at LATB4_bit; +sbit Green at LATB3_bit; +sbit OLED_PWD at LATA4_bit; +sbit C_sw at LATE0_bit; +sbit L_010 at LATD7_bit; +sbit L_022 at LATD6_bit; +sbit L_045 at LATD5_bit; +sbit L_100 at LATD4_bit; +sbit L_220 at LATC7_bit; +sbit L_450 at LATC6_bit; +sbit L_1000 at LATC5_bit; +sbit C_22 at LATA5_bit; +sbit C_47 at LATE1_bit; +sbit C_100 at LATA7_bit; +sbit C_220 at LATA6_bit; +sbit C_470 at LATC0_bit; +sbit C_1000 at LATC1_bit; +sbit C_2200 at LATC2_bit; +sbit Rel_to_gnd at LATD3_bit; +sbit Rel_to_plus_N at LATC4_bit; \ No newline at end of file diff --git a/Firmware/ATU-10_FW_13/pic_init.h.ini b/Firmware/ATU-10_FW_13/pic_init.h.ini new file mode 100644 index 0000000..ff713ba --- /dev/null +++ b/Firmware/ATU-10_FW_13/pic_init.h.ini @@ -0,0 +1,5 @@ +[Position] +Line=1 +Column=1 +[FoldedLines] +Count=0 diff --git a/Firmware/ATU-10_FW_13/pic_init.mcl b/Firmware/ATU-10_FW_13/pic_init.mcl new file mode 100644 index 0000000..f49ecb8 Binary files /dev/null and b/Firmware/ATU-10_FW_13/pic_init.mcl differ