From 6a9141956eeaa0ada901a5d5b0d297a11d98ba4c Mon Sep 17 00:00:00 2001 From: Weston Date: Mon, 14 Jun 2021 02:51:51 -0700 Subject: [PATCH] production firmware with improved auto zero --- firmware/B1-firmware.X/MyConfig.mc3 | 192 +- .../build/default/production/main.i | 285 ++- .../build/default/production/main.p1 | 1638 ++++++++++------- .../production/mcc_generated_files/mcc.i | 6 +- .../production/mcc_generated_files/mcc.p1 | 34 +- .../debug/default/B1-firmware_ptg/DevInfo | Bin 0 -> 8149 bytes .../debug/default/B1-firmware_ptg/PowerInfo | Bin 0 -> 2618 bytes .../debug/default/B1-firmware_ptg/Programmer | Bin 0 -> 12246 bytes .../debug/default/B1-firmware_ptg/ToolInfo | Bin 0 -> 1876 bytes .../default/B1-firmware_ptg/VoltagesInfo | Bin 0 -> 3150 bytes .../debug/default/B1-firmware_ptg/conf.ptg | 1 + .../debug/default/B1-firmware_ptg/connect | Bin 0 -> 209 bytes .../debug/default/B1-firmware_ptg/family | Bin 0 -> 10726 bytes .../debug/default/B1-firmware_ptg/misc | Bin 0 -> 5930 bytes .../debug/default/B1-firmware_ptg/program | Bin 0 -> 183 bytes .../debug/default/B1-firmware_ptg/ptgdata | 212 +++ .../debug/default/B1-firmware_ptg/run | Bin 0 -> 772 bytes .../default/B1-firmware_ptg/sendOperation | Bin 0 -> 2454 bytes .../debug/default/B1-firmware_ptg/version.txt | 1 + .../write_Cfg_st_0x8007_op2_2.dat | 1 + .../write_Cfg_st_0x8007_op2_2_mask.dat | 1 + .../write_Pgm_st_0x0_op2_0.dat | Bin 0 -> 8192 bytes .../write_Pgm_st_0x1520_op2_1.dat | Bin 0 -> 1472 bytes firmware/B1-firmware.X/debug/default/conf.ptg | 1 + firmware/B1-firmware.X/main.c | 304 ++- .../B1-firmware.X/mcc_generated_files/mcc.c | 6 +- .../nbproject/Makefile-genesis.properties | 4 +- .../nbproject/configurations.xml | 61 +- .../nbproject/private/private.xml | 6 + 29 files changed, 1836 insertions(+), 917 deletions(-) create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/DevInfo create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/PowerInfo create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/Programmer create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/ToolInfo create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/VoltagesInfo create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/conf.ptg create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/connect create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/family create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/misc create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/program create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/ptgdata create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/run create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/sendOperation create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/version.txt create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2.dat create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2_mask.dat create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Pgm_st_0x0_op2_0.dat create mode 100644 firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Pgm_st_0x1520_op2_1.dat create mode 100644 firmware/B1-firmware.X/debug/default/conf.ptg diff --git a/firmware/B1-firmware.X/MyConfig.mc3 b/firmware/B1-firmware.X/MyConfig.mc3 index a08daa9..b7c7ac6 100755 --- a/firmware/B1-firmware.X/MyConfig.mc3 +++ b/firmware/B1-firmware.X/MyConfig.mc3 @@ -29,16 +29,16 @@ class com.microchip.mcc.mcu8.modules.dac.DAC - CMP5 - class com.microchip.mcc.mcu8.modules.cmp.CMP + System Module + class com.microchip.mcc.mcu8.systemManager.SystemManager DAC5 class com.microchip.mcc.mcu8.modules.dac10bit.DAC10BIT - System Module - class com.microchip.mcc.mcu8.systemManager.SystemManager + CMP5 + class com.microchip.mcc.mcu8.modules.cmp.CMP DAC4 @@ -53,21 +53,21 @@ class com.microchip.mcc.mcu8.modules.cmp.CMP - INTERNAL OSCILLATOR - class com.microchip.mcc.mcu8.systemManager.osc.Osc + DAC1 + class com.microchip.mcc.mcu8.modules.dac10bit.DAC10BIT CMP1 class com.microchip.mcc.mcu8.modules.cmp.CMP - - DAC1 - class com.microchip.mcc.mcu8.modules.dac10bit.DAC10BIT - OPA1 class com.microchip.mcc.mcu8.modules.opa.OPA + + INTERNAL OSCILLATOR + class com.microchip.mcc.mcu8.systemManager.osc.Osc + OPA2 class com.microchip.mcc.mcu8.modules.opa.OPA @@ -533,14 +533,14 @@ 0 - - - 6 - enabled + + + 6 + 5 @@ -1033,14 +1033,14 @@ 0 - - - 1 - 4 + + + 1 + disabled @@ -2885,14 +2885,14 @@ 31 - - - 30 - 0 + + + 30 + 8 @@ -3005,14 +3005,14 @@ 6 - - - 6 - 7 + + + 6 + 6 @@ -3445,14 +3445,14 @@ disabled - - - 0 - disabled + + + 0 + disabled @@ -4081,14 +4081,14 @@ 1 - - - 10 - channel_Temp + + + 10 + 1 @@ -4245,14 +4245,14 @@ 4 - - - 3 - 1 + + + 3 + output @@ -4838,11 +4838,11 @@ 20 - + 0 - + 0 @@ -5373,14 +5373,14 @@ 0 - - - 3 - 0 + + + 3 + 5 @@ -5797,14 +5797,14 @@ 0 - - - 1 - 0 + + + 1 + 1 @@ -5929,14 +5929,14 @@ CCP1_out - - - 4 - channel_DAC2_Output + + + 4 + 4 @@ -6285,14 +6285,14 @@ disabled - - - 0 - enabled + + + 0 + 0 @@ -6585,14 +6585,14 @@ 12 - - - 0x0 - 19 + + + 0x0 + 18 @@ -6857,6 +6857,10 @@ 4 + + + 13 + 3 @@ -6865,10 +6869,6 @@ 1 - - - 13 - 1000000 @@ -7249,14 +7249,14 @@ disabled - - - 12 - 8 + + + 12 + 1 @@ -7591,62 +7591,66 @@ mcc_generated_files/dac4.c e599a9fd2343662ef0d0bad937aaf86e166cb9ccfeaf9eff8ac698a2395a2590 - - mcc_generated_files/cmp1.c - b18cf9c46facd6c2a8595172a31797adc658df701bcc93a2d96d891571a9127d - mcc_generated_files/mcc.h 9f276b21f2055d909ff3065b0628e1292425cf3da22304373e6142c7f442644d + + mcc_generated_files/cmp1.c + b18cf9c46facd6c2a8595172a31797adc658df701bcc93a2d96d891571a9127d + mcc_generated_files/dac3.c 75bf7b26877d3086ee70b3290d55c5742ba6eabb45ffb9364d6f6e2c22a28178 - - mcc_generated_files/interrupt_manager.c - cce15ffc52012295800bc1daa9862e4184f30c9f8928b8074304e311db3457c0 - mcc_generated_files/dac1.c e84d9e06f73b346432609a89412c376786a54aac3fbf20a4537e41f714209a86 - mcc_generated_files/cmp1.h - af7c6e59cf7750555a55df5f3e033ce9feff801201d55acebec7cefcf02c82f0 - - - mcc_generated_files/mcc.c - f793c8f57a4ecc4ea5991804b0c680ac8850b0cb429acff1b45dd72b156a7bb6 - - - mcc_generated_files/opa2.c - 3f7f8881895ed366b921eaec0a866d183d35ea942237b38c520a202ca9fa1579 + mcc_generated_files/interrupt_manager.c + cce15ffc52012295800bc1daa9862e4184f30c9f8928b8074304e311db3457c0 mcc_generated_files/fvr.h 3141b994f105c4aacffbd1d6d6d4357d4b14d7e97907775e01ef4f4d8e91c94e - mcc_generated_files/cmp5.c - 2b13d60e04e503a8b7cfce75bdb4e784a51ac31b4be6ed9a67982c2dace7d077 + mcc_generated_files/mcc.c + 7cc92c4b7a0380cef3bbb2e43d679840f02b9c2edd714b05b56b1356ad647e6d - mcc_generated_files/pin_manager.c - bff13680d3f2fba56bdbcc25735679fe7a953dd3237d59d2cbba29cc5dd73b68 + mcc_generated_files/cmp1.h + af7c6e59cf7750555a55df5f3e033ce9feff801201d55acebec7cefcf02c82f0 + + + mcc_generated_files/opa2.c + 3f7f8881895ed366b921eaec0a866d183d35ea942237b38c520a202ca9fa1579 + + + mcc_generated_files/cmp5.c + 2b13d60e04e503a8b7cfce75bdb4e784a51ac31b4be6ed9a67982c2dace7d077 mcc_generated_files/opa1.c 66df213a4b3da13957f4494875d291438404d05d697c9b593a9f7dcd4566d2ef - mcc_generated_files/cmp2.h - b6f25251d694a541f24b8960410b0a6cb0b17fabd01fd6a28381420b794617eb + mcc_generated_files/pin_manager.c + bff13680d3f2fba56bdbcc25735679fe7a953dd3237d59d2cbba29cc5dd73b68 mcc_generated_files/fvr.c 4ff95a6794e2605d1b28576ab0d02bfe6d5a6d307f556b26a8cd9f7a9de3ac49 + + mcc_generated_files/cmp2.h + b6f25251d694a541f24b8960410b0a6cb0b17fabd01fd6a28381420b794617eb + + + mcc_generated_files/dac7.h + eff4a549350aecf51fafd669a679dd2e31d80e665f1b15e68b5968d65a9e9a21 + mcc_generated_files/cmp5.h 78b882d4a890bd962fc8d20529f68953d7056be5d45a680bf1da0bf5db697e84 @@ -7655,10 +7659,6 @@ mcc_generated_files/pin_manager.h 19d3a9b3b29edae7ceb2ee22e36f2de8feb7fd8b46038fefee4fb802cc8bf7bc - - mcc_generated_files/dac7.h - eff4a549350aecf51fafd669a679dd2e31d80e665f1b15e68b5968d65a9e9a21 - mcc_generated_files/dac5.h 5cf38d42f70fa9403a8c3a91b5dfc15f333389d6f5c8021f0202dadfc8b7b30e diff --git a/firmware/B1-firmware.X/build/default/production/main.i b/firmware/B1-firmware.X/build/default/production/main.i index c48e5ca..bd6406d 100644 --- a/firmware/B1-firmware.X/build/default/production/main.i +++ b/firmware/B1-firmware.X/build/default/production/main.i @@ -19660,7 +19660,7 @@ void OSCILLATOR_Initialize(void); # 107 "./mcc_generated_files/mcc.h" void WDT_Initialize(void); # 44 "main.c" 2 -# 67 "main.c" +# 70 "main.c" uint8_t mux_state = 0; uint8_t led_color_state = 0x0; @@ -19670,19 +19670,6 @@ void set_led(uint8_t); void init_sensor(void); void reset_sensor(void); -void my_CMP2_ISR(void){ - - PIR2bits.C2IF = 0; - set_led(0x4); - -} - -void my_CMP1_ISR(void){ - - PIR2bits.C1IF = 0; - set_led(0x4); -} - void SW2_ISR(void){ @@ -19711,7 +19698,11 @@ void SW2_ISR(void){ LATBbits.LATB4 = 0; break; } - set_led(led_color_state); + if(~LATCbits.LATC6 && LATCbits.LATC5 && LATCbits.LATC4){ + + } else{ + set_led(led_color_state); + } mux_state = (mux_state+1)%4; _delay((unsigned long)((200)*(8000000/4000.0))); } @@ -19724,7 +19715,7 @@ void SW1_ISR(void){ _delay((unsigned long)((200)*(8000000/4000.0))); set_led(led_color_state); reset_sensor(); - _delay((unsigned long)((200)*(8000000/4000.0))); + _delay((unsigned long)((400)*(8000000/4000.0))); if(PORTCbits.RC7 == 0){ init_sensor(); @@ -19740,18 +19731,34 @@ void SW1_ISR(void){ PIR2bits.C1IF = 0; } -uint16_t average_adc_reading(adc_channel_t read_ch){ +uint32_t average_adc_reading(adc_channel_t read_ch){ - uint16_t averaged_val = 0; - for (int i = 0; i<8; i++){ + uint32_t averaged_val = 0; + + averaged_val = ADC_GetConversion(read_ch); + averaged_val = 0; + for (int i = 0; i<(1<<8); i++){ averaged_val = averaged_val + ADC_GetConversion(read_ch); } - averaged_val = averaged_val; - return averaged_val; } +uint32_t average_adc_reading_quick(adc_channel_t read_ch){ + + uint32_t averaged_val = 0; + + averaged_val = ADC_GetConversion(read_ch); + averaged_val = 0; + + for (int i = 0; i<(1<<(8 -4)); i++){ + averaged_val = averaged_val + ADC_GetConversion(read_ch); + } + + return (averaged_val<<4); +} + + void set_led(uint8_t led_color) { LATCbits.LATC6 = (~led_color>>2)&1; @@ -19759,35 +19766,42 @@ LATCbits.LATC5 = (~led_color>>1)&1; LATCbits.LATC4 = (~led_color)&1; } + void zero_stage_1(void){ - uint16_t gnd_ref_val; + uint32_t gnd_ref_val; uint16_t best_dac_val = 0; - uint16_t stage_val; - int16_t best_val = (1<<12); - int16_t diff_value; + uint16_t best_dac_val_l; + uint32_t stage_val; + int32_t best_val = 262144; + int32_t diff_value; uint16_t start_dac; uint16_t end_dac; - uint16_t old_bw = LATAbits.LATA7; + uint8_t old_bw = LATAbits.LATA7; + uint8_t old_gain = LATBbits.LATB4; - gnd_ref_val = average_adc_reading(GNDREF_SENSE); + LATBbits.LATB4 = 1; LATAbits.LATA7 = 0; - DAC1_Load10bitInputData(512); - _delay((unsigned long)((10)*(8000000/4000.0))); - stage_val = average_adc_reading(STAGE1_MON); - diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; - if(diff_value > 100){ - start_dac = 0; + + DAC1_Load10bitInputData(512); + _delay((unsigned long)((20)*(8000000/4000.0))); + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + + stage_val = average_adc_reading(STAGE2_MON); + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; + + if(diff_value > ((1<<8)*50)){ + start_dac = 16; end_dac = 512; } - else if (diff_value < -100 ){ + else if (diff_value < ((1<<8)*(-50)) ){ start_dac = 512; - end_dac = 1024; + end_dac = 1007; } else{ start_dac = 255; @@ -19795,34 +19809,87 @@ void zero_stage_1(void){ } DAC1_Load10bitInputData(start_dac); - _delay((unsigned long)((10)*(8000000/4000.0))); + _delay((unsigned long)((20)*(8000000/4000.0))); + + stage_val = average_adc_reading(STAGE2_MON); + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; for(uint16_t i = start_dac; i (1<<8)*5) && (i > start_dac+10) ){ + break; + } + } + + DAC1_Load10bitInputData(best_dac_val); + _delay((unsigned long)((50)*(8000000/4000.0))); + + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + best_val = 262144; + start_dac = best_dac_val - 15; + end_dac = best_dac_val + 15; + DAC1_Load10bitInputData(start_dac); + _delay((unsigned long)((100)*(8000000/4000.0))); + for(uint16_t i = start_dac; i start_dac; i--){ + + DAC1_Load10bitInputData(i); + stage_val = average_adc_reading(STAGE2_MON); + _delay((unsigned long)((2)*(8000000/4000.0))); + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; + if (labs(diff_value)<= labs(best_val)){ + best_val = diff_value; + best_dac_val = i; + } + } + + + best_dac_val = (best_dac_val + best_dac_val_l)>>1; DAC1_Load10bitInputData(best_dac_val); LATAbits.LATA7 = old_bw; + LATBbits.LATB4 = old_gain; } + + void zero_stage_2(void){ - uint16_t gnd_ref_val; + uint32_t gnd_ref_val; uint16_t best_dac_val = 0; - uint16_t stage_val; + uint32_t stage_val; + uint16_t best_dac_val_l; - uint16_t old_gain = LATBbits.LATB4; - uint16_t old_bw = LATAbits.LATA7; + uint8_t old_gain = LATBbits.LATB4; + uint8_t old_bw = LATAbits.LATA7; - int16_t best_val = (1<<12); - int16_t diff_value; + int32_t best_val = 262144; + int32_t diff_value; uint16_t start_dac; uint16_t end_dac; @@ -19831,68 +19898,130 @@ void zero_stage_2(void){ LATBbits.LATB4 = 0; LATAbits.LATA7 = 0; - _delay((unsigned long)((20)*(8000000/4000.0))); - - gnd_ref_val = average_adc_reading(GNDREF_SENSE); - DAC5_Load10bitInputData(512); - _delay((unsigned long)((5)*(8000000/4000.0))); + DAC5_Load10bitInputData(512); + _delay((unsigned long)((20)*(8000000/4000.0))); + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + stage_val = average_adc_reading(STAGE2_MON); - diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; - if(diff_value < -100){ - start_dac = 0; + if(diff_value < ((1<<8)*-8)){ + start_dac = 16; end_dac = 512; } - else if (diff_value > 100 ){ + else if (diff_value > ((1<<8)*8) ){ start_dac = 512; - end_dac = 1024; + end_dac = 1007; } else{ start_dac = 255; end_dac = 768; } - DAC5_Load10bitInputData(start_dac); - _delay((unsigned long)((10)*(8000000/4000.0))); - for(uint16_t i = start_dac; i start_dac+10)){ + break; + } + } + + + DAC5_Load10bitInputData(best_dac_val); + _delay((unsigned long)((50)*(8000000/4000.0))); + + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + best_val = 262144; + start_dac = best_dac_val - 15; + end_dac = best_dac_val + 15; + DAC5_Load10bitInputData(start_dac); + _delay((unsigned long)((100)*(8000000/4000.0))); + for(uint16_t i = start_dac; i start_dac; i--){ + + DAC5_Load10bitInputData(i); + stage_val = average_adc_reading(STAGE2_MON); + _delay((unsigned long)((3)*(8000000/4000.0))); + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; + if (labs(diff_value)<= labs(best_val)){ + best_val = diff_value; + best_dac_val = i; + } + } + + + best_dac_val = (best_dac_val + best_dac_val_l)>>1; DAC5_Load10bitInputData(best_dac_val); - LATBbits.LATB4 = old_gain; LATAbits.LATA7 = old_bw; + LATBbits.LATB4 = old_gain; } void init_sensor(void){ + uint32_t gnd_ref_val; + uint32_t stage_val; + int32_t diff_value; - _delay((unsigned long)((10)*(8000000/4000.0))); + _delay((unsigned long)((5)*(8000000/4000.0))); zero_stage_1(); - _delay((unsigned long)((10)*(8000000/4000.0))); - zero_stage_2(); + if(LATBbits.LATB4 == 0){ + _delay((unsigned long)((50)*(8000000/4000.0))); + zero_stage_2(); + } + + stage_val = average_adc_reading(STAGE2_MON); + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + diff_value = (int32_t) gnd_ref_val - (int32_t) stage_val ; + if ( labs(diff_value) > ((1<<8)*20) ){ + set_led(0x4); + _delay((unsigned long)((3000)*(8000000/4000.0))); + set_led(led_color_state); + } } void reset_sensor(){ do { LATAbits.LATA6 = 0; } while(0); - _delay((unsigned long)((50)*(8000000/4000.0))); + _delay((unsigned long)((40)*(8000000/4000.0))); do { LATAbits.LATA6 = 1; } while(0); - _delay((unsigned long)((50)*(8000000/4000.0))); + _delay((unsigned long)((40)*(8000000/4000.0))); do { LATAbits.LATA6 = 0; } while(0); - + _delay((unsigned long)((50)*(8000000/4000.0))); } void low_battery_loop(){ @@ -19912,8 +20041,8 @@ void main(void) SYSTEM_Initialize(); DAC7_SetOutput(16); - DAC3_SetOutput(24); - DAC4_SetOutput(8); + DAC3_SetOutput(25); + DAC4_SetOutput(7); DAC5_Load10bitInputData(512); @@ -19929,16 +20058,16 @@ void main(void) do { LATAbits.LATA6 = 1; } while(0); _delay((unsigned long)((9)*(8000000/4000.0))); } - } led_color_state = 0x2; mux_state = 0; SW2_ISR(); - _delay((unsigned long)((800)*(8000000/4000.0))); reset_sensor(); - init_sensor(); - + _delay((unsigned long)((100)*(8000000/4000.0))); + zero_stage_1(); + _delay((unsigned long)((50)*(8000000/4000.0))); + zero_stage_2(); PIR2bits.C2IF = 0; PIR2bits.C1IF = 0; @@ -19955,7 +20084,7 @@ void main(void) while (1) { _delay((unsigned long)((500)*(8000000/4000.0))); - if((average_adc_reading(channel_FVRBuffer1)>>3) > 460){ + if((average_adc_reading(channel_FVRBuffer1)>>8) > 460){ (INTCONbits.GIE = 0); (INTCONbits.PEIE = 0); low_battery_loop(); diff --git a/firmware/B1-firmware.X/build/default/production/main.p1 b/firmware/B1-firmware.X/build/default/production/main.p1 index 9723aa6..46a7a5e 100644 --- a/firmware/B1-firmware.X/build/default/production/main.p1 +++ b/firmware/B1-firmware.X/build/default/production/main.p1 @@ -1,18 +1,4 @@ Version 4.0 HI-TECH Software Intermediate Code -"713 /opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h -[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 713: struct { -[s S45 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ] -[n S45 . CCP2IF C3IF C4IF BCL1IF COG1IF C1IF C2IF OSFIF ] -"712 -[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 712: typedef union { -[u S44 `S45 1 ] -[n S44 . . ] -"724 -[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 724: extern volatile PIR2bits_t PIR2bits __attribute__((address(0x012))); -[v _PIR2bits `VS44 ~T0 @X0 0 e@18 ] -"72 main.c -[; ;main.c: 72: void set_led(uint8_t); -[v _set_led `(v ~T0 @X0 0 ef1`uc ] "2679 /opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h [; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2679: struct { [s S128 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ] @@ -35,12 +21,26 @@ Version 4.0 HI-TECH Software Intermediate Code "2752 [; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2752: extern volatile LATBbits_t LATBbits __attribute__((address(0x10D))); [v _LATBbits `VS129 ~T0 @X0 0 e@269 ] +"2803 +[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2803: struct { +[s S132 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ] +[n S132 . LATC0 LATC1 LATC2 LATC3 LATC4 LATC5 LATC6 LATC7 ] +"2802 +[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2802: typedef union { +[u S131 `S132 1 ] +[n S131 . . ] +"2814 +[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2814: extern volatile LATCbits_t LATCbits __attribute__((address(0x10E))); +[v _LATCbits `VS131 ~T0 @X0 0 e@270 ] +"75 main.c +[; ;main.c: 75: void set_led(uint8_t); +[v _set_led `(v ~T0 @X0 0 ef1`uc ] [v F11967 `(v ~T0 @X0 1 tf1`ul ] "92 /opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/pic.h [v __delay `JF11967 ~T0 @X0 0 e ] [p i __delay ] -"74 main.c -[; ;main.c: 74: void reset_sensor(void); +"77 main.c +[; ;main.c: 77: void reset_sensor(void); [v _reset_sensor `(v ~T0 @X0 0 ef ] "559 /opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h [; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 559: struct { @@ -53,33 +53,33 @@ Version 4.0 HI-TECH Software Intermediate Code "570 [; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 570: extern volatile PORTCbits_t PORTCbits __attribute__((address(0x00E))); [v _PORTCbits `VS37 ~T0 @X0 0 e@14 ] -"73 main.c -[; ;main.c: 73: void init_sensor(void); +"76 main.c +[; ;main.c: 76: void init_sensor(void); [v _init_sensor `(v ~T0 @X0 0 ef ] -"146 -[; ;main.c: 146: uint16_t average_adc_reading(adc_channel_t read_ch){ +"713 /opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h +[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 713: struct { +[s S45 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ] +[n S45 . CCP2IF C3IF C4IF BCL1IF COG1IF C1IF C2IF OSFIF ] +"712 +[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 712: typedef union { +[u S44 `S45 1 ] +[n S44 . . ] +"724 +[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 724: extern volatile PIR2bits_t PIR2bits __attribute__((address(0x012))); +[v _PIR2bits `VS44 ~T0 @X0 0 e@18 ] +"140 main.c +[; ;main.c: 140: uint32_t average_adc_reading(adc_channel_t read_ch){ [c E12086 0 13 14 15 33 42 50 55 57 58 59 60 61 62 63 .. ] [n E12086 . GNDREF_SENSE VIN_SENSE STAGE2_MON STAGE1_MON channel_Switched_AN1 channel_Switched_AN10 channel_Switched_AN18 channel_DAC7_Output channel_DAC5_Output channel_DAC4_Output channel_DAC3_Output channel_DAC2_Output channel_Temp channel_DAC1_Output channel_FVRBuffer1 ] "299 ./mcc_generated_files/adc.h [; ;./mcc_generated_files/adc.h: 299: adc_result_t ADC_GetConversion(adc_channel_t channel); [v _ADC_GetConversion `(us ~T0 @X0 0 ef1`E12086 ] -"2803 /opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h -[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2803: struct { -[s S132 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ] -[n S132 . LATC0 LATC1 LATC2 LATC3 LATC4 LATC5 LATC6 LATC7 ] -"2802 -[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2802: typedef union { -[u S131 `S132 1 ] -[n S131 . . ] -"2814 -[; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 2814: extern volatile LATCbits_t LATCbits __attribute__((address(0x10E))); -[v _LATCbits `VS131 ~T0 @X0 0 e@270 ] "156 ./mcc_generated_files/dac1.h [; ;./mcc_generated_files/dac1.h: 156: void DAC1_Load10bitInputData(uint16_t input10BitData); [v _DAC1_Load10bitInputData `(v ~T0 @X0 0 ef1`us ] -"51 /opt/microchip/xc8/v2.31/pic/include/c99/stdlib.h -[; ;/opt/microchip/xc8/v2.31/pic/include/c99/stdlib.h: 51: int abs (int); -[v _abs `(i ~T0 @X0 0 ef1`i ] +"52 /opt/microchip/xc8/v2.31/pic/include/c99/stdlib.h +[; ;/opt/microchip/xc8/v2.31/pic/include/c99/stdlib.h: 52: long labs (long); +[v _labs `(l ~T0 @X0 0 ef1`l ] "156 ./mcc_generated_files/dac5.h [; ;./mcc_generated_files/dac5.h: 156: void DAC5_Load10bitInputData(uint16_t input10BitData); [v _DAC5_Load10bitInputData `(v ~T0 @X0 0 ef1`us ] @@ -1816,815 +1816,1193 @@ Version 4.0 HI-TECH Software Intermediate Code "37745 [; ;/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63/xc8/pic/include/proc/pic16f1776.h: 37745: __asm("TOSH equ 0FEFh"); [; <" TOSH equ 0FEFh ;# "> -"67 main.c -[; ;main.c: 67: uint8_t mux_state = 0; +"70 main.c +[; ;main.c: 70: uint8_t mux_state = 0; [v _mux_state `uc ~T0 @X0 1 e ] [i _mux_state -> -> 0 `i `uc ] -"68 -[; ;main.c: 68: uint8_t led_color_state = 0x0; +"71 +[; ;main.c: 71: uint8_t led_color_state = 0x0; [v _led_color_state `uc ~T0 @X0 1 e ] [i _led_color_state -> -> 0 `i `uc ] -"76 -[; ;main.c: 76: void my_CMP2_ISR(void){ -[v _my_CMP2_ISR `(v ~T0 @X0 1 ef ] -{ -[e :U _my_CMP2_ISR ] -[f ] -"78 -[; ;main.c: 78: PIR2bits.C2IF = 0; -[e = . . _PIR2bits 0 6 -> -> 0 `i `uc ] -"79 -[; ;main.c: 79: set_led(0x4); -[e ( _set_led (1 -> -> 4 `i `uc ] -"81 -[; ;main.c: 81: } -[e :UE 1732 ] -} -"83 -[; ;main.c: 83: void my_CMP1_ISR(void){ -[v _my_CMP1_ISR `(v ~T0 @X0 1 ef ] -{ -[e :U _my_CMP1_ISR ] -[f ] -"85 -[; ;main.c: 85: PIR2bits.C1IF = 0; -[e = . . _PIR2bits 0 5 -> -> 0 `i `uc ] -"86 -[; ;main.c: 86: set_led(0x4); -[e ( _set_led (1 -> -> 4 `i `uc ] -"87 -[; ;main.c: 87: } -[e :UE 1733 ] -} -"90 -[; ;main.c: 90: void SW2_ISR(void){ +"80 +[; ;main.c: 80: void SW2_ISR(void){ [v _SW2_ISR `(v ~T0 @X0 1 ef ] { [e :U _SW2_ISR ] [f ] -"92 -[; ;main.c: 92: switch(mux_state){ -[e $U 1736 ] +"82 +[; ;main.c: 82: switch(mux_state){ +[e $U 1734 ] { -"93 -[; ;main.c: 93: case 0: -[e :U 1737 ] -"94 -[; ;main.c: 94: led_color_state = 0x2; +"83 +[; ;main.c: 83: case 0: +[e :U 1735 ] +"84 +[; ;main.c: 84: led_color_state = 0x2; [e = _led_color_state -> -> 2 `i `uc ] -"95 -[; ;main.c: 95: LATAbits.LATA7 = 1; +"85 +[; ;main.c: 85: LATAbits.LATA7 = 1; [e = . . _LATAbits 0 7 -> -> 1 `i `uc ] -"96 -[; ;main.c: 96: LATBbits.LATB4 = 1; +"86 +[; ;main.c: 86: LATBbits.LATB4 = 1; [e = . . _LATBbits 0 4 -> -> 1 `i `uc ] -"97 -[; ;main.c: 97: break; -[e $U 1735 ] -"99 -[; ;main.c: 99: case 1: -[e :U 1738 ] -"100 -[; ;main.c: 100: led_color_state = (0x4 | 0x2); +"87 +[; ;main.c: 87: break; +[e $U 1733 ] +"89 +[; ;main.c: 89: case 1: +[e :U 1736 ] +"90 +[; ;main.c: 90: led_color_state = (0x4 | 0x2); [e = _led_color_state -> | -> 4 `i -> 2 `i `uc ] -"101 -[; ;main.c: 101: LATAbits.LATA7 = 0; +"91 +[; ;main.c: 91: LATAbits.LATA7 = 0; [e = . . _LATAbits 0 7 -> -> 0 `i `uc ] -"102 -[; ;main.c: 102: LATBbits.LATB4 = 1; +"92 +[; ;main.c: 92: LATBbits.LATB4 = 1; [e = . . _LATBbits 0 4 -> -> 1 `i `uc ] -"103 -[; ;main.c: 103: break; -[e $U 1735 ] -"105 -[; ;main.c: 105: case 2: -[e :U 1739 ] -"106 -[; ;main.c: 106: led_color_state = 0x1; +"93 +[; ;main.c: 93: break; +[e $U 1733 ] +"95 +[; ;main.c: 95: case 2: +[e :U 1737 ] +"96 +[; ;main.c: 96: led_color_state = 0x1; [e = _led_color_state -> -> 1 `i `uc ] -"107 -[; ;main.c: 107: LATAbits.LATA7 = 1; +"97 +[; ;main.c: 97: LATAbits.LATA7 = 1; [e = . . _LATAbits 0 7 -> -> 1 `i `uc ] -"108 -[; ;main.c: 108: LATBbits.LATB4 = 0; +"98 +[; ;main.c: 98: LATBbits.LATB4 = 0; [e = . . _LATBbits 0 4 -> -> 0 `i `uc ] +"99 +[; ;main.c: 99: break; +[e $U 1733 ] +"101 +[; ;main.c: 101: case 3: +[e :U 1738 ] +"102 +[; ;main.c: 102: led_color_state = (0x1 | 0x2); +[e = _led_color_state -> | -> 1 `i -> 2 `i `uc ] +"103 +[; ;main.c: 103: LATAbits.LATA7 = 0; +[e = . . _LATAbits 0 7 -> -> 0 `i `uc ] +"104 +[; ;main.c: 104: LATBbits.LATB4 = 0; +[e = . . _LATBbits 0 4 -> -> 0 `i `uc ] +"105 +[; ;main.c: 105: break; +[e $U 1733 ] +"106 +[; ;main.c: 106: } +} +[e $U 1733 ] +[e :U 1734 ] +[e [\ -> _mux_state `i , $ -> 0 `i 1735 + , $ -> 1 `i 1736 + , $ -> 2 `i 1737 + , $ -> 3 `i 1738 + 1733 ] +[e :U 1733 ] +"107 +[; ;main.c: 107: if(~LATCbits.LATC6 && LATCbits.LATC5 && LATCbits.LATC4){ +[e $ ! && && != ~ -> . . _LATCbits 0 6 `i -> 0 `i != -> . . _LATCbits 0 5 `i -> 0 `i != -> . . _LATCbits 0 4 `i -> 0 `i 1739 ] +{ "109 -[; ;main.c: 109: break; -[e $U 1735 ] +[; ;main.c: 109: } else{ +} +[e $U 1740 ] +[e :U 1739 ] +{ +"110 +[; ;main.c: 110: set_led(led_color_state); +[e ( _set_led (1 _led_color_state ] "111 -[; ;main.c: 111: case 3: +[; ;main.c: 111: } +} [e :U 1740 ] "112 -[; ;main.c: 112: led_color_state = (0x1 | 0x2); -[e = _led_color_state -> | -> 1 `i -> 2 `i `uc ] -"113 -[; ;main.c: 113: LATAbits.LATA7 = 0; -[e = . . _LATAbits 0 7 -> -> 0 `i `uc ] -"114 -[; ;main.c: 114: LATBbits.LATB4 = 0; -[e = . . _LATBbits 0 4 -> -> 0 `i `uc ] -"115 -[; ;main.c: 115: break; -[e $U 1735 ] -"116 -[; ;main.c: 116: } -} -[e $U 1735 ] -[e :U 1736 ] -[e [\ -> _mux_state `i , $ -> 0 `i 1737 - , $ -> 1 `i 1738 - , $ -> 2 `i 1739 - , $ -> 3 `i 1740 - 1735 ] -[e :U 1735 ] -"117 -[; ;main.c: 117: set_led(led_color_state); -[e ( _set_led (1 _led_color_state ] -"118 -[; ;main.c: 118: mux_state = (mux_state+1)%4; +[; ;main.c: 112: mux_state = (mux_state+1)%4; [e = _mux_state -> % + -> _mux_state `i -> 1 `i -> 4 `i `uc ] -"119 -[; ;main.c: 119: _delay((unsigned long)((200)*(8000000/4000.0))); +"113 +[; ;main.c: 113: _delay((unsigned long)((200)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 200 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"120 -[; ;main.c: 120: } -[e :UE 1734 ] +"114 +[; ;main.c: 114: } +[e :UE 1732 ] } -"123 -[; ;main.c: 123: void SW1_ISR(void){ +"117 +[; ;main.c: 117: void SW1_ISR(void){ [v _SW1_ISR `(v ~T0 @X0 1 ef ] { [e :U _SW1_ISR ] [f ] -"126 -[; ;main.c: 126: set_led(0x0); +"120 +[; ;main.c: 120: set_led(0x0); [e ( _set_led (1 -> -> 0 `i `uc ] -"127 -[; ;main.c: 127: _delay((unsigned long)((200)*(8000000/4000.0))); +"121 +[; ;main.c: 121: _delay((unsigned long)((200)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 200 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"128 -[; ;main.c: 128: set_led(led_color_state); +"122 +[; ;main.c: 122: set_led(led_color_state); [e ( _set_led (1 _led_color_state ] -"129 -[; ;main.c: 129: reset_sensor(); +"123 +[; ;main.c: 123: reset_sensor(); [e ( _reset_sensor .. ] -"130 -[; ;main.c: 130: _delay((unsigned long)((200)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 200 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"131 -[; ;main.c: 131: if(PORTCbits.RC7 == 0){ +"124 +[; ;main.c: 124: _delay((unsigned long)((400)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 400 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"125 +[; ;main.c: 125: if(PORTCbits.RC7 == 0){ [e $ ! == -> . . _PORTCbits 0 7 `i -> 0 `i 1742 ] { -"133 -[; ;main.c: 133: init_sensor(); +"127 +[; ;main.c: 127: init_sensor(); [e ( _init_sensor .. ] -"134 -[; ;main.c: 134: } +"128 +[; ;main.c: 128: } } [e :U 1742 ] -"137 -[; ;main.c: 137: set_led(0x0); +"131 +[; ;main.c: 131: set_led(0x0); [e ( _set_led (1 -> -> 0 `i `uc ] -"138 -[; ;main.c: 138: _delay((unsigned long)((200)*(8000000/4000.0))); +"132 +[; ;main.c: 132: _delay((unsigned long)((200)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 200 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"139 -[; ;main.c: 139: set_led(led_color_state); +"133 +[; ;main.c: 133: set_led(led_color_state); [e ( _set_led (1 _led_color_state ] -"142 -[; ;main.c: 142: PIR2bits.C2IF = 0; +"136 +[; ;main.c: 136: PIR2bits.C2IF = 0; [e = . . _PIR2bits 0 6 -> -> 0 `i `uc ] -"143 -[; ;main.c: 143: PIR2bits.C1IF = 0; +"137 +[; ;main.c: 137: PIR2bits.C1IF = 0; [e = . . _PIR2bits 0 5 -> -> 0 `i `uc ] -"144 -[; ;main.c: 144: } +"138 +[; ;main.c: 138: } [e :UE 1741 ] } -"146 -[; ;main.c: 146: uint16_t average_adc_reading(adc_channel_t read_ch){ -[v _average_adc_reading `(us ~T0 @X0 1 ef1`E12086 ] +"140 +[; ;main.c: 140: uint32_t average_adc_reading(adc_channel_t read_ch){ +[v _average_adc_reading `(ul ~T0 @X0 1 ef1`E12086 ] { [e :U _average_adc_reading ] [v _read_ch `E12086 ~T0 @X0 1 r1 ] [f ] -"148 -[; ;main.c: 148: uint16_t averaged_val = 0; -[v _averaged_val `us ~T0 @X0 1 a ] -[e = _averaged_val -> -> 0 `i `us ] -"149 -[; ;main.c: 149: for (int i = 0; i<8; i++){ +"142 +[; ;main.c: 142: uint32_t averaged_val = 0; +[v _averaged_val `ul ~T0 @X0 1 a ] +[e = _averaged_val -> -> -> 0 `i `l `ul ] +"144 +[; ;main.c: 144: averaged_val = ADC_GetConversion(read_ch); +[e = _averaged_val -> ( _ADC_GetConversion (1 _read_ch `ul ] +"145 +[; ;main.c: 145: averaged_val = 0; +[e = _averaged_val -> -> -> 0 `i `l `ul ] +"146 +[; ;main.c: 146: for (int i = 0; i<(1<<8); i++){ { [v _i `i ~T0 @X0 1 a ] [e = _i -> 0 `i ] -[e $ < _i -> 8 `i 1744 ] +[e $ < _i << -> 1 `i -> 8 `i 1744 ] [e $U 1745 ] [e :U 1744 ] { -"150 -[; ;main.c: 150: averaged_val = averaged_val + ADC_GetConversion(read_ch); -[e = _averaged_val -> + -> _averaged_val `ui -> ( _ADC_GetConversion (1 _read_ch `ui `us ] -"151 -[; ;main.c: 151: } +"147 +[; ;main.c: 147: averaged_val = averaged_val + ADC_GetConversion(read_ch); +[e = _averaged_val + _averaged_val -> ( _ADC_GetConversion (1 _read_ch `ul ] +"148 +[; ;main.c: 148: } } [e ++ _i -> 1 `i ] -[e $ < _i -> 8 `i 1744 ] +[e $ < _i << -> 1 `i -> 8 `i 1744 ] [e :U 1745 ] } -"153 -[; ;main.c: 153: averaged_val = averaged_val; -[e = _averaged_val _averaged_val ] -"155 -[; ;main.c: 155: return averaged_val; +"150 +[; ;main.c: 150: return averaged_val; [e ) _averaged_val ] [e $UE 1743 ] -"156 -[; ;main.c: 156: } +"151 +[; ;main.c: 151: } [e :UE 1743 ] } +"153 +[; ;main.c: 153: uint32_t average_adc_reading_quick(adc_channel_t read_ch){ +[v _average_adc_reading_quick `(ul ~T0 @X0 1 ef1`E12086 ] +{ +[e :U _average_adc_reading_quick ] +[v _read_ch `E12086 ~T0 @X0 1 r1 ] +[f ] +"155 +[; ;main.c: 155: uint32_t averaged_val = 0; +[v _averaged_val `ul ~T0 @X0 1 a ] +[e = _averaged_val -> -> -> 0 `i `l `ul ] +"157 +[; ;main.c: 157: averaged_val = ADC_GetConversion(read_ch); +[e = _averaged_val -> ( _ADC_GetConversion (1 _read_ch `ul ] "158 -[; ;main.c: 158: void set_led(uint8_t led_color) { +[; ;main.c: 158: averaged_val = 0; +[e = _averaged_val -> -> -> 0 `i `l `ul ] +"160 +[; ;main.c: 160: for (int i = 0; i<(1<<(8 -4)); i++){ +{ +[v _i `i ~T0 @X0 1 a ] +[e = _i -> 0 `i ] +[e $ < _i << -> 1 `i - -> 8 `i -> 4 `i 1748 ] +[e $U 1749 ] +[e :U 1748 ] +{ +"161 +[; ;main.c: 161: averaged_val = averaged_val + ADC_GetConversion(read_ch); +[e = _averaged_val + _averaged_val -> ( _ADC_GetConversion (1 _read_ch `ul ] +"162 +[; ;main.c: 162: } +} +[e ++ _i -> 1 `i ] +[e $ < _i << -> 1 `i - -> 8 `i -> 4 `i 1748 ] +[e :U 1749 ] +} +"164 +[; ;main.c: 164: return (averaged_val<<4); +[e ) << _averaged_val -> 4 `i ] +[e $UE 1747 ] +"165 +[; ;main.c: 165: } +[e :UE 1747 ] +} +"168 +[; ;main.c: 168: void set_led(uint8_t led_color) { [v _set_led `(v ~T0 @X0 1 ef1`uc ] { [e :U _set_led ] [v _led_color `uc ~T0 @X0 1 r1 ] [f ] -"160 -[; ;main.c: 160: LATCbits.LATC6 = (~led_color>>2)&1; +"170 +[; ;main.c: 170: LATCbits.LATC6 = (~led_color>>2)&1; [e = . . _LATCbits 0 6 -> & >> ~ -> _led_color `i -> 2 `i -> 1 `i `uc ] -"161 -[; ;main.c: 161: LATCbits.LATC5 = (~led_color>>1)&1; +"171 +[; ;main.c: 171: LATCbits.LATC5 = (~led_color>>1)&1; [e = . . _LATCbits 0 5 -> & >> ~ -> _led_color `i -> 1 `i -> 1 `i `uc ] -"162 -[; ;main.c: 162: LATCbits.LATC4 = (~led_color)&1; +"172 +[; ;main.c: 172: LATCbits.LATC4 = (~led_color)&1; [e = . . _LATCbits 0 4 -> & ~ -> _led_color `i -> 1 `i `uc ] -"164 -[; ;main.c: 164: } -[e :UE 1747 ] +"174 +[; ;main.c: 174: } +[e :UE 1751 ] } -"165 -[; ;main.c: 165: void zero_stage_1(void){ +"176 +[; ;main.c: 176: void zero_stage_1(void){ [v _zero_stage_1 `(v ~T0 @X0 1 ef ] { [e :U _zero_stage_1 ] [f ] -"166 -[; ;main.c: 166: uint16_t gnd_ref_val; -[v _gnd_ref_val `us ~T0 @X0 1 a ] -"167 -[; ;main.c: 167: uint16_t best_dac_val = 0; +"177 +[; ;main.c: 177: uint32_t gnd_ref_val; +[v _gnd_ref_val `ul ~T0 @X0 1 a ] +"178 +[; ;main.c: 178: uint16_t best_dac_val = 0; [v _best_dac_val `us ~T0 @X0 1 a ] [e = _best_dac_val -> -> 0 `i `us ] -"168 -[; ;main.c: 168: uint16_t stage_val; -[v _stage_val `us ~T0 @X0 1 a ] -"169 -[; ;main.c: 169: int16_t best_val = (1<<12); -[v _best_val `s ~T0 @X0 1 a ] -[e = _best_val -> << -> 1 `i -> 12 `i `s ] -"170 -[; ;main.c: 170: int16_t diff_value; -[v _diff_value `s ~T0 @X0 1 a ] -"172 -[; ;main.c: 172: uint16_t start_dac; -[v _start_dac `us ~T0 @X0 1 a ] -"173 -[; ;main.c: 173: uint16_t end_dac; -[v _end_dac `us ~T0 @X0 1 a ] -"175 -[; ;main.c: 175: uint16_t old_bw = LATAbits.LATA7; -[v _old_bw `us ~T0 @X0 1 a ] -[e = _old_bw -> . . _LATAbits 0 7 `us ] -"177 -[; ;main.c: 177: gnd_ref_val = average_adc_reading(GNDREF_SENSE); -[e = _gnd_ref_val ( _average_adc_reading (1 . `E12086 0 ] +"179 +[; ;main.c: 179: uint16_t best_dac_val_l; +[v _best_dac_val_l `us ~T0 @X0 1 a ] "180 -[; ;main.c: 180: LATAbits.LATA7 = 0; -[e = . . _LATAbits 0 7 -> -> 0 `i `uc ] +[; ;main.c: 180: uint32_t stage_val; +[v _stage_val `ul ~T0 @X0 1 a ] +"181 +[; ;main.c: 181: int32_t best_val = 262144; +[v _best_val `l ~T0 @X0 1 a ] +[e = _best_val -> 262144 `l ] "182 -[; ;main.c: 182: DAC1_Load10bitInputData(512); -[e ( _DAC1_Load10bitInputData (1 -> -> 512 `i `us ] -"183 -[; ;main.c: 183: _delay((unsigned long)((10)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 10 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +[; ;main.c: 182: int32_t diff_value; +[v _diff_value `l ~T0 @X0 1 a ] "184 -[; ;main.c: 184: stage_val = average_adc_reading(STAGE1_MON); -[e = _stage_val ( _average_adc_reading (1 . `E12086 3 ] +[; ;main.c: 184: uint16_t start_dac; +[v _start_dac `us ~T0 @X0 1 a ] "185 -[; ;main.c: 185: diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; -[e = _diff_value -> - -> -> _stage_val `s `i -> -> _gnd_ref_val `s `i `s ] +[; ;main.c: 185: uint16_t end_dac; +[v _end_dac `us ~T0 @X0 1 a ] "187 -[; ;main.c: 187: if(diff_value > 100){ -[e $ ! > -> _diff_value `i -> 100 `i 1749 ] -{ +[; ;main.c: 187: uint8_t old_bw = LATAbits.LATA7; +[v _old_bw `uc ~T0 @X0 1 a ] +[e = _old_bw . . _LATAbits 0 7 ] "188 -[; ;main.c: 188: start_dac = 0; -[e = _start_dac -> -> 0 `i `us ] -"189 -[; ;main.c: 189: end_dac = 512; -[e = _end_dac -> -> 512 `i `us ] -"190 -[; ;main.c: 190: } -} -[e $U 1750 ] +[; ;main.c: 188: uint8_t old_gain = LATBbits.LATB4; +[v _old_gain `uc ~T0 @X0 1 a ] +[e = _old_gain . . _LATBbits 0 4 ] "191 -[; ;main.c: 191: else if (diff_value < -100 ){ -[e :U 1749 ] -[e $ ! < -> _diff_value `i -U -> 100 `i 1751 ] -{ -"192 -[; ;main.c: 192: start_dac = 512; -[e = _start_dac -> -> 512 `i `us ] +[; ;main.c: 191: LATBbits.LATB4 = 1; +[e = . . _LATBbits 0 4 -> -> 1 `i `uc ] "193 -[; ;main.c: 193: end_dac = 1024; -[e = _end_dac -> -> 1024 `i `us ] -"194 -[; ;main.c: 194: } -} -[e $U 1752 ] -"195 -[; ;main.c: 195: else{ -[e :U 1751 ] -{ -"196 -[; ;main.c: 196: start_dac = 255; -[e = _start_dac -> -> 255 `i `us ] +[; ;main.c: 193: LATAbits.LATA7 = 0; +[e = . . _LATAbits 0 7 -> -> 0 `i `uc ] "197 -[; ;main.c: 197: end_dac = 768; -[e = _end_dac -> -> 768 `i `us ] +[; ;main.c: 197: DAC1_Load10bitInputData(512); +[e ( _DAC1_Load10bitInputData (1 -> -> 512 `i `us ] "198 -[; ;main.c: 198: } -} -[e :U 1752 ] -[e :U 1750 ] -"200 -[; ;main.c: 200: DAC1_Load10bitInputData(start_dac); -[e ( _DAC1_Load10bitInputData (1 _start_dac ] +[; ;main.c: 198: _delay((unsigned long)((20)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 20 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"199 +[; ;main.c: 199: gnd_ref_val = average_adc_reading(GNDREF_SENSE); +[e = _gnd_ref_val ( _average_adc_reading (1 . `E12086 0 ] "201 -[; ;main.c: 201: _delay((unsigned long)((10)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 10 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"203 -[; ;main.c: 203: for(uint16_t i = start_dac; i _stage_val `l -> _gnd_ref_val `l ] +"204 +[; ;main.c: 204: if(diff_value > ((1<<8)*50)){ +[e $ ! > _diff_value -> * << -> 1 `i -> 8 `i -> 50 `i `l 1753 ] +{ +"205 +[; ;main.c: 205: start_dac = 16; +[e = _start_dac -> -> 16 `i `us ] +"206 +[; ;main.c: 206: end_dac = 512; +[e = _end_dac -> -> 512 `i `us ] +"207 +[; ;main.c: 207: } +} +[e $U 1754 ] +"208 +[; ;main.c: 208: else if (diff_value < ((1<<8)*(-50)) ){ +[e :U 1753 ] +[e $ ! < _diff_value -> * << -> 1 `i -> 8 `i -U -> 50 `i `l 1755 ] +{ +"209 +[; ;main.c: 209: start_dac = 512; +[e = _start_dac -> -> 512 `i `us ] +"210 +[; ;main.c: 210: end_dac = 1007; +[e = _end_dac -> -> 1007 `i `us ] +"211 +[; ;main.c: 211: } +} +[e $U 1756 ] +"212 +[; ;main.c: 212: else{ +[e :U 1755 ] +{ +"213 +[; ;main.c: 213: start_dac = 255; +[e = _start_dac -> -> 255 `i `us ] +"214 +[; ;main.c: 214: end_dac = 768; +[e = _end_dac -> -> 768 `i `us ] +"215 +[; ;main.c: 215: } +} +[e :U 1756 ] +[e :U 1754 ] +"217 +[; ;main.c: 217: DAC1_Load10bitInputData(start_dac); +[e ( _DAC1_Load10bitInputData (1 _start_dac ] +"218 +[; ;main.c: 218: _delay((unsigned long)((20)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 20 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"220 +[; ;main.c: 220: stage_val = average_adc_reading(STAGE2_MON); +[e = _stage_val ( _average_adc_reading (1 . `E12086 2 ] +"221 +[; ;main.c: 221: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"223 +[; ;main.c: 223: for(uint16_t i = start_dac; i * -> -> 3 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"208 -[; ;main.c: 208: stage_val = average_adc_reading(STAGE1_MON); -[e = _stage_val ( _average_adc_reading (1 . `E12086 3 ] -"209 -[; ;main.c: 209: diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; -[e = _diff_value -> - -> -> _stage_val `s `i -> -> _gnd_ref_val `s `i `s ] -"210 -[; ;main.c: 210: if (abs(diff_value)< abs(best_val)){ -[e $ ! < ( _abs (1 -> _diff_value `i ( _abs (1 -> _best_val `i 1757 ] -{ -"211 -[; ;main.c: 211: best_val = diff_value; -[e = _best_val _diff_value ] -"212 -[; ;main.c: 212: best_dac_val = i; -[e = _best_dac_val _i ] -"213 -[; ;main.c: 213: } -} +[e $U 1760 ] [e :U 1757 ] -"214 -[; ;main.c: 214: } +{ +"225 +[; ;main.c: 225: DAC1_Load10bitInputData(i); +[e ( _DAC1_Load10bitInputData (1 _i ] +"226 +[; ;main.c: 226: if(i%10==0){ +[e $ ! == % -> _i `ui -> -> 10 `i `ui -> -> 0 `i `ui 1761 ] +{ +"227 +[; ;main.c: 227: gnd_ref_val = average_adc_reading_quick(GNDREF_SENSE); +[e = _gnd_ref_val ( _average_adc_reading_quick (1 . `E12086 0 ] +"228 +[; ;main.c: 228: } +} +[e :U 1761 ] +"229 +[; ;main.c: 229: stage_val = average_adc_reading_quick(STAGE2_MON); +[e = _stage_val ( _average_adc_reading_quick (1 . `E12086 2 ] +"230 +[; ;main.c: 230: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"231 +[; ;main.c: 231: if (labs(diff_value)<= labs(best_val)){ +[e $ ! <= ( _labs (1 _diff_value ( _labs (1 _best_val 1762 ] +{ +"232 +[; ;main.c: 232: best_val = diff_value; +[e = _best_val _diff_value ] +"233 +[; ;main.c: 233: best_dac_val = i; +[e = _best_dac_val _i ] +"234 +[; ;main.c: 234: } +} +[e :U 1762 ] +"237 +[; ;main.c: 237: if((diff_value > (1<<8)*5) && (i > start_dac+10) ){ +[e $ ! && > _diff_value -> * << -> 1 `i -> 8 `i -> 5 `i `l > -> _i `ui + -> _start_dac `ui -> -> 10 `i `ui 1763 ] +{ +"238 +[; ;main.c: 238: break; +[e $U 1758 ] +"239 +[; ;main.c: 239: } +} +[e :U 1763 ] +"240 +[; ;main.c: 240: } } [e ++ _i -> -> 1 `i `us ] -[e :U 1756 ] -[e $ < -> _i `ui -> _end_dac `ui 1753 ] -[e :U 1754 ] +[e :U 1760 ] +[e $ < -> _i `ui -> _end_dac `ui 1757 ] +[e :U 1758 ] } -"215 -[; ;main.c: 215: DAC1_Load10bitInputData(best_dac_val); +"242 +[; ;main.c: 242: DAC1_Load10bitInputData(best_dac_val); [e ( _DAC1_Load10bitInputData (1 _best_dac_val ] -"216 -[; ;main.c: 216: LATAbits.LATA7 = old_bw; -[e = . . _LATAbits 0 7 -> _old_bw `uc ] -"217 -[; ;main.c: 217: } -[e :UE 1748 ] +"243 +[; ;main.c: 243: _delay((unsigned long)((50)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"245 +[; ;main.c: 245: gnd_ref_val = average_adc_reading(GNDREF_SENSE); +[e = _gnd_ref_val ( _average_adc_reading (1 . `E12086 0 ] +"246 +[; ;main.c: 246: best_val = 262144; +[e = _best_val -> 262144 `l ] +"247 +[; ;main.c: 247: start_dac = best_dac_val - 15; +[e = _start_dac -> - -> _best_dac_val `ui -> -> 15 `i `ui `us ] +"248 +[; ;main.c: 248: end_dac = best_dac_val + 15; +[e = _end_dac -> + -> _best_dac_val `ui -> -> 15 `i `ui `us ] +"249 +[; ;main.c: 249: DAC1_Load10bitInputData(start_dac); +[e ( _DAC1_Load10bitInputData (1 _start_dac ] +"250 +[; ;main.c: 250: _delay((unsigned long)((100)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 100 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"251 +[; ;main.c: 251: for(uint16_t i = start_dac; i * -> -> 2 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"256 +[; ;main.c: 256: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"257 +[; ;main.c: 257: if (labs(diff_value)<= labs(best_val)){ +[e $ ! <= ( _labs (1 _diff_value ( _labs (1 _best_val 1768 ] +{ +"258 +[; ;main.c: 258: best_val = diff_value; +[e = _best_val _diff_value ] +"259 +[; ;main.c: 259: best_dac_val = i; +[e = _best_dac_val _i ] +"260 +[; ;main.c: 260: } } -"219 -[; ;main.c: 219: void zero_stage_2(void){ +[e :U 1768 ] +"261 +[; ;main.c: 261: } +} +[e ++ _i -> -> 1 `i `us ] +[e :U 1767 ] +[e $ < -> _i `ui -> _end_dac `ui 1764 ] +[e :U 1765 ] +} +"264 +[; ;main.c: 264: best_dac_val_l = best_dac_val; +[e = _best_dac_val_l _best_dac_val ] +"265 +[; ;main.c: 265: best_val = 262144; +[e = _best_val -> 262144 `l ] +"267 +[; ;main.c: 267: for(uint16_t i = end_dac; i> start_dac; i--){ +{ +[v _i `us ~T0 @X0 1 a ] +[e = _i _end_dac ] +[e $U 1772 ] +[e :U 1769 ] +{ +"269 +[; ;main.c: 269: DAC1_Load10bitInputData(i); +[e ( _DAC1_Load10bitInputData (1 _i ] +"270 +[; ;main.c: 270: stage_val = average_adc_reading(STAGE2_MON); +[e = _stage_val ( _average_adc_reading (1 . `E12086 2 ] +"271 +[; ;main.c: 271: _delay((unsigned long)((2)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 2 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"272 +[; ;main.c: 272: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"273 +[; ;main.c: 273: if (labs(diff_value)<= labs(best_val)){ +[e $ ! <= ( _labs (1 _diff_value ( _labs (1 _best_val 1773 ] +{ +"274 +[; ;main.c: 274: best_val = diff_value; +[e = _best_val _diff_value ] +"275 +[; ;main.c: 275: best_dac_val = i; +[e = _best_dac_val _i ] +"276 +[; ;main.c: 276: } +} +[e :U 1773 ] +"277 +[; ;main.c: 277: } +} +[e -- _i -> -> 1 `i `us ] +[e :U 1772 ] +[e $ > -> _i `ui -> _start_dac `ui 1769 ] +[e :U 1770 ] +} +"280 +[; ;main.c: 280: best_dac_val = (best_dac_val + best_dac_val_l)>>1; +[e = _best_dac_val -> >> + -> _best_dac_val `ui -> _best_dac_val_l `ui -> 1 `i `us ] +"281 +[; ;main.c: 281: DAC1_Load10bitInputData(best_dac_val); +[e ( _DAC1_Load10bitInputData (1 _best_dac_val ] +"282 +[; ;main.c: 282: LATAbits.LATA7 = old_bw; +[e = . . _LATAbits 0 7 _old_bw ] +"283 +[; ;main.c: 283: LATBbits.LATB4 = old_gain; +[e = . . _LATBbits 0 4 _old_gain ] +"284 +[; ;main.c: 284: } +[e :UE 1752 ] +} +"288 +[; ;main.c: 288: void zero_stage_2(void){ [v _zero_stage_2 `(v ~T0 @X0 1 ef ] { [e :U _zero_stage_2 ] [f ] -"220 -[; ;main.c: 220: uint16_t gnd_ref_val; -[v _gnd_ref_val `us ~T0 @X0 1 a ] -"221 -[; ;main.c: 221: uint16_t best_dac_val = 0; +"289 +[; ;main.c: 289: uint32_t gnd_ref_val; +[v _gnd_ref_val `ul ~T0 @X0 1 a ] +"290 +[; ;main.c: 290: uint16_t best_dac_val = 0; [v _best_dac_val `us ~T0 @X0 1 a ] [e = _best_dac_val -> -> 0 `i `us ] -"222 -[; ;main.c: 222: uint16_t stage_val; -[v _stage_val `us ~T0 @X0 1 a ] -"224 -[; ;main.c: 224: uint16_t old_gain = LATBbits.LATB4; -[v _old_gain `us ~T0 @X0 1 a ] -[e = _old_gain -> . . _LATBbits 0 4 `us ] -"225 -[; ;main.c: 225: uint16_t old_bw = LATAbits.LATA7; -[v _old_bw `us ~T0 @X0 1 a ] -[e = _old_bw -> . . _LATAbits 0 7 `us ] -"227 -[; ;main.c: 227: int16_t best_val = (1<<12); -[v _best_val `s ~T0 @X0 1 a ] -[e = _best_val -> << -> 1 `i -> 12 `i `s ] -"228 -[; ;main.c: 228: int16_t diff_value; -[v _diff_value `s ~T0 @X0 1 a ] -"230 -[; ;main.c: 230: uint16_t start_dac; +"291 +[; ;main.c: 291: uint32_t stage_val; +[v _stage_val `ul ~T0 @X0 1 a ] +"292 +[; ;main.c: 292: uint16_t best_dac_val_l; +[v _best_dac_val_l `us ~T0 @X0 1 a ] +"294 +[; ;main.c: 294: uint8_t old_gain = LATBbits.LATB4; +[v _old_gain `uc ~T0 @X0 1 a ] +[e = _old_gain . . _LATBbits 0 4 ] +"295 +[; ;main.c: 295: uint8_t old_bw = LATAbits.LATA7; +[v _old_bw `uc ~T0 @X0 1 a ] +[e = _old_bw . . _LATAbits 0 7 ] +"297 +[; ;main.c: 297: int32_t best_val = 262144; +[v _best_val `l ~T0 @X0 1 a ] +[e = _best_val -> 262144 `l ] +"298 +[; ;main.c: 298: int32_t diff_value; +[v _diff_value `l ~T0 @X0 1 a ] +"300 +[; ;main.c: 300: uint16_t start_dac; [v _start_dac `us ~T0 @X0 1 a ] -"231 -[; ;main.c: 231: uint16_t end_dac; +"301 +[; ;main.c: 301: uint16_t end_dac; [v _end_dac `us ~T0 @X0 1 a ] -"234 -[; ;main.c: 234: LATBbits.LATB4 = 0; +"304 +[; ;main.c: 304: LATBbits.LATB4 = 0; [e = . . _LATBbits 0 4 -> -> 0 `i `uc ] -"236 -[; ;main.c: 236: LATAbits.LATA7 = 0; +"306 +[; ;main.c: 306: LATAbits.LATA7 = 0; [e = . . _LATAbits 0 7 -> -> 0 `i `uc ] -"237 -[; ;main.c: 237: _delay((unsigned long)((20)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 20 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"239 -[; ;main.c: 239: gnd_ref_val = average_adc_reading(GNDREF_SENSE); -[e = _gnd_ref_val ( _average_adc_reading (1 . `E12086 0 ] -"242 -[; ;main.c: 242: DAC5_Load10bitInputData(512); +"309 +[; ;main.c: 309: DAC5_Load10bitInputData(512); [e ( _DAC5_Load10bitInputData (1 -> -> 512 `i `us ] -"243 -[; ;main.c: 243: _delay((unsigned long)((5)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 5 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"244 -[; ;main.c: 244: stage_val = average_adc_reading(STAGE2_MON); +"310 +[; ;main.c: 310: _delay((unsigned long)((20)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 20 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"311 +[; ;main.c: 311: gnd_ref_val = average_adc_reading(GNDREF_SENSE); +[e = _gnd_ref_val ( _average_adc_reading (1 . `E12086 0 ] +"313 +[; ;main.c: 313: stage_val = average_adc_reading(STAGE2_MON); [e = _stage_val ( _average_adc_reading (1 . `E12086 2 ] -"245 -[; ;main.c: 245: diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; -[e = _diff_value -> - -> -> _stage_val `s `i -> -> _gnd_ref_val `s `i `s ] -"247 -[; ;main.c: 247: if(diff_value < -100){ -[e $ ! < -> _diff_value `i -U -> 100 `i 1759 ] +"314 +[; ;main.c: 314: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"316 +[; ;main.c: 316: if(diff_value < ((1<<8)*-8)){ +[e $ ! < _diff_value -> * << -> 1 `i -> 8 `i -U -> 8 `i `l 1775 ] { -"248 -[; ;main.c: 248: start_dac = 0; -[e = _start_dac -> -> 0 `i `us ] -"249 -[; ;main.c: 249: end_dac = 512; +"317 +[; ;main.c: 317: start_dac = 16; +[e = _start_dac -> -> 16 `i `us ] +"318 +[; ;main.c: 318: end_dac = 512; [e = _end_dac -> -> 512 `i `us ] -"250 -[; ;main.c: 250: } +"319 +[; ;main.c: 319: } } -[e $U 1760 ] -"251 -[; ;main.c: 251: else if (diff_value > 100 ){ -[e :U 1759 ] -[e $ ! > -> _diff_value `i -> 100 `i 1761 ] +[e $U 1776 ] +"320 +[; ;main.c: 320: else if (diff_value > ((1<<8)*8) ){ +[e :U 1775 ] +[e $ ! > _diff_value -> * << -> 1 `i -> 8 `i -> 8 `i `l 1777 ] { -"252 -[; ;main.c: 252: start_dac = 512; +"321 +[; ;main.c: 321: start_dac = 512; [e = _start_dac -> -> 512 `i `us ] -"253 -[; ;main.c: 253: end_dac = 1024; -[e = _end_dac -> -> 1024 `i `us ] -"254 -[; ;main.c: 254: } +"322 +[; ;main.c: 322: end_dac = 1007; +[e = _end_dac -> -> 1007 `i `us ] +"323 +[; ;main.c: 323: } } -[e $U 1762 ] -"255 -[; ;main.c: 255: else{ -[e :U 1761 ] +[e $U 1778 ] +"324 +[; ;main.c: 324: else{ +[e :U 1777 ] { -"256 -[; ;main.c: 256: start_dac = 255; +"325 +[; ;main.c: 325: start_dac = 255; [e = _start_dac -> -> 255 `i `us ] -"257 -[; ;main.c: 257: end_dac = 768; +"326 +[; ;main.c: 326: end_dac = 768; [e = _end_dac -> -> 768 `i `us ] -"258 -[; ;main.c: 258: } +"327 +[; ;main.c: 327: } } -[e :U 1762 ] -[e :U 1760 ] -"260 -[; ;main.c: 260: DAC5_Load10bitInputData(start_dac); +[e :U 1778 ] +[e :U 1776 ] +"330 +[; ;main.c: 330: DAC5_Load10bitInputData(start_dac); [e ( _DAC5_Load10bitInputData (1 _start_dac ] -"261 -[; ;main.c: 261: _delay((unsigned long)((10)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 10 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"263 -[; ;main.c: 263: for(uint16_t i = start_dac; i * -> -> 20 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"333 +[; ;main.c: 333: stage_val = average_adc_reading(STAGE2_MON); +[e = _stage_val ( _average_adc_reading (1 . `E12086 2 ] +"334 +[; ;main.c: 334: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"336 +[; ;main.c: 336: for(uint16_t i = start_dac; i * -> -> 2 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"268 -[; ;main.c: 268: stage_val = average_adc_reading(STAGE2_MON); -[e = _stage_val ( _average_adc_reading (1 . `E12086 2 ] -"270 -[; ;main.c: 270: diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; -[e = _diff_value -> - -> -> _stage_val `s `i -> -> _gnd_ref_val `s `i `s ] -"272 -[; ;main.c: 272: if (abs(diff_value)< abs(best_val)){ -[e $ ! < ( _abs (1 -> _diff_value `i ( _abs (1 -> _best_val `i 1767 ] +"339 +[; ;main.c: 339: if(i%10==0){ +[e $ ! == % -> _i `ui -> -> 10 `i `ui -> -> 0 `i `ui 1783 ] { -"273 -[; ;main.c: 273: best_val = diff_value; +"340 +[; ;main.c: 340: gnd_ref_val = average_adc_reading_quick(GNDREF_SENSE); +[e = _gnd_ref_val ( _average_adc_reading_quick (1 . `E12086 0 ] +"341 +[; ;main.c: 341: } +} +[e :U 1783 ] +"343 +[; ;main.c: 343: stage_val = average_adc_reading_quick(STAGE2_MON); +[e = _stage_val ( _average_adc_reading_quick (1 . `E12086 2 ] +"344 +[; ;main.c: 344: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"345 +[; ;main.c: 345: if (labs(diff_value)<= labs(best_val)){ +[e $ ! <= ( _labs (1 _diff_value ( _labs (1 _best_val 1784 ] +{ +"346 +[; ;main.c: 346: best_val = diff_value; [e = _best_val _diff_value ] -"274 -[; ;main.c: 274: best_dac_val = i; +"347 +[; ;main.c: 347: best_dac_val = i; [e = _best_dac_val _i ] -"275 -[; ;main.c: 275: } +"348 +[; ;main.c: 348: } } -[e :U 1767 ] -"276 -[; ;main.c: 276: } +[e :U 1784 ] +"351 +[; ;main.c: 351: if((diff_value < (1<<8)*(-4)) && (i > start_dac+10)){ +[e $ ! && < _diff_value -> * << -> 1 `i -> 8 `i -U -> 4 `i `l > -> _i `ui + -> _start_dac `ui -> -> 10 `i `ui 1785 ] +{ +"352 +[; ;main.c: 352: break; +[e $U 1780 ] +"353 +[; ;main.c: 353: } } -[e = _i -> + -> _i `ui -> -> 2 `i `ui `us ] -[e :U 1766 ] -[e $ < -> _i `ui -> _end_dac `ui 1763 ] -[e :U 1764 ] +[e :U 1785 ] +"354 +[; ;main.c: 354: } } -"278 -[; ;main.c: 278: DAC5_Load10bitInputData(best_dac_val); +[e ++ _i -> -> 1 `i `us ] +[e :U 1782 ] +[e $ < -> _i `ui -> _end_dac `ui 1779 ] +[e :U 1780 ] +} +"357 +[; ;main.c: 357: DAC5_Load10bitInputData(best_dac_val); [e ( _DAC5_Load10bitInputData (1 _best_dac_val ] -"279 -[; ;main.c: 279: LATBbits.LATB4 = old_gain; -[e = . . _LATBbits 0 4 -> _old_gain `uc ] -"280 -[; ;main.c: 280: LATAbits.LATA7 = old_bw; -[e = . . _LATAbits 0 7 -> _old_bw `uc ] -"281 -[; ;main.c: 281: } -[e :UE 1758 ] +"358 +[; ;main.c: 358: _delay((unsigned long)((50)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"360 +[; ;main.c: 360: gnd_ref_val = average_adc_reading(GNDREF_SENSE); +[e = _gnd_ref_val ( _average_adc_reading (1 . `E12086 0 ] +"361 +[; ;main.c: 361: best_val = 262144; +[e = _best_val -> 262144 `l ] +"362 +[; ;main.c: 362: start_dac = best_dac_val - 15; +[e = _start_dac -> - -> _best_dac_val `ui -> -> 15 `i `ui `us ] +"363 +[; ;main.c: 363: end_dac = best_dac_val + 15; +[e = _end_dac -> + -> _best_dac_val `ui -> -> 15 `i `ui `us ] +"364 +[; ;main.c: 364: DAC5_Load10bitInputData(start_dac); +[e ( _DAC5_Load10bitInputData (1 _start_dac ] +"365 +[; ;main.c: 365: _delay((unsigned long)((100)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 100 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"366 +[; ;main.c: 366: for(uint16_t i = start_dac; i * -> -> 3 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"371 +[; ;main.c: 371: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"372 +[; ;main.c: 372: if (labs(diff_value)<= labs(best_val)){ +[e $ ! <= ( _labs (1 _diff_value ( _labs (1 _best_val 1790 ] +{ +"373 +[; ;main.c: 373: best_val = diff_value; +[e = _best_val _diff_value ] +"374 +[; ;main.c: 374: best_dac_val = i; +[e = _best_dac_val _i ] +"375 +[; ;main.c: 375: } } -"283 -[; ;main.c: 283: void init_sensor(void){ +[e :U 1790 ] +"376 +[; ;main.c: 376: } +} +[e ++ _i -> -> 1 `i `us ] +[e :U 1789 ] +[e $ < -> _i `ui -> _end_dac `ui 1786 ] +[e :U 1787 ] +} +"379 +[; ;main.c: 379: best_dac_val_l = best_dac_val; +[e = _best_dac_val_l _best_dac_val ] +"380 +[; ;main.c: 380: best_val = 262144; +[e = _best_val -> 262144 `l ] +"382 +[; ;main.c: 382: for(uint16_t i = end_dac; i> start_dac; i--){ +{ +[v _i `us ~T0 @X0 1 a ] +[e = _i _end_dac ] +[e $U 1794 ] +[e :U 1791 ] +{ +"384 +[; ;main.c: 384: DAC5_Load10bitInputData(i); +[e ( _DAC5_Load10bitInputData (1 _i ] +"385 +[; ;main.c: 385: stage_val = average_adc_reading(STAGE2_MON); +[e = _stage_val ( _average_adc_reading (1 . `E12086 2 ] +"386 +[; ;main.c: 386: _delay((unsigned long)((3)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 3 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"387 +[; ;main.c: 387: diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; +[e = _diff_value - -> _stage_val `l -> _gnd_ref_val `l ] +"388 +[; ;main.c: 388: if (labs(diff_value)<= labs(best_val)){ +[e $ ! <= ( _labs (1 _diff_value ( _labs (1 _best_val 1795 ] +{ +"389 +[; ;main.c: 389: best_val = diff_value; +[e = _best_val _diff_value ] +"390 +[; ;main.c: 390: best_dac_val = i; +[e = _best_dac_val _i ] +"391 +[; ;main.c: 391: } +} +[e :U 1795 ] +"392 +[; ;main.c: 392: } +} +[e -- _i -> -> 1 `i `us ] +[e :U 1794 ] +[e $ > -> _i `ui -> _start_dac `ui 1791 ] +[e :U 1792 ] +} +"395 +[; ;main.c: 395: best_dac_val = (best_dac_val + best_dac_val_l)>>1; +[e = _best_dac_val -> >> + -> _best_dac_val `ui -> _best_dac_val_l `ui -> 1 `i `us ] +"396 +[; ;main.c: 396: DAC5_Load10bitInputData(best_dac_val); +[e ( _DAC5_Load10bitInputData (1 _best_dac_val ] +"397 +[; ;main.c: 397: LATAbits.LATA7 = old_bw; +[e = . . _LATAbits 0 7 _old_bw ] +"398 +[; ;main.c: 398: LATBbits.LATB4 = old_gain; +[e = . . _LATBbits 0 4 _old_gain ] +"399 +[; ;main.c: 399: } +[e :UE 1774 ] +} +"401 +[; ;main.c: 401: void init_sensor(void){ [v _init_sensor `(v ~T0 @X0 1 ef ] { [e :U _init_sensor ] [f ] -"285 -[; ;main.c: 285: _delay((unsigned long)((10)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 10 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"286 -[; ;main.c: 286: zero_stage_1(); +"402 +[; ;main.c: 402: uint32_t gnd_ref_val; +[v _gnd_ref_val `ul ~T0 @X0 1 a ] +"403 +[; ;main.c: 403: uint32_t stage_val; +[v _stage_val `ul ~T0 @X0 1 a ] +"404 +[; ;main.c: 404: int32_t diff_value; +[v _diff_value `l ~T0 @X0 1 a ] +"406 +[; ;main.c: 406: _delay((unsigned long)((5)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 5 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"407 +[; ;main.c: 407: zero_stage_1(); [e ( _zero_stage_1 .. ] -"287 -[; ;main.c: 287: _delay((unsigned long)((10)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 10 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"288 -[; ;main.c: 288: zero_stage_2(); +"409 +[; ;main.c: 409: if(LATBbits.LATB4 == 0){ +[e $ ! == -> . . _LATBbits 0 4 `i -> 0 `i 1797 ] +{ +"410 +[; ;main.c: 410: _delay((unsigned long)((50)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"411 +[; ;main.c: 411: zero_stage_2(); [e ( _zero_stage_2 .. ] -"290 -[; ;main.c: 290: } -[e :UE 1768 ] +"412 +[; ;main.c: 412: } } -"292 -[; ;main.c: 292: void reset_sensor(){ +[e :U 1797 ] +"414 +[; ;main.c: 414: stage_val = average_adc_reading(STAGE2_MON); +[e = _stage_val ( _average_adc_reading (1 . `E12086 2 ] +"415 +[; ;main.c: 415: gnd_ref_val = average_adc_reading(GNDREF_SENSE); +[e = _gnd_ref_val ( _average_adc_reading (1 . `E12086 0 ] +"416 +[; ;main.c: 416: diff_value = (int32_t) gnd_ref_val - (int32_t) stage_val ; +[e = _diff_value - -> _gnd_ref_val `l -> _stage_val `l ] +"417 +[; ;main.c: 417: if ( labs(diff_value) > ((1<<8)*20) ){ +[e $ ! > ( _labs (1 _diff_value -> * << -> 1 `i -> 8 `i -> 20 `i `l 1798 ] +{ +"418 +[; ;main.c: 418: set_led(0x4); +[e ( _set_led (1 -> -> 4 `i `uc ] +"419 +[; ;main.c: 419: _delay((unsigned long)((3000)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 3000 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"420 +[; ;main.c: 420: set_led(led_color_state); +[e ( _set_led (1 _led_color_state ] +"421 +[; ;main.c: 421: } +} +[e :U 1798 ] +"422 +[; ;main.c: 422: } +[e :UE 1796 ] +} +"424 +[; ;main.c: 424: void reset_sensor(){ [v _reset_sensor `(v ~T0 @X0 1 ef ] { [e :U _reset_sensor ] [f ] -"293 -[; ;main.c: 293: do { LATAbits.LATA6 = 0; } while(0); -[e :U 1772 ] +"425 +[; ;main.c: 425: do { LATAbits.LATA6 = 0; } while(0); +[e :U 1802 ] { [e = . . _LATAbits 0 6 -> -> 0 `i `uc ] } -[e :U 1771 ] -"294 -[; ;main.c: 294: _delay((unsigned long)((50)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"295 -[; ;main.c: 295: do { LATAbits.LATA6 = 1; } while(0); -[e :U 1775 ] +[e :U 1801 ] +"426 +[; ;main.c: 426: _delay((unsigned long)((40)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 40 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"427 +[; ;main.c: 427: do { LATAbits.LATA6 = 1; } while(0); +[e :U 1805 ] { [e = . . _LATAbits 0 6 -> -> 1 `i `uc ] } -[e :U 1774 ] -"296 -[; ;main.c: 296: _delay((unsigned long)((50)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"297 -[; ;main.c: 297: do { LATAbits.LATA6 = 0; } while(0); -[e :U 1778 ] +[e :U 1804 ] +"428 +[; ;main.c: 428: _delay((unsigned long)((40)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 40 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"429 +[; ;main.c: 429: do { LATAbits.LATA6 = 0; } while(0); +[e :U 1808 ] { [e = . . _LATAbits 0 6 -> -> 0 `i `uc ] } -[e :U 1777 ] -"299 -[; ;main.c: 299: } -[e :UE 1769 ] +[e :U 1807 ] +"430 +[; ;main.c: 430: _delay((unsigned long)((50)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"431 +[; ;main.c: 431: } +[e :UE 1799 ] } -"301 -[; ;main.c: 301: void low_battery_loop(){ +"433 +[; ;main.c: 433: void low_battery_loop(){ [v _low_battery_loop `(v ~T0 @X0 1 ef ] { [e :U _low_battery_loop ] [f ] -"302 -[; ;main.c: 302: while(1){ -[e :U 1781 ] +"434 +[; ;main.c: 434: while(1){ +[e :U 1811 ] { -"303 -[; ;main.c: 303: set_led(0x0); +"435 +[; ;main.c: 435: set_led(0x0); [e ( _set_led (1 -> -> 0 `i `uc ] -"305 -[; ;main.c: 305: _delay((unsigned long)((500)*(8000000/4000.0))); +"437 +[; ;main.c: 437: _delay((unsigned long)((500)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 500 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"307 -[; ;main.c: 307: set_led(0x4); +"439 +[; ;main.c: 439: set_led(0x4); [e ( _set_led (1 -> -> 4 `i `uc ] -"309 -[; ;main.c: 309: _delay((unsigned long)((500)*(8000000/4000.0))); +"441 +[; ;main.c: 441: _delay((unsigned long)((500)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 500 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"310 -[; ;main.c: 310: } +"442 +[; ;main.c: 442: } } -[e :U 1780 ] -[e $U 1781 ] -[e :U 1782 ] -"311 -[; ;main.c: 311: } -[e :UE 1779 ] +[e :U 1810 ] +[e $U 1811 ] +[e :U 1812 ] +"443 +[; ;main.c: 443: } +[e :UE 1809 ] } [v $root$_main `(v ~T0 @X0 0 e ] -"312 -[; ;main.c: 312: void main(void) +"444 +[; ;main.c: 444: void main(void) [v _main `(v ~T0 @X0 1 ef ] -"313 -[; ;main.c: 313: { +"445 +[; ;main.c: 445: { { [e :U _main ] [f ] -"315 -[; ;main.c: 315: SYSTEM_Initialize(); +"447 +[; ;main.c: 447: SYSTEM_Initialize(); [e ( _SYSTEM_Initialize .. ] -"317 -[; ;main.c: 317: DAC7_SetOutput(16); +"449 +[; ;main.c: 449: DAC7_SetOutput(16); [e ( _DAC7_SetOutput (1 -> -> 16 `i `uc ] -"318 -[; ;main.c: 318: DAC3_SetOutput(24); -[e ( _DAC3_SetOutput (1 -> -> 24 `i `uc ] -"319 -[; ;main.c: 319: DAC4_SetOutput(8); -[e ( _DAC4_SetOutput (1 -> -> 8 `i `uc ] -"322 -[; ;main.c: 322: DAC5_Load10bitInputData(512); +"450 +[; ;main.c: 450: DAC3_SetOutput(25); +[e ( _DAC3_SetOutput (1 -> -> 25 `i `uc ] +"451 +[; ;main.c: 451: DAC4_SetOutput(7); +[e ( _DAC4_SetOutput (1 -> -> 7 `i `uc ] +"454 +[; ;main.c: 454: DAC5_Load10bitInputData(512); [e ( _DAC5_Load10bitInputData (1 -> -> 512 `i `us ] -"323 -[; ;main.c: 323: DAC1_Load10bitInputData(512); +"455 +[; ;main.c: 455: DAC1_Load10bitInputData(512); [e ( _DAC1_Load10bitInputData (1 -> -> 512 `i `us ] -"324 -[; ;main.c: 324: _delay((unsigned long)((50)*(8000000/4000.0))); +"456 +[; ;main.c: 456: _delay((unsigned long)((50)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"327 -[; ;main.c: 327: if((PORTCbits.RC7 == 0) && (PORTBbits.RB0 == 0)){ -[e $ ! && == -> . . _PORTCbits 0 7 `i -> 0 `i == -> . . _PORTBbits 0 0 `i -> 0 `i 1784 ] +"459 +[; ;main.c: 459: if((PORTCbits.RC7 == 0) && (PORTBbits.RB0 == 0)){ +[e $ ! && == -> . . _PORTCbits 0 7 `i -> 0 `i == -> . . _PORTBbits 0 0 `i -> 0 `i 1814 ] { -"328 -[; ;main.c: 328: set_led((0x1 | 0x4)); +"460 +[; ;main.c: 460: set_led((0x1 | 0x4)); [e ( _set_led (1 -> | -> 1 `i -> 4 `i `uc ] -"329 -[; ;main.c: 329: while(1){ -[e :U 1786 ] +"461 +[; ;main.c: 461: while(1){ +[e :U 1816 ] { -"330 -[; ;main.c: 330: do { LATAbits.LATA6 = 0; } while(0); -[e :U 1790 ] +"462 +[; ;main.c: 462: do { LATAbits.LATA6 = 0; } while(0); +[e :U 1820 ] { [e = . . _LATAbits 0 6 -> -> 0 `i `uc ] } -[e :U 1789 ] -"331 -[; ;main.c: 331: _delay((unsigned long)((9)*(8000000/4000.0))); +[e :U 1819 ] +"463 +[; ;main.c: 463: _delay((unsigned long)((9)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 9 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"332 -[; ;main.c: 332: do { LATAbits.LATA6 = 1; } while(0); -[e :U 1793 ] +"464 +[; ;main.c: 464: do { LATAbits.LATA6 = 1; } while(0); +[e :U 1823 ] { [e = . . _LATAbits 0 6 -> -> 1 `i `uc ] } -[e :U 1792 ] -"333 -[; ;main.c: 333: _delay((unsigned long)((9)*(8000000/4000.0))); +[e :U 1822 ] +"465 +[; ;main.c: 465: _delay((unsigned long)((9)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 9 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"334 -[; ;main.c: 334: } +"466 +[; ;main.c: 466: } } -[e :U 1785 ] -[e $U 1786 ] -[e :U 1787 ] -"336 -[; ;main.c: 336: } +[e :U 1815 ] +[e $U 1816 ] +[e :U 1817 ] +"467 +[; ;main.c: 467: } } -[e :U 1784 ] -"338 -[; ;main.c: 338: led_color_state = 0x2; +[e :U 1814 ] +"469 +[; ;main.c: 469: led_color_state = 0x2; [e = _led_color_state -> -> 2 `i `uc ] -"339 -[; ;main.c: 339: mux_state = 0; +"470 +[; ;main.c: 470: mux_state = 0; [e = _mux_state -> -> 0 `i `uc ] -"340 -[; ;main.c: 340: SW2_ISR(); +"471 +[; ;main.c: 471: SW2_ISR(); [e ( _SW2_ISR .. ] -"341 -[; ;main.c: 341: _delay((unsigned long)((800)*(8000000/4000.0))); -[e ( __delay (1 -> * -> -> 800 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"342 -[; ;main.c: 342: reset_sensor(); +"472 +[; ;main.c: 472: reset_sensor(); [e ( _reset_sensor .. ] -"343 -[; ;main.c: 343: init_sensor(); -[e ( _init_sensor .. ] -"346 -[; ;main.c: 346: PIR2bits.C2IF = 0; +"473 +[; ;main.c: 473: _delay((unsigned long)((100)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 100 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"474 +[; ;main.c: 474: zero_stage_1(); +[e ( _zero_stage_1 .. ] +"475 +[; ;main.c: 475: _delay((unsigned long)((50)*(8000000/4000.0))); +[e ( __delay (1 -> * -> -> 50 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] +"476 +[; ;main.c: 476: zero_stage_2(); +[e ( _zero_stage_2 .. ] +"478 +[; ;main.c: 478: PIR2bits.C2IF = 0; [e = . . _PIR2bits 0 6 -> -> 0 `i `uc ] -"347 -[; ;main.c: 347: PIR2bits.C1IF = 0; +"479 +[; ;main.c: 479: PIR2bits.C1IF = 0; [e = . . _PIR2bits 0 5 -> -> 0 `i `uc ] -"349 -[; ;main.c: 349: IOCBF0_SetInterruptHandler(SW2_ISR); +"481 +[; ;main.c: 481: IOCBF0_SetInterruptHandler(SW2_ISR); [e ( _IOCBF0_SetInterruptHandler (1 &U _SW2_ISR ] -"351 -[; ;main.c: 351: IOCCF7_SetInterruptHandler(SW1_ISR); +"483 +[; ;main.c: 483: IOCCF7_SetInterruptHandler(SW1_ISR); [e ( _IOCCF7_SetInterruptHandler (1 &U _SW1_ISR ] -"352 -[; ;main.c: 352: set_led(0x0); +"484 +[; ;main.c: 484: set_led(0x0); [e ( _set_led (1 -> -> 0 `i `uc ] -"353 -[; ;main.c: 353: _delay((unsigned long)((200)*(8000000/4000.0))); +"485 +[; ;main.c: 485: _delay((unsigned long)((200)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 200 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"354 -[; ;main.c: 354: set_led(led_color_state); +"486 +[; ;main.c: 486: set_led(led_color_state); [e ( _set_led (1 _led_color_state ] -"355 -[; ;main.c: 355: (INTCONbits.GIE = 1); +"487 +[; ;main.c: 487: (INTCONbits.GIE = 1); [e = . . _INTCONbits 0 7 -> -> 1 `i `uc ] -"356 -[; ;main.c: 356: (INTCONbits.PEIE = 1); +"488 +[; ;main.c: 488: (INTCONbits.PEIE = 1); [e = . . _INTCONbits 0 6 -> -> 1 `i `uc ] -"358 -[; ;main.c: 358: while (1) -[e :U 1795 ] -"359 -[; ;main.c: 359: { +"490 +[; ;main.c: 490: while (1) +[e :U 1825 ] +"491 +[; ;main.c: 491: { { -"360 -[; ;main.c: 360: _delay((unsigned long)((500)*(8000000/4000.0))); +"492 +[; ;main.c: 492: _delay((unsigned long)((500)*(8000000/4000.0))); [e ( __delay (1 -> * -> -> 500 `i `d / -> -> 8000000 `l `d .4000.0 `ul ] -"361 -[; ;main.c: 361: if((average_adc_reading(channel_FVRBuffer1)>>3) > 460){ -[e $ ! > >> -> ( _average_adc_reading (1 . `E12086 14 `ui -> 3 `i -> -> 460 `i `ui 1797 ] +"493 +[; ;main.c: 493: if((average_adc_reading(channel_FVRBuffer1)>>8) > 460){ +[e $ ! > >> ( _average_adc_reading (1 . `E12086 14 -> 8 `i -> -> -> 460 `i `l `ul 1827 ] { -"362 -[; ;main.c: 362: (INTCONbits.GIE = 0); +"494 +[; ;main.c: 494: (INTCONbits.GIE = 0); [e = . . _INTCONbits 0 7 -> -> 0 `i `uc ] -"363 -[; ;main.c: 363: (INTCONbits.PEIE = 0); +"495 +[; ;main.c: 495: (INTCONbits.PEIE = 0); [e = . . _INTCONbits 0 6 -> -> 0 `i `uc ] -"364 -[; ;main.c: 364: low_battery_loop(); +"496 +[; ;main.c: 496: low_battery_loop(); [e ( _low_battery_loop .. ] -"365 -[; ;main.c: 365: } +"497 +[; ;main.c: 497: } } -[e :U 1797 ] -"366 -[; ;main.c: 366: } +[e :U 1827 ] +"498 +[; ;main.c: 498: } } -[e :U 1794 ] -[e $U 1795 ] -[e :U 1796 ] -"367 -[; ;main.c: 367: } -[e :UE 1783 ] +[e :U 1824 ] +[e $U 1825 ] +[e :U 1826 ] +"499 +[; ;main.c: 499: } +[e :UE 1813 ] } diff --git a/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.i b/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.i index e8cdddc..4e3b4f4 100644 --- a/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.i +++ b/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.i @@ -19669,16 +19669,16 @@ void SYSTEM_Initialize(void) PIN_MANAGER_Initialize(); OSCILLATOR_Initialize(); WDT_Initialize(); - CMP2_Initialize(); FVR_Initialize(); + CMP2_Initialize(); DAC3_Initialize(); DAC5_Initialize(); OPA2_Initialize(); CMP1_Initialize(); DAC4_Initialize(); - CMP5_Initialize(); - ADC_Initialize(); DAC7_Initialize(); + ADC_Initialize(); + CMP5_Initialize(); OPA1_Initialize(); DAC1_Initialize(); } diff --git a/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.p1 b/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.p1 index 8197b92..e980a3d 100644 --- a/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.p1 +++ b/firmware/B1-firmware.X/build/default/production/mcc_generated_files/mcc.p1 @@ -8,12 +8,12 @@ Version 4.0 HI-TECH Software Intermediate Code "107 [; ;mcc_generated_files/mcc.h: 107: void WDT_Initialize(void); [v _WDT_Initialize `(v ~T0 @X0 0 ef ] -"92 mcc_generated_files/cmp2.h -[; ;mcc_generated_files/cmp2.h: 92: void CMP2_Initialize(void); -[v _CMP2_Initialize `(v ~T0 @X0 0 ef ] "93 mcc_generated_files/fvr.h [; ;mcc_generated_files/fvr.h: 93: void FVR_Initialize(void); [v _FVR_Initialize `(v ~T0 @X0 0 ef ] +"92 mcc_generated_files/cmp2.h +[; ;mcc_generated_files/cmp2.h: 92: void CMP2_Initialize(void); +[v _CMP2_Initialize `(v ~T0 @X0 0 ef ] "93 mcc_generated_files/dac3.h [; ;mcc_generated_files/dac3.h: 93: void DAC3_Initialize(void); [v _DAC3_Initialize `(v ~T0 @X0 0 ef ] @@ -29,15 +29,15 @@ Version 4.0 HI-TECH Software Intermediate Code "93 mcc_generated_files/dac4.h [; ;mcc_generated_files/dac4.h: 93: void DAC4_Initialize(void); [v _DAC4_Initialize `(v ~T0 @X0 0 ef ] -"92 mcc_generated_files/cmp5.h -[; ;mcc_generated_files/cmp5.h: 92: void CMP5_Initialize(void); -[v _CMP5_Initialize `(v ~T0 @X0 0 ef ] -"147 mcc_generated_files/adc.h -[; ;mcc_generated_files/adc.h: 147: void ADC_Initialize(void); -[v _ADC_Initialize `(v ~T0 @X0 0 ef ] "93 mcc_generated_files/dac7.h [; ;mcc_generated_files/dac7.h: 93: void DAC7_Initialize(void); [v _DAC7_Initialize `(v ~T0 @X0 0 ef ] +"147 mcc_generated_files/adc.h +[; ;mcc_generated_files/adc.h: 147: void ADC_Initialize(void); +[v _ADC_Initialize `(v ~T0 @X0 0 ef ] +"92 mcc_generated_files/cmp5.h +[; ;mcc_generated_files/cmp5.h: 92: void CMP5_Initialize(void); +[v _CMP5_Initialize `(v ~T0 @X0 0 ef ] "93 mcc_generated_files/opa1.h [; ;mcc_generated_files/opa1.h: 93: void OPA1_Initialize(void); [v _OPA1_Initialize `(v ~T0 @X0 0 ef ] @@ -1763,11 +1763,11 @@ Version 4.0 HI-TECH Software Intermediate Code [; ;mcc_generated_files/mcc.c: 55: WDT_Initialize(); [e ( _WDT_Initialize .. ] "56 -[; ;mcc_generated_files/mcc.c: 56: CMP2_Initialize(); -[e ( _CMP2_Initialize .. ] -"57 -[; ;mcc_generated_files/mcc.c: 57: FVR_Initialize(); +[; ;mcc_generated_files/mcc.c: 56: FVR_Initialize(); [e ( _FVR_Initialize .. ] +"57 +[; ;mcc_generated_files/mcc.c: 57: CMP2_Initialize(); +[e ( _CMP2_Initialize .. ] "58 [; ;mcc_generated_files/mcc.c: 58: DAC3_Initialize(); [e ( _DAC3_Initialize .. ] @@ -1784,14 +1784,14 @@ Version 4.0 HI-TECH Software Intermediate Code [; ;mcc_generated_files/mcc.c: 62: DAC4_Initialize(); [e ( _DAC4_Initialize .. ] "63 -[; ;mcc_generated_files/mcc.c: 63: CMP5_Initialize(); -[e ( _CMP5_Initialize .. ] +[; ;mcc_generated_files/mcc.c: 63: DAC7_Initialize(); +[e ( _DAC7_Initialize .. ] "64 [; ;mcc_generated_files/mcc.c: 64: ADC_Initialize(); [e ( _ADC_Initialize .. ] "65 -[; ;mcc_generated_files/mcc.c: 65: DAC7_Initialize(); -[e ( _DAC7_Initialize .. ] +[; ;mcc_generated_files/mcc.c: 65: CMP5_Initialize(); +[e ( _CMP5_Initialize .. ] "66 [; ;mcc_generated_files/mcc.c: 66: OPA1_Initialize(); [e ( _OPA1_Initialize .. ] diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/DevInfo b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/DevInfo new file mode 100644 index 0000000000000000000000000000000000000000..9b20cf1871665a71c595258867aafb552c3399d0 GIT binary patch literal 8149 zcmcgwNmCm~6z&!RAt4sAh+W98M#2j_*j1@i62K&(%3#NK?8A^~WHiF6AcQr-gj@m# z-;&>ue~^+xmP2k?|3IozxuhzG9DGcmyf1mL7c?^0m8WX~Re9K0KtJ@5y(yQ75lA#}!wPFM%gDSJV5 z4|_@UDn_X8Wt8gG%tQ4WRz-Cm^HRN*Ra4#1YN#GyKC0KT0M&!6j_UQSp6U&(f$EK{ zk?KvXmg*taMD=For+Nzu0V4{wdxX>`606Cqkw^p*3Bh(Ep{xWGiQDVR74aP=W>zx= z__}Nq=9A_}K2yB?(4YM{V-`$5jEGhc#;z8U`NC8xl@G%3ekXvlS5r71!0ECHqgQep zS2Ld&p;B{hb$YX4m^e>;EH&lFMlpRhpEM2pdDzic)5H(=ry&f)Ft@sd|6VrnpWVo$ z3b!tcC~AaH);?){7h)G8qp1VJVk+J*{vZ^>loVt4NmDWQfNT|G5ApE`ACK|z1RqcF z@eCi&3BzbE2sja1XrIX1kXVFzbJbHXFd^J;9lZxXM`N2$Z{og6Ssi?gOHg zLfk#ma-Ag2%4Ldnn}y2{AWTYIs#2CE4&}H90km?*9}>;BkKIGyH&t*t+^<6GVd4Hm zaNm|XDrmn1Nb%rBBpsZGM?|w^E%#8Ujp^W^8ZCDT4jusqmNZ#0+X{;Ez6LS$aPJ=r z?_~mZ5rIrc())hc^N?8mKC~P`%aIzICdEiCJokzbKfHFegNK8AfN+hamzLAPc_cU% zD}ZpLVzC~}#i}$_Dv|eBi!@n>7*28woUL8K)*c={AuV*^$aI&oGDoKZDfw!Ut1XXX z6=(Gbo$)w(LNw=D?jBIvndgYO2E-8K5m$dO;>y$$?m=@p{r_XH5rGeg*n0vijnxXo z-u~I{9>&AyvyG|stVKwt`FcJTc|(SWdstM(;@F5yX!)!luv!)%i3?d%-rD~kqnZ@CVWSQbNvtE?J0jjpe))xe&H z7uEn$xnh2h&4yC*8dU!B3#uSYDhun`n@0Xp8d8GUoiX1x4V4_`(${k_vUh{@B&N^axEt<2Ib%j`bHcf|L4_`Q(W3!pOVVRos9hq)A5AlK0YJge*@ zSb4vl%w|?Lu@V+7UX-rilpPqpsydjgXVS}8jN9v(ypfvD6iigAVVHBsFp`uK^8W%( ztF!b;$A?1cwV=}5o{aa$;~@9qv3`hEF7{d|D7jY3+il_%7O!>+GOzyeihXEtMr6em?yRue zjrj#4QEp!MYzyY4$D*T{K7sb%;Y@c^u3{={ea6R2(%?z7J2yNu3Z{F$B*ortnxb2i zom(S6VEd~Rz4ytzKhOKNL{HoPdvyHwbANq0HWtzxSk=Dzd?X9E z9B}*4#L$O@;UU=g@wnZOH*J3Waeh$x@#9X!11027I}tCue%|4#<(C~^mH+z9*Z*$+ z^WEOJyVBe5xwn?2eJq~Z6g?W3H*lB?t#tx^lJ%2}EKbg)T24+~49U4MjKz*+ePa$@ zTDOW3M(?GmSmuZiSlN^A|Hj>S9#j?Pz{0jz_=AGd>aE&Far9Q>+o*$TM;)f_;V++x z9l31)!F>SW;Fhcda?FwE`7z=v?|`E96e3S>T05!ss#3!}=sicBWe#>vBgUj)w-eZX zRl#$-D3A0+(R>D7SmHFdP|aSExd+!$d^jjPi}npcVGB@buL3KHz=BDUF^FK6IT>w~ z-zV7%PWRwAt1WS#t}25e#E}uCv;ipxOW#T(ao|$~4I?nP{fCSGFy%MjqR@5^jw(Ct zgp8owtRN%|gp}(2N?DdTl;fiaAjchVr{d;YmBsEMD3#idO)`eoZwvR^!F_)7eGK+X zfD{koh{WVPv{J2%q;ijuLzRj>G$s(yy5Oc2xGAIOjs??Ua20cth;xH8*F*VjrV>CX eFWrM@6In8j6ozw%VUuI%rJ7aJx@X_1>;40s!KwQI literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/PowerInfo b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/PowerInfo new file mode 100644 index 0000000000000000000000000000000000000000..cf4707e3646cdb644d62cb814d52e310e96b6a3c GIT binary patch literal 2618 zcmchYPfy!06u_U`jx;T0RD;4+AvhRr+X?M3O_RFONoaJ71mluOb_J%3);3*|QgPg2 zpJZQveYRCCe(%|?rBkcrG{{TYgunQAv&Ny+hr<-@Ls8GZ zZCQuirg-=1!yBWf?Nr{gt?GVt=ZjXWe%>=|^FVAGhvFFjnR8&99oI2Bw$-rft(LHv zYq5r9bliraSv_HIw~wq>ofGx{!}t!!cj93z_7UUdFQq!Z5URWebX9Uu3LNM%a6&JE zr|1>%G`$9%p*O&vP#}DU62cXlCOk_sgsXIh@ElbL&(kd7vs5KTeLQcHab+26*IRO+vGWMfeZ~9;0r)Jx987r91S4Zr3Iv-8japxT2Mjl^yojX=<-)g$`hR_1D zX1h`Lzns{IV{SWpmeuq;%P}L5xrT6q;d0m$+|HZM?zgVHW%b&-CypyxMeMu%ri5>5 zb+hf_uX5m;$HE)FgyT(k4TaZOR+!SlGUl_gE-%dE{OQI3uo=qcOg1CgoWsKJh0~1- zS#hD6Br`MT+zKvlj`ifbs9)2Lr2b{RpJ=p%9TS37j{Up%P_Xn0!vJQ=ao-{Mz=JRFh0~D)amNJ+Qat+19LdPBbq4|<1&J>cxVuDP84ChS5+wi& z?*d0rj(iJBw3Vb(vCC!0R=&8({{Z-qU-@*rlM{cAt6VC(@+}|iN@6EcE-qW8OZUv~ z0w96QC52Of0(PcncBZGNyXQAOvutV_@tZjObYJ5>;5=^kg3IOdBsuPpgX2Hs9EAT* z&e6m_1z_|p|z(-uNiT{YRN6nwjNXbH4e16IQnT_SOCEt83 z5WE#!T3uTXu0%HER6@MAkreO1Go~cuR4%V<8hY$z8zW*t_K6LkUzX;6|;F!7L&1@Xw~U!!Sju@Z^wXJ zU?d;Ui?;2UBIaW`X;+l3<=!ijCZcp@rF<-vP32SZbm}!Rsn{wr?Rvkdgp%9m2^Ht! zM~qitU-v;<@W6V|bMWlJ&_S>0Ixvej#2W|pgI=K8Aa`Is7!nVx>=jXf zSr~M2{0Ik<=6O!w_zRps_yHm`@eU%G_-BaF%wHrz3qMGNR(_ZWZM>5RW`2YS7T!e! zD?dgA8$U~gcK&%Hbnw@S(8=E*LKhz(LO1Uxf}Qsfp@-ifLN6aBLLdJ!5&HRYA`I}G zL~!s^M7Y3j6X6*?LxhXGM1(asnc>Z-FxcTo8!Nb2pgfV`e*rOHVZK%eWW3g;JBgSIZ7|t_H3UcIgnJ4Wtj2RoG8b!+HzcZ#er|vpie@5 zS^Q!lC5uWpCni9DZcB3Jg?KiZPGz?jBpLez2J>PfKLC~2P!EH$EXlWWxrih!NxSVj zIh5U!tckRwi0fiHzSjTom)Sq;x*MEz)XG77*`X(gsOrD2?g%crKUT3yWzq zmmWQ{R!FCB<^s}g)~=IYjQAFTUoqLCQ)tez6Ia62e9h1*C7FRcn&?$_3VCdV@)X`v z@?r)@6nr%yQgJTGQYH*0S5WMVn1=DPic&#Nh!w?m?v|l}xFTYclwgC7B5@i1LxI*iqMX{=>)Dc^;hTyGBGe>ff$}9WyPehulJ_p=m^<@jleZ{S<)Y4nEQ0&d`|md7d^{g8m4sL%x+jEaF>V3`Sxv_`=d%Egu!x#gX_L)8_H2lTRk&xgUHr2 zo3|ElP4yP-PmHl)X5WB__97P*jRIIa%4iFwyH%1kJ~+4LI@eq?{i zMn^S1hND_=Prf)d?!7XWa(OR%FOOgLPEL7^-^2vEV{nm=xYF<=&gmsv+?-V{ImaO} zJ@Y&D(D^K+PD{>7EHOj=3h4nEl$=xK(D^AK(hRN6^0Q`m-9;-M-7gJ)%ng5c?>oQ19rYFO{u?ww({KH@BByFp{rPT1*}IRed0bKR_^~zn z)OoF!KGhE?HsRlgRLMCD?7~!60r-Yac3B(CsqT~#)(|=a=d}R46%eupmTTbWL4e*> zfVu(zpU3naDJ7)f&Vz!ATD?`*sL*^J-kD$%bTOsW>(jEimlxx*9N%jN_zW=pDL(2L z%9(u^VRloN`X;&YGI#=j@tw11Gp~3j#yz++qNb80xySV45H;jEk_2eYk)c0<#A#`m zBhJr~qrNvDQ8lLd&yl0A{Z^;gqi1?=tPUB%tuyp?O;IS~Zm)#j9k|bmD|y(O71H^t zqE1ku5Qb^8@${`^vZ@U2fx%8F(ImM^7IoP5JjzdIKILPGIa#5)w#RMgz;)%*9J!vo z(L!Bc=XGQw?;i7xjWJ$Kq~yGT7F}}sGzT`%vVQgmFmtcmh&PmBV*^vQy|3Q6pW9!a z-|E+h2WTQNI#^<=+SK+v6Gr~@J%=X^yStv2*-Y=5|m8ty~@NBgzQmnZn-0&K$hAP@U+ z_@5eMtDSek;~AgeK@KX6pUPqxWO4skz4YL?c#UiN;$Ro&sX<H;mY`{4sxXIBr9aC+(H=c-vrk9jC=eQiS`zQnu$-C# zuOnN-oPJguu@T%pJA5ddpYsc&qZ4CeFM6)PcO5%9>>H#aC2?wCrdypJ zy3aXUX#2q#qWbL7YKPfS$u^6xiitAlHe#lRhE+?v99#trV^LN;(UOxPM%v6^h7AxF zdN&NzDm`JXE(S$mU4)|+rSCj#EeLu`L%1BTy90_XS)FxoO8Igq(U|cM3?nb zt#rn08#rUXp2qd=dMBNjrbC>Vz>Ha)?v4gw&U`&ld$b%LZoKp~MQUZd*BC<>Y!B3{ zGm6aqMmIe)IM@*U9}Ui!h=z{m$voKO4XQ=KN#7*@;%%jiRQt;~?1!Th9+)IY6|AIa z@+fL3T|>uGhs$c0YB+&^y{d6Lj@9%0Qhf^nRis6nhmO%QQt(W#h_XkHH%cMLDlO1DN=0) z)yC@1BemV2wlnG^QacQ42cr%kwbP(>GAgIqX#mGq3d?6V4HbT607s9Am)GA~rIlfD z`UZx<%dgZdu53pSrS@<*NHM_S_fcykMIX=2P z3eux-wG`sY!&$dVa~L+8t$^@=sLDc_=|F5%&fBAP&s`fUtDJsHhmN$?DX&qXIwVxq z+&aRlLpCvdq%8R3S%frzo?Myphs!QJ1(vd|-5oLO!c#z3N}&))Dd0Id9D2DZW1CGJ zfgd-=4rDtrI1f{<3GX*GwX1>`_Gsn7d}GH~ zJ7jIFx`#SzGP35Y!P>cd0-q#*P4lG%Km{23DvSi)A!a(}SE(&DH?e&gantSQls?SRxp~K-{;K9Hifgr_w zlmp0Q`f&JH+`wz({n>sMlMd7Svo@L<_!8ikD=Z1+a}G%UIRr2IA#H>G;p^DUG)T1M z{4z^^k5#^_RZtoAZAL9>)O|+XWz;t`>YI!jXVimg>Pw9J6^;5;R(FO`-_odm!KfpQ z`j;B@uNalN?q*a0dsMs0($Fbyp*L5`H(|65WqvOwn%1^6&6uEnmOwloUr5K59h#+u z891*ze>8vY+Dn@(#*=zumU&6a({{{A#vE(VzqM^e3SL)8ZBtrnFo?ZUGD|X6=Oxvi?UveEOY)NmTM3Q0MMwjl-0N&Z-8uHZ2rsb?;%%uS~&Bp-C_G zIB-_xe4C)zY{6dG{!jlncMZVQUxOREf8_i+JRTel-{sKk{-gNs@4b8c5CVaf-l$c5 z_xQt;4{(nUzKGqSYUlv;C_9GQ;O-R0`cRZ~&M=DWOD5r(PofKww^Padj&|~7fAu5VXfqNz{n7!?62G->sSkqx?w|oOdRzTkqt$jJHp~KbY z%VO}T>&!Qija^{F9<6;F?P;(v$Z(D2TiE#?bdCt-ZxF%22E4}Yw}$diUU|&HS5tXJ z9h!75YHWQQ+4>T)1uFsLs`mZ6hVsQ6qYjBKFlSJ4;OR=>ML_FCw(+;Tj!eF;F^S8S zJ$lYBK0W@*UaRY7wxEbf*Fqr+waBD1&Gz_dO=h->`Zws_6WB>pF literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/ToolInfo b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/ToolInfo new file mode 100644 index 0000000000000000000000000000000000000000..8679bd27b681695100fae03e91431a5d07752576 GIT binary patch literal 1876 zcmchXO>fgc5QfLjx7$=ih*A`V_ONh4aLNfGq!Jrclt3V*msnay@iwyL#Kv|iaf1W@ zC*>dTn~2&Z{eYRoPLmRD4tp5y$Z__W_uZLVLf$PVfL5jqzwq&U&w%YAm@*qep_zTr zbrdq&d)E)8jld%$)Hh%qpL?SLV%OE6@1 z1xA8hgOOyCWTcoZ8EKZ3j0{UjMwX=|WRK2?lb!Qkt1CEHIG-uQ`TU$s&Oi5C_Us2) z&aIvmaGvjopy3K(R>g_1w|o(N^2L$szP3C+ptRn%r_$8lRF+e93qM_ayOgR5rU#Wq zy&-G`|0di*u8e-7ocSHpa{m!6)bZ=!@flz^r!b;0rZAy!K}JWoF^Z-5^Rn|;+(+SC ze$eW*1!n3^rr){Up z?k53|A$LUp8whYpvKE@RTwN=}f~uty0Gh2_6HcCNMxHVJAe(1U3%4gus2j(YjSXeW zxS^fi-0}!jk`VPyh&mzE(O;-)yr|KQTE2DvMtz7TWB({Jq27Hmy=G$=l+NLU{PVPV zt107UjT&L4tPxm}z_w>#69gNr0{fpLMtzwgum@AYE}*$EpJEhg)m(_$GEL_fXKg@3 SZDA~~nP8*u3l9e|4Xr=5)p+y( literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/VoltagesInfo b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/VoltagesInfo new file mode 100644 index 0000000000000000000000000000000000000000..4091fb188adb11c8e5739d1126da15ccf8aebde2 GIT binary patch literal 3150 zcmchZO;6h}7=Z1z(56Z0%ESO61k()D4%>;-G)-fy2P9xfLtIkHu1KgVwW*f|q}|40 z|A+myRg`b`zA+{ra7@U-vE$eE0Z|K*c00Qc-3lDk^M(3WH5jQDtQ+Oje=7Vg?m8R;6N!nN-x7 zMa2tNqYXR3l=0##oO|uQ%XyV^rI+)>d=}?FkJ>#I1kqiu8*o0=af3}SaDA`c+jpF) zVX_(Tl`_#Qr3JlvZ68V)X~D>-5%oY=)FY*-qJOyF&^4h0Muzn=j&S?3jKOf9R&g6g zzVCWL7&5KG6OUBX{l3Se;*Ut<3uGhge|-)%e|<$=u;sr`SI-C(V=T_GxWM8Piz_Uy zvADsM)xI*`HM1MJkLpqyf%d9vQdW-dU6le5REJhv1-285CZ(arUoD&*r{F5aZyBJ%$5iN65|drYJl+<)i>-!MmbLYAdzIp(QXI@sCwvToN^;&Zb(w5 z+)%`5C^zG@o96(D+(@b26cFlV=;oZ*iGO^?W^|%EPRdIW5oVN^bMO*-pJbjfk07E4 z+DHj;WPBF;i+)az=PS(lRQ@vJ}d=BDOx(GNuSmfRqFSCw{FYT!93AlIA#dh@lr=#rfZa z3%@4z6X$ovAn5}zrNcy=6{X`EbUg9(@H{|iPVLJ=z_+2Vn+IR<6FdjJ_|K<&)ez^M S@`YbK_rBsIo(CxXA@d)DgEaI2 literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/conf.ptg b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/conf.ptg new file mode 100644 index 0000000..c3f9300 --- /dev/null +++ b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/conf.ptg @@ -0,0 +1 @@ +DIR = "0:/B1-firmware_ptg/" diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/connect b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/connect new file mode 100644 index 0000000000000000000000000000000000000000..971760b777e8ee085ef96ceee8a9dbfa9353c3e8 GIT binary patch literal 209 zcmeZeW|FsJW&i;$6Nb+WT535A4F9FSFbLkeY%bRz{gokw!ASZWgWPuppkNv!nEiu6 z`X`7j7|mgmo1apelWOPbY!%}h;N$2N@8TNf>f;~a>*^O0Q7Pe?K$TRh`2%9Qoxs&;5h@(XTn~vyjLI9&>H~udAT$&m}f?De&zl$KLl!`ZFId28Ls#VNP_RQTeA{Q@?~ zY)F|nPL#2PtJ)4DO6!@&K-ZKV*7E@*y7(?6y7?X?Ht

MRCNc8igNIcG8K;j9042doLMc{WKVU=fkeJqxd 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 literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/misc b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/misc new file mode 100644 index 0000000000000000000000000000000000000000..fff7b66ae498d2c8520d07e1a8811338fb0e540a GIT binary patch literal 5930 zcmdT|PjDMo8GldzY)P>#rHSk$imf;+IkAJ|$aa*PG_5SHQ)et&wUs|0)74hHa&{`M zRPDONaEL^j1Jj|yiRrOdE}d24B!zMykfa3;9GMO|!7vQmJfx*z$dvExTWKX*B|wz} zlC9nMdw;&~ec$i>_PtG5Eko6Q8zP_KDfBmV^avxw#h0$TukXL^h3nqyU2nVJalP#h z2nc;q@m_v}m`4b%pCaZ{RAoLxKV<%nt}>sa3}POm3}&97jDU6!GeX^1GnA20ek>TR%QT7PM@Dt_^~(0;Ean2VsE2hR8p1IQn|QR<_iU}%&A3gt+-lJ*H#OX zk{vH??2@v=RJK?s@Uoz^6zqbS=QrrDXXygFd~ta`#d1q4u~>AWFS*RFu*(-%E_(h_ zf=zhNFP>jv<6JVj98It(cG;i{Nd|8~$^YZKVlqBbh^w%3L7ZQviL|Y|wRH3JI+O`( ze0~`ro4~95#V$)>5WRgQdZFPXV+{NqW5$ys$HzlvFlm$;!L&Dm=`e#SAOYR0+`r-f96gNmRc;La z8NKDxP|osT^Y+%gn+ANd0e`f4XX~E-Jyi2UPfKLDvRQ*Nq@+u`aWiQp+4DnM92nBF znX`nanTr20stNdG(x_XjK`UFm6(X%Z*vwh)->N)}I4dO4PU4$4-F`7W%gj1S*7$On z-`KIoI3K7s^-O~HgHLbBr7T}XGL?^Hq_ZB4lVp?UWIMCwhvIt2qtSCbuQ{F z&<>uJRYzWw*VN0(S7PTF2pDCzu5JN(KLcdeZOjC(1gIIfQ)U{Cn+39|50Qs2>Dx#2 z)?6;G>Ohaa5cWFALYUMS0$m5k|Az&zlm7QNZ?&VpzAEZ;ubE74@ZFouLu{6>0F~>7)u6=4S#y!Ee>KH7+NiMEoduqJb1SaSr`lOSe9F zJCv1{=Rm6kgsSt;VPr>Wznl0oPbfOVghofgV`I$3@euLPc9x&f$-!zCO6^y>rQO$mhXZx9@o2ZtH<5<{z5^{;Lmuvi0kR z7T-?V>tgICVtnhTw{y1NeAueSAEw*wQ#usFwoln+?L&4+7Q`#IaZrb5+|Ctv<@N2- zyuI9p*6k+K!fjJG?O(2&He&s&iD$IIb949iAE{x0*apTcN-y0r2IhE>N5M7IrSIu_ zyo7PD4j&sm1|-{k*Z)4!1YDW+R3?6*-8i(Tdi7z%Qt{la{^`Wz?@s>pYB*d=w`@B* zlv^ukzp?8(3|l_*Aa9y(b30_ao8x4@Aab0GZ(@?OsBOXOmV?{Y9 zt<6em3a0IWvr`LztRc`>n669D*&BrI{y(Dqs5Uf!awrVxsfG4ElccPd#Bw9msHfE} zgh%yEkaIS8=iE=0qYBQ|G~JyYGwV>ax4WS`p)+PLxB=XD9w45)37%*N_u=%8fIdq< zMyUe0{X_x2BW6ri`WqSmoE(O983)%6dDD)AhK2UTv-5(Gnn#uiAQxytk4~=d27@7@ z29Uyo_=Xl5#IJx34B_u-p#b)1p+nDrW{zTs@E$G+5PZ8z&iwFlVkv$;mYQE$~ykggNwFv)*a&;Jk}d==I7qcfdwhr&(WbnvATXqMrO zMU}3dhET#M93(D$KXByekumxm86)3%seYx%$Rhaa4`J`aNT~|f!6W)^&UX}l5^-1j zqgX)j`e^!EiQb6SaEG5TXe9le0mw~ZG!l&F zu*uC&Da}c>^K`a~@eS~Cbc%Oz4RiJJ5Ab#M3yCSpOine4Nl7gO((%Q~MVSR9#W4j% z`RPT8xw)xD@g@23>G?4QCFw9hy@E>SfDm^O<|$4s3CJ%`E%MAu%V#YBv3P@1^HTf^ PQi~ExGV}95iWnFG{_{Jl literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/ptgdata b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/ptgdata new file mode 100644 index 0000000..9dd10c0 --- /dev/null +++ b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/ptgdata @@ -0,0 +1,212 @@ +######################## Scripts ######################## +EnterDebugMode= b'\xb1\x94\x64\x00\xb2\x00\x41\xb0\x94\x64\x00\xb2\x03\xb1\x94\x64\x00\x42\xa0\x10\x27\xb0\x94\x64\x00\xb6\xa0\x98\x3a\x30' +EnterTMOD_HV= b'\xb1\x94\x02\x00\xb2\x00\x41\xb0\x94\x05\x00' +EnterTMOD_LV= b'\x42\xb0\x94\x01\x00\xa0\xfa\x00\xb2\x00\xb1\x94\x02\x00\xa0\xfa\x00\xb4\x50\x48\x43\x4d\xba\xbb' +EnterTMOD_VPPFirst= b'\xb6\xdf\xb1\x94\x05\x00\xb2\x00\x41\xb0\x94\x0a\x00\xde\xa0\xfa\x00' +EraseChip= b'\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\xb5\x06\x09\x00\x00\x00\xa0\x70\x17' +EraseProgmemRange= b'\x91\x00\x91\x01\xf5\x01\x40\x00\x62\x00\x16\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\xad\x01\xb5\x06\x11\x00\x00\x00\xa0\xc4\x09\xac\x20\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xae' +EraseTestmem= b'\x90\x04\x20\x00\x00\x00\x90\x05\x00\x01\x00\x00\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\x62\x04\x2c\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\xb5\x06\x09\x00\x00\x00\xa0\x70\x17\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\xad\x05\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xae\xb5\x06\x0e\x00\x00\x00\xa0\x05\x00\xb5\x10\xaa\x63\x00\x00\xa0\x05\x00\xb5\x06\x09\x00\x00\x00\xa0\x70\x17' +EraseTestmemRange= b'\x91\x00\x91\x01\x60\x02\x01\xf5\x02\x40\x00\x90\x03\x00\x80\x00\x00\x60\x04\x00\x6a\x04\x03\x60\x05\x00\x90\x06\x00\x81\x00\x00\xf9\x00\x03\x8c\x00\x90\x0f\x00\x00\x00\x00\xf8\x01\x0f\x8c\x00\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\x62\x04\x56\x00\x92\x05\x01\x00\x00\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\xad\x02\xf9\x05\x06\x6f\x00\xb5\x06\x0e\x00\x00\x00\xa0\x05\x00\xb5\x10\xaa\x63\x00\x00\xa0\x05\x00\xb5\x06\x11\x00\x00\x00\xa0\xc4\x09\xac\x20\x00\x92\x05\x20\x00\x00\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xae' +ExitTMOD= b'\xb2\x03\xb1\x94\x01\x00\xa0\x01\x00' +GetDeviceID= b'\x95\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\xac\x06\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xb5\x06\x04\x00\x00\x00\xa0\x05\x00\x80\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\xac\x05\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xb5\x06\x04\x00\x00\x00\xa0\x05\x00\x80\xb1\x94\x01\x00\xa0\x01\x00' +ReadConfigmem= b'\x91\x00\x91\x01\x93\x01\x02\x00\x92\x00\x00\x80\xff\xff\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\x62\x00\x2e\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\x95\xad\x01\xb5\x06\x04\x00\x00\x00\xa0\x05\x00\x80\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xae' +ReadProgmem= b'\x91\x00\x91\x01\x93\x01\x02\x00\x62\x00\x16\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\x95\xad\x01\xb5\x06\x04\x00\x00\x00\xa0\x05\x00\x80\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xae' +SetSpeedFromDevice= b'\xec\xfa\x00\x00\x00' +WriteConfigmem= b'\x91\x00\x91\x01\x90\x02\x00\x80\x00\x00\x6a\x00\x02\x93\x01\x02\x00\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\x62\x00\x31\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\xad\x01\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x08\x00\x00\x00\xa0\x88\x13\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xae' +WriteConfigmemDE= b'\x91\x00\x91\x01\x90\x02\x00\x80\x00\x00\x6a\x00\x02\x93\x01\x02\x00\xf5\x01\x20\x00\x90\x03\xe0\x00\x00\x00\x93\x03\x20\x00\x60\x05\x01\x60\x04\x03\x6a\x05\x04\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\x62\x00\x48\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\xad\x03\xac\x1f\x00\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x08\x00\x00\x00\xa0\xc4\x09\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xae\xad\x05\xb5\x06\x0e\x00\x00\x00\xa0\x05\x00\xb5\x10\xaa\x63\x00\x00\xa0\x05\x00\xac\x1f\x00\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x08\x00\x00\x00\xa0\xc4\x09\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xae' +WriteDebugVector= b'\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\xac\x04\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\xb5\x10\x40\x50\x00\x00\xb5\x06\x08\x00\x00\x00\xa0\x88\x13\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\xac\x0d\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\xb5\x10\x40\x50\x00\x00\xb5\x06\x08\x00\x00\x00\xa0\x88\x13\xb5\x06\x06\x00\x00\x00\xa0\x05\x00' +WriteIDmem= b'\x91\x00\x91\x01\xb5\x06\x00\x00\x00\x00\xa0\x05\x00\xb5\x10\xfe\x7f\x00\x00\xa0\x05\x00\xac\x04\x00\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x08\x00\x00\x00\xa0\x88\x13\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4' +WriteProgmem= b'\x91\x00\x91\x01\x93\x01\x02\x00\x60\x04\x01\x93\x04\x20\x00\x62\x00\x1c\x00\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\x63\xad\x04\xac\x1f\x00\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xa4\xb5\x06\x02\x00\x00\x00\xa0\x05\x00\x81\xb5\x06\x08\x00\x00\x00\xa0\xc4\x09\xb5\x06\x06\x00\x00\x00\xa0\x05\x00\xae' +GetVersionDE= b'\x95\x31\x01\x00\x00\x04\x00' +GetPC= b'\x95\x31\x04\x00\x00\x02\x00' +Run= b'\x31\x05\x00\x00\x00\x00\x94\x64\x00' +SingleStep= b'\x31\x06\x00\x00\x00\x00' +ReadRAM= b'\x91\x00\x91\x01\x90\x02\x04\x00\x00\x00\x64\x00\x02\x64\x01\x02\x95\x33\x02\x02\x01' +WriteRAM= b'\x91\x00\x91\x01\x90\x02\x00\x00\x00\x00\x64\x00\x02\x64\x01\x02\x92\x01\x04\x00\x00\x00\x33\x03\x01\x02' +Halt= b'\x30\xb6\x94\x64\x00' +GetHaltStatus= b'\x32' +SetSpeedFromDevice= b'\xec\xfa\x00\x00\x00' +SetPC= b'\x91\x00\x64\x00\x03\x31\x11\x02\x00\x00\x00' +ReadProgmemDE= b'\x91\x00\x91\x01\x60\x02\x01\x64\x00\x02\x64\x02\x02\x9b\x03\x04\x68\x01\x01\x95\x33\x09\x03\x01' +WriteProgmemDE= b'\x91\x00\x91\x01\xf5\x01\x40\x00\xad\x01\x64\x00\x02\x65\x40\x00\x00\x00\x02\x31\x0a\x44\x00\x00\x00\xa0\x70\x17\x92\x00\x20\x00\x00\x00\xae' +EraseProgmemDE= b'\x91\x00\x64\x00\x02\x31\x0b\x02\x00\x00\x00\xa0\x70\x17' +ReadTestmemDE= b'\x91\x00\x91\x01\x60\x02\x01\x64\x00\x02\x64\x02\x02\x9b\x03\x04\x68\x01\x01\x95\x33\x0f\x03\x01' + +######################## Device Info ######################## +dev = DeviceInfo() +dev.deviceName = "PIC16F1776" +dev.programmerType = "PIC16ENH" +dev.family = "Mid-Range 8-bit MCUs (PIC10/12/16/MCP)" +dev.subFamily = "MidrangeEnh" +dev.useRowEraseIfVoltageIsLow = True +dev.voltageBelowWhichUseRowErase = 2700 +dev.Vpp = 9000 +dev.deviceIDMask = 0x3fff +dev.deviceID = 0x308b +memTypeInfo = [] +memInf = MemInfo() +memInf.type = "Pgm" +memInf.exists = True +memInf.startAddr = 0x0 +memInf.endAddr = 0x1fff +memInf.rowSize = 0x40 +memInf.rowEraseSize = 0x40 +memInf.addrInc = 0x1 +memInf.widthProgram = 0x2 +memInf.mask = 0x3fff +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "Cfg" +memInf.exists = True +memInf.startAddr = 0x8007 +memInf.endAddr = 0x8008 +memInf.rowSize = 0x2 +memInf.rowEraseSize = 0x0 +memInf.addrInc = 0x1 +memInf.widthProgram = 0x2 +memInf.mask = 0x3fff +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "BootFlash" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "EEData" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "UserID" +memInf.exists = True +memInf.startAddr = 0x8000 +memInf.endAddr = 0x8003 +memInf.rowSize = 0x2 +memInf.rowEraseSize = 0x0 +memInf.addrInc = 0x1 +memInf.widthProgram = 0x2 +memInf.mask = 0x3fff +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "Test" +memInf.exists = True +memInf.startAddr = 0x8000 +memInf.endAddr = 0x81ff +memInf.rowSize = 0x40 +memInf.rowEraseSize = 0x40 +memInf.addrInc = 0x1 +memInf.widthProgram = 0x2 +memInf.mask = 0x3fff +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "FileRegs" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "Periph" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "DataFlash" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "FlashData" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "Emulation" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "NMMR" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "InstructionRam" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "UserOTP" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "FBoot" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "EDS" +memInf.exists = False +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "DevID" +memInf.exists = True +memInf.startAddr = 0x8006 +memInf.endAddr = 0x8006 +memInf.rowSize = 0x1 +memInf.rowEraseSize = 0x0 +memInf.addrInc = 0x1 +memInf.widthProgram = 0x1 +memInf.mask = 0x7fffffff +memTypeInfo.append(memInf) +memInf = MemInfo() +memInf.type = "Calibration" +memInf.exists = False +memTypeInfo.append(memInf) +dev.setMemInfo(memTypeInfo) + +######################## Power Info ######################## +power = PowerInfo() +power.shutDownSystem = False +power.isToolPower = False +power.useVPPfirst = False +power.useLowVoltageProgramming = False +power.useMaintainActivePower = False +power.voltage = 5000 + +######################## Tool Info ######################## +tool = ToolInfo() +tool.speedLevel = 1 +tool.PGCResistance = 4700 +tool.PGDResistance = 4700 +tool.PGCPullDir = 2 +tool.PGDPullDir = 2 +tool.ICSPSelected = 0 + +######################## Operation Info ######################## +o = Opinfo("read",0x0) +t = Tinfo() +o.addTI(t) +oi.append(o) + +######################## Operation Info ######################## +o = Opinfo("erase",0x0) +oi.append(o) + +######################## Operation Info ######################## +o = Opinfo("write",0x0) +t = Tinfo() +t.start = 0x0 +t.end = 0xfff +t.data = "write_Pgm_st_0x0_op2_0.dat" +t.type = "Pgm" +t.mask = 0x0 +o.addTI(t) +t = Tinfo() +t.start = 0x1520 +t.end = 0x17ff +t.data = "write_Pgm_st_0x1520_op2_1.dat" +t.type = "Pgm" +t.mask = 0x0 +o.addTI(t) +t = Tinfo() +t.start = 0x8007 +t.end = 0x8008 +t.data = "write_Cfg_st_0x8007_op2_2.dat" +t.type = "Cfg" +t.mask = 0x0 +o.addTI(t) +oi.append(o) + +######################## Operation Info ######################## +o = Opinfo("releasefromreset",0x0) +oi.append(o) + diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/run b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/run new file mode 100644 index 0000000000000000000000000000000000000000..273f668f8eb81b0fb5d4a962bdc7bd3c4ce18419 GIT binary patch literal 772 zcmZ{g&2G~`6ov1^3Hec>L_*HOhz5~G$|95y6A2+uX$*>#v@VUh!BS+|lVD`eSTjx_ zD+~|9mK`s{f(`192SAj6+A!lZp%GxsXzqME=UmV2Dyg-XMz(WR1V>84zwevxAa0>FIJAg z&{4c8;qd|<&!8a1gSX9BvCtO}nonZw4QPkpqFCRHH!4$U5qE70mp@hjos^=LFco7h zg)S*b12jMtg!FR>NH2hfQ2f4`kF_l*rCem87ay+Qcz5&l^Lkxhk43VYK}qUT%xRY* zUHU8`E$iZ=-0gt6BOl)}wr*Knv$J`x-!k@%&W_nNwtE)y9Ne&6JQio4JIo6sZiS2v znH>a}^&{FJQY(yx78{XTI7tT{ck(8EidmZsXtssN^33%p^<_~o7v3`iJMjETR+wEo zva=2)1UpgYzUO1En7s$dZnYmO^DUW=$xMMf$>()iy5^U8rhX5}-3>CS9{PVTWWl-d)<_ zOm(UDAMnY)!U@#A_@>~qk4{EkeQ>7Zi`9-gBc6Nj210GE;}nv;=lt%u=brCP(&-qP z#fbfNUq-*6Q7I4@Q|@0w=;&QE_83{?zry!7bQ6s|K{xSO5ck|@zgp3i?J{{Q6?=0d znO=@AStU`SIE+~OqDD#O;sx)$NlTw2!R{% zC*Z@bI}n_h2~N$tHWiw^FmY*QdgNkA3XM-a{gFb!@Z{9&mD%a}iP_NPcF*B_2QVJa z^d8QCCXV#L5hm2zz%7CI*?4~g-xTe?#D}*!WNbw|zQqA&wp?6;EsTXyH-@FkyMQ0@Y`btTUxgi6Zily} z9tkkp?c94^kinY&A~Ut-ALACkDkNL$krD1?8*{+h-YhuI1(79;`1Ec#+;ih}`M>Or z>q({-rF=FQ%}M#ymBdOS*ICL#cSGZvvPs+}V&-HD&%~k=dJ!5FK3;>Ev299;W*&EM zQZ}|)^(tEi^s1>=)DK9G%9>FmG({CcU1mZn>h`lrRn6>>?vTPZ>)!yJ%3l9Kng zRTw?lDk-RPd0nTKw`EN!!{u?EvZ({+n51ByD6W9RJ+ahEJh7BdtmM;~)KVsz9J0q< zR8!UnRf{`JRgzS6y3=WIofzVb6-!+<8q>9+TH@+kC5ai=*b$s?gr8-bo@QkX5GPj+ zLKBN;?M=ZMe5;Kysa(2w4_LnEin9P6+s7CePgLtI?n56;-t<%HXk-j#xY3-O=OkEU zPTa=pLD(zm#**c@%v`Hzj63bo)+)R9+z8oz6&EDYGW! zqpR1GQu5h#_HWKU$GHJ0Pgz?aMV*plp-f|&vQ{GQO}(rnv9@6j!C#aCR{0&LMYs{F2Bl3*;}p}l zs0bH{?QIc@}Wjq3{lY5YTW-Gz_?Ax{v)OZT0LDfr(C!0U6*>!?TEFgio{6PT6r z)7Bmvx&rx_Awz(`%oNByhOl8D!WNJ{H=g;Df7zq2mrb$84~Z0vEM5EGkh3{EZCUZF e#OUKiX}8Q0(V$7nMsG8ig#idr_cUXy@BRi;_BWRR literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/version.txt b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/version.txt new file mode 100644 index 0000000..33175f0 --- /dev/null +++ b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/version.txt @@ -0,0 +1 @@ +01.02.00 \ No newline at end of file diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2.dat b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2.dat new file mode 100644 index 0000000..39913e1 --- /dev/null +++ b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2.dat @@ -0,0 +1 @@ +ä?ÿ> \ No newline at end of file diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2_mask.dat b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2_mask.dat new file mode 100644 index 0000000..a65a2e5 --- /dev/null +++ b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Cfg_st_0x8007_op2_2_mask.dat @@ -0,0 +1 @@ +ÿ>‡? \ No newline at end of file diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Pgm_st_0x0_op2_0.dat b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Pgm_st_0x0_op2_0.dat new file mode 100644 index 0000000000000000000000000000000000000000..0b461722e77a438da26594ee576a23a2c6dcf04c GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Pgm_st_0x1520_op2_1.dat b/firmware/B1-firmware.X/debug/default/B1-firmware_ptg/write_Pgm_st_0x1520_op2_1.dat new file mode 100644 index 0000000000000000000000000000000000000000..a83c94e3e79a245f2436cb343f1a9290f21639b1 GIT binary patch literal 1472 zcmaKsL2MgE6o%i}!FhIUH;SV)B`w)?piyJ(&Nz@D0}?`T>j5O_trDqdQQHGu+ep9# zp&pPzBgb(Pr!JwallVyQJ>|rK0}>}tBB+a+!hr+3HsJs&<)7Vz1XLkwX5PH_&3kX& zy!FEuAO7#ppxOY_Rb|pmVj9BQz-p392Ipw`ki2q8{v7g0Do0BcQ<~9o9kOOz$TuNt z#w3$}gr~a!GeHYf6Z4`f^oa?0uZu;ogk6r(8HeYo$W=-W>isbG4eW1FYAEzsp{n>= z%?EZJ<2v2Iz7g0RAh%jXiysnMpHzt|xlzTkAXPd+Qv3f_;LP^W!ws&t%Yfz5wfe z>nH0M>jJFj_pFT!6PV*2t84vkE$6>^N}p+r{$c%T{e^uSd!2P{U`}PJh8ry+<0a}v zy%&UjHP}!YlLj)YAnFuB^?THHV$?(v0~y$kGIgoU9qObysZ-R?rC793idCt9Fsf$z zY?}y`8mtaa+t1oh+eg@^G<&E{mXeu^%A*}nFWDXjO+t5cUw0b1)1fYN72F+gXP`S{ z>zvkUjMr!_wHCxQDT}Dtn0}Km?&W{tmh7^91#wMkB9k;$7ty;Tb9R}dC$8D0U@iu; zP);N|e9fM-S8XTmQ8DgQDc+%Syh~mpdd$b@V006!$RfOf_NVW#Zo3$ywYbB+_7=3a zLM?8gwLgHp4ef2*jfvDs{=@NlJ_cKhGHQdqfc-0b1EYmOlRb|lwn1!z*aoqQT<`|S z*B5@gnDUceGMpV21-wjJzfBf*FU2#C|O}IK$*{5uNt9 z9FeccU9p=OmqK|{ermRF6w+_>F7NjGqZ2YGpO8f^N1`Y4(&17hdi)tVB@2){ks^1W z7s{XZlCyo!;nXgum*Fob%jk?!&>1Ga4ik}Hm9NPUWJ|OXXFTu~`4_-F7H~(v`QWy|ZGqbYR~fk{cjV9V_rd#z{Oa#l|1>2)&1; LED_G_LAT = (~led_color>>1)&1; LED_R_LAT = (~led_color)&1; } + void zero_stage_1(void){ - uint16_t gnd_ref_val; + uint32_t gnd_ref_val; uint16_t best_dac_val = 0; - uint16_t stage_val; - int16_t best_val = (1<<12); - int16_t diff_value; + uint16_t best_dac_val_l; + uint32_t stage_val; + int32_t best_val = ADC_MAX_VAL; + int32_t diff_value; uint16_t start_dac; uint16_t end_dac; - uint16_t old_bw = MUX_SEL1_LAT; + uint8_t old_bw = MUX_SEL1_LAT; + uint8_t old_gain = MUX_SEL2_LAT; - gnd_ref_val = average_adc_reading(GNDREF_SENSE); - - //switch bw to low + //switch gain to low gain + MUX_SEL2_LAT = 1; + //switch bw to low MUX_SEL1_LAT = 0; - //initial ranging - DAC1_Load10bitInputData(512); - __delay_ms(10); - stage_val = average_adc_reading(STAGE1_MON); - diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; - if(diff_value > 100){ - start_dac = 0; + + //initial ranging + DAC1_Load10bitInputData(512); + __delay_ms(20); + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + + stage_val = average_adc_reading(STAGE2_MON); + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; + + if(diff_value > ((1< (1< start_dac+10) ){ + break; + } + } + + DAC1_Load10bitInputData(best_dac_val); + __delay_ms(50); + //ramp up + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + best_val = ADC_MAX_VAL; + start_dac = best_dac_val - 15; + end_dac = best_dac_val + 15; + DAC1_Load10bitInputData(start_dac); + __delay_ms(100); + for(uint16_t i = start_dac; i start_dac; i--){ + + DAC1_Load10bitInputData(i); + stage_val = average_adc_reading(STAGE2_MON); + __delay_ms(2); + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; + if (labs(diff_value)<= labs(best_val)){ + best_val = diff_value; + best_dac_val = i; + } + } + + //set new DAC value and restore old settings + best_dac_val = (best_dac_val + best_dac_val_l)>>1; DAC1_Load10bitInputData(best_dac_val); MUX_SEL1_LAT = old_bw; + MUX_SEL2_LAT = old_gain; } -void zero_stage_2(void){ - uint16_t gnd_ref_val; - uint16_t best_dac_val = 0; - uint16_t stage_val; - uint16_t old_gain = MUX_SEL2_LAT; - uint16_t old_bw = MUX_SEL1_LAT; + +void zero_stage_2(void){ + uint32_t gnd_ref_val; + uint16_t best_dac_val = 0; + uint32_t stage_val; + uint16_t best_dac_val_l; + + uint8_t old_gain = MUX_SEL2_LAT; + uint8_t old_bw = MUX_SEL1_LAT; - int16_t best_val = (1<<12); - int16_t diff_value; + int32_t best_val = ADC_MAX_VAL; + int32_t diff_value; uint16_t start_dac; uint16_t end_dac; @@ -234,68 +304,130 @@ void zero_stage_2(void){ MUX_SEL2_LAT = 0; //switch bw to low MUX_SEL1_LAT = 0; - __delay_ms(20); - gnd_ref_val = average_adc_reading(GNDREF_SENSE); - - //initial ranging - DAC5_Load10bitInputData(512); - __delay_ms(5); + //initial ranging + DAC5_Load10bitInputData(512); + __delay_ms(20); + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + stage_val = average_adc_reading(STAGE2_MON); - diff_value = (int16_t) stage_val - (int16_t) gnd_ref_val; + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; - if(diff_value < -100){ - start_dac = 0; + if(diff_value < ((1< 100 ){ + else if (diff_value > ((1< start_dac+10)){ + break; + } + } + + //ramp up + DAC5_Load10bitInputData(best_dac_val); + __delay_ms(50); + + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + best_val = ADC_MAX_VAL; + start_dac = best_dac_val - 15; + end_dac = best_dac_val + 15; + DAC5_Load10bitInputData(start_dac); + __delay_ms(100); + for(uint16_t i = start_dac; i start_dac; i--){ + + DAC5_Load10bitInputData(i); + stage_val = average_adc_reading(STAGE2_MON); + __delay_ms(3); + diff_value = (int32_t) stage_val - (int32_t) gnd_ref_val; + if (labs(diff_value)<= labs(best_val)){ + best_val = diff_value; + best_dac_val = i; + } + } + + //set new DAC value and restore all settings + best_dac_val = (best_dac_val + best_dac_val_l)>>1; DAC5_Load10bitInputData(best_dac_val); - MUX_SEL2_LAT = old_gain; MUX_SEL1_LAT = old_bw; + MUX_SEL2_LAT = old_gain; } void init_sensor(void){ + uint32_t gnd_ref_val; + uint32_t stage_val; + int32_t diff_value; - __delay_ms(10); + __delay_ms(5); zero_stage_1(); - __delay_ms(10); - zero_stage_2(); + //only zero second stage if in use + if(MUX_SEL2_LAT == 0){ + __delay_ms(50); + zero_stage_2(); + } + stage_val = average_adc_reading(STAGE2_MON); + gnd_ref_val = average_adc_reading(GNDREF_SENSE); + diff_value = (int32_t) gnd_ref_val - (int32_t) stage_val ; + if ( labs(diff_value) > ((1<>3) > HIGH_FVR_VOLTAGE){ + if((average_adc_reading(channel_FVRBuffer1)>>ADC_SUPERSAMPLE) > HIGH_FVR_VOLTAGE){ INTERRUPT_GlobalInterruptDisable(); INTERRUPT_PeripheralInterruptDisable(); low_battery_loop(); diff --git a/firmware/B1-firmware.X/mcc_generated_files/mcc.c b/firmware/B1-firmware.X/mcc_generated_files/mcc.c index 13f4fcc..34ce90a 100755 --- a/firmware/B1-firmware.X/mcc_generated_files/mcc.c +++ b/firmware/B1-firmware.X/mcc_generated_files/mcc.c @@ -53,16 +53,16 @@ void SYSTEM_Initialize(void) PIN_MANAGER_Initialize(); OSCILLATOR_Initialize(); WDT_Initialize(); - CMP2_Initialize(); FVR_Initialize(); + CMP2_Initialize(); DAC3_Initialize(); DAC5_Initialize(); OPA2_Initialize(); CMP1_Initialize(); DAC4_Initialize(); - CMP5_Initialize(); - ADC_Initialize(); DAC7_Initialize(); + ADC_Initialize(); + CMP5_Initialize(); OPA1_Initialize(); DAC1_Initialize(); } diff --git a/firmware/B1-firmware.X/nbproject/Makefile-genesis.properties b/firmware/B1-firmware.X/nbproject/Makefile-genesis.properties index 14b2f12..0e29480 100755 --- a/firmware/B1-firmware.X/nbproject/Makefile-genesis.properties +++ b/firmware/B1-firmware.X/nbproject/Makefile-genesis.properties @@ -1,11 +1,11 @@ # -#Sat Apr 10 13:34:23 PDT 2021 +#Mon Jun 14 00:45:36 PDT 2021 default.languagetoolchain.version=2.31 default.Pack.dfplocation=/opt/microchip/mplabx/v5.45/packs/Microchip/PIC12-16F1xxx_DFP/1.2.63 conf.ids=default default.languagetoolchain.dir=/opt/microchip/xc8/v2.31/bin host.id=2p1a-byni-8f -configurations-xml=1ffa9967bc20918976800abc3126d2f1 +configurations-xml=efe74a7dbe7c5d219e84e5bee52872c0 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=4e1c703e057ce3824a620f2a747a6f88 default.com-microchip-mplab-nbide-toolchainXC8-XC8LanguageToolchain.md5=d9404904a11cd8baf0bd6c1f62dd8c23 proj.dir=/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X diff --git a/firmware/B1-firmware.X/nbproject/configurations.xml b/firmware/B1-firmware.X/nbproject/configurations.xml index f91c9c6..c9d1486 100755 --- a/firmware/B1-firmware.X/nbproject/configurations.xml +++ b/firmware/B1-firmware.X/nbproject/configurations.xml @@ -200,11 +200,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/firmware/B1-firmware.X/nbproject/private/private.xml b/firmware/B1-firmware.X/nbproject/private/private.xml index 1e5bb64..b739891 100755 --- a/firmware/B1-firmware.X/nbproject/private/private.xml +++ b/firmware/B1-firmware.X/nbproject/private/private.xml @@ -4,8 +4,14 @@ file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/adc.h + file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/mcc.c file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/pin_manager.c + file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/device_config.c + file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/dac1.h file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/main.c + file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/device_config.h + file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/interrupt_manager.c + file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/dac1.c file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/mcc.h file:/home/wbraun/projects/little-bee-B1/firmware/B1-firmware.X/mcc_generated_files/pin_manager.h