diff --git a/ATU_100_EXT_board/FirmWare_PIC16F1938/1938_EXT_board_sources_V_3.2/main.h b/ATU_100_EXT_board/FirmWare_PIC16F1938/1938_EXT_board_sources_V_3.2/main.h deleted file mode 100644 index 07dca2f..0000000 --- a/ATU_100_EXT_board/FirmWare_PIC16F1938/1938_EXT_board_sources_V_3.2/main.h +++ /dev/null @@ -1,424 +0,0 @@ -// Main.h -// David Fainitski -// ATU-100 project 2016 - -// -static char ind = 0, cap = 0, SW = 0, step_cap = 0, step_ind = 0, L_linear = 0, C_linear = 0, L_q = 7, C_q = 7, D_correction = 1, L_invert = 0, L_mult = 1, -C_mult = 1, P_High = 0, K_Mult = 32, Overload = 0, Loss_ind = 0, Relay_off = 0; -static int Rel_Del, min_for_start, max_for_start, max_swr; -int SWR, PWR, P_max, swr_a; -char rready = 0, p_cnt = 0; -// -void btn_push(void); -void lcd_prep(void); -void lcd_swr(int); -void lcd_pwr(void); -void show_pwr(int, int); -void lcd_ind(void); -void crypto(void); -void show_reset(void); -void cells_init(void); -void test_init(void); -void button_proc(void); -void button_proc_test(void); -void button_delay(void); -void show_loss(void); -// -void atu_reset(void); -int get_reverse(void); -int get_forward(void); -int correction(int); -void get_swr(void); -void get_pwr(void); -void set_sw(char); -void coarse_cap(); -void sharp_cap(); -void sharp_ind(); -void coarse_tune(); -void tune(void); -void sub_tune(void); -// - - int correction(int input) { - // - if(input <= 80) return 0; - if(input <= 171) input += 244; - else if(input <= 328) input += 254; - else if(input <= 582) input += 280; - else if(input <= 820) input += 297; - else if(input <= 1100) input += 310; - else if(input <= 2181) input += 430; - else if(input <= 3322) input += 484; - else if(input <= 4623) input += 530; - else if(input <= 5862) input += 648; - else if(input <= 7146) input += 743; - else if(input <= 8502) input += 800; - else if(input <= 10500) input += 840; - else input += 860; - // - return input; -} - -// - -int get_reverse() { - int Reverse; - FVRCON = 0b10000001; // ADC 1024 vmV Vref - while(FVRCON.B6 == 0); - Reverse = ADC_Get_Sample(0); - if(Reverse <= 1000) return Reverse; - FVRCON = 0b10000010; // ADC 2048 vmV Vref - while(FVRCON.B6 == 0); - Reverse = ADC_Get_Sample(0); - if(Reverse <= 1000) return Reverse * 2; - FVRCON = 0b10000011; // ADC 4096 vmV Vref - while(FVRCON.B6 == 0); - Reverse = ADC_Get_Sample(0); - return Reverse * 4; -} -// - -int get_forward() { - int Forward; - FVRCON = 0b10000001; // ADC 1024 vmV Vref - while(FVRCON.B6 == 0); - Forward = ADC_Get_Sample(1); - if(Forward <= 1000){ - Overload = 0; - return Forward; - } - FVRCON = 0b10000010; // ADC 2048 vmV Vref - while(FVRCON.B6 == 0); - Forward = ADC_Get_Sample(1); - if(Forward <= 1000){ - Overload = 0; - return Forward * 2; - } - FVRCON = 0b10000011; // ADC 4096 vmV Vref - while(FVRCON.B6 == 0); - Forward = ADC_Get_Sample(1); - if(Forward > 1000) Overload = 1; - else Overload = 0; - return Forward * 4; -} - -void get_pwr() { - long Forward, Reverse; - float p; - asm CLRWDT; - // - Forward = get_forward(); - Reverse = get_reverse(); - if(D_correction==1) p = correction(Forward * 3); - else p = Forward * 3; - // - if(Reverse >= Forward) - Forward = 999; - else { - Forward = ((Forward + Reverse) * 100) / (Forward - Reverse); - if(Forward>999) Forward = 999; - } - // - p = p * K_Mult / 1000.0; // mV to Volts on Input - p = p / 1.414; - if(P_High==1) p = p * p / 50; // 0 - 1500 ( 1500 Watts) - else p = p * p / 5; // 0 - 1510 (151.0 Watts) - p = p + 0.5; // rounding - // - PWR = p; - if(Forward<100) SWR = 999; - else SWR = Forward; - return; -} - -void get_swr() { - get_pwr(); - if(p_cnt!=100) { - p_cnt += 1; - if(PWR>P_max) P_max = PWR; - } - else { - p_cnt = 0; - show_pwr(P_max, SWR); - P_max = 0; - } - while(PWR max_for_start & max_for_start>0)) { // waiting for good power - asm CLRWDT; - get_pwr(); - if(p_cnt!=100) { - p_cnt += 1; - if(PWR>P_max) P_max = PWR; - } - else { - p_cnt = 0; - show_pwr(P_max, SWR); - P_max = 0; - } - // - if(Button(&PORTB, 0, 5, 1)) rready = 1; - if(rready==1 & Button(&PORTB, 0, 5, 0)) { // press button Tune - show_reset(); - SWR = 0; - return; - } - } // good power - return; -} - -void set_ind(char Ind) { - if(L_invert == 0) { - Ind_005 = Ind.B0; - Ind_011 = Ind.B1; - Ind_022 = Ind.B2; - Ind_045 = Ind.B3; - Ind_1 = Ind.B4; - Ind_22 = Ind.B5; - Ind_45 = Ind.B6; - // - } - else { - Ind_005 = ~Ind.B0; - Ind_011 = ~Ind.B1; - Ind_022 = ~Ind.B2; - Ind_045 = ~Ind.B3; - Ind_1 = ~Ind.B4; - Ind_22 = ~Ind.B5; - Ind_45 = ~Ind.B6; - // - } - Vdelay_ms(Rel_Del); -} - -void set_cap(char Cap) { - Cap_10 = Cap.B0; - Cap_22 = Cap.B1; - Cap_47 = Cap.B2; - Cap_100 = Cap.B3; - Cap_220 = Cap.B4; - Cap_470 = Cap.B5; - Cap_1000 = Cap.B6; - // - Vdelay_ms(Rel_Del); -} - -void set_sw(char SW) { // 0 - IN, 1 - OUT - Cap_sw = SW; - Vdelay_ms(Rel_Del); -} - -void atu_reset() { - ind = 0; - cap = 0; - set_ind(ind); - set_cap(cap); - Vdelay_ms(Rel_Del); -} - - -void coarse_cap() { - char step = 3; - char count; - int min_swr; - - cap = 0; - set_cap(cap); - step_cap = step; - get_swr(); if(SWR==0) return; - min_swr = SWR + SWR/20; - for(count=step; count<=31;) { - set_cap(count*C_mult); - get_swr(); if(SWR==0) return; - if(SWR < min_swr) { - min_swr = SWR + SWR/20; - cap = count*C_mult; - step_cap = step; - if(SWR<120) break; - count +=step; - if(C_linear==0 & count==9) count = 8; - else if(C_linear==0 & count==17) {count = 16; step = 4;} - } - else break; - } - set_cap(cap); - return; -} - -void coarse_tune() { - char step = 3; - char count; - char mem_cap, mem_step_cap; - int min_swr; - - mem_cap = 0; - step_ind = step; - mem_step_cap = 3; - min_swr = SWR + SWR/20; - for(count=0; count<=31;) { - set_ind(count*L_mult); - coarse_cap(); - get_swr(); if(SWR==0) return; - if(SWR < min_swr) { - min_swr = SWR + SWR/20; - ind = count*L_mult; - mem_cap = cap; - step_ind = step; - mem_step_cap = step_cap; - if(SWR<120) break; - count +=step; - if(L_linear==0 & count==9) count = 8; - else if(L_linear==0 & count==17) {count = 16; step = 4;} - } - else break; - } - cap = mem_cap; - set_ind(ind); - set_cap(cap); - step_cap = mem_step_cap; - Delay_ms(10); - return; -} - -void sharp_cap() { - char range, count, max_range, min_range; - int min_swr; - range = step_cap*C_mult; - // - max_range = cap + range; - if(max_range>32*C_mult-1) max_range = 32*C_mult-1; - if(cap>range) min_range = cap - range; else min_range = 0; - cap = min_range; - set_cap(cap); - get_swr(); if(SWR==0) return; - min_SWR = SWR; - for(count=min_range+C_mult; count<=max_range; count+=C_mult) { - set_cap(count); - get_swr(); if(SWR==0) return; - if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } - if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } - if(SWR < min_SWR) { - min_SWR = SWR; - cap = count; - if(SWR<120) break; - } - else break; - } - set_cap(cap); - return; -} - -void sharp_ind() { - char range, count, max_range, min_range; - int min_SWR; - range = step_ind * L_mult; - // - max_range = ind + range; - if(max_range>32*L_mult-1) max_range = 32*L_mult-1; - if(ind>range) min_range = ind - range; else min_range = 0; - ind = min_range; - set_ind(ind); - get_swr(); if(SWR==0) return; - min_SWR = SWR; - for(count=min_range+L_mult; count<=max_range; count+=L_mult) { - set_ind(count); - get_swr(); if(SWR==0) return; - if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } - if(SWR>=min_SWR) { Delay_ms(10); get_swr(); } - if(SWR < min_SWR) { - min_SWR = SWR; - ind = count; - if(SWR<120) break; - } - else break; - } - set_ind(ind); - return; -} - - -void sub_tune () { - int swr_mem, ind_mem, cap_mem; - // - swr_mem = SWR; - coarse_tune(); if(SWR==0) {atu_reset(); return;} - get_swr(); if(SWR<120) return; - sharp_ind(); if(SWR==0) {atu_reset(); return;} - get_swr(); if(SWR<120) return; - sharp_cap(); if(SWR==0) {atu_reset(); return;} - get_swr(); if(SWR<120) return; - // - if(SWR<200 & SWR100) return; - swr_mem = SWR; - ind_mem = ind; - cap_mem = cap; - // - if(SW==1) SW = 0; else SW = 1; - atu_reset(); - set_sw(SW); - Delay_ms(50); - get_swr(); if(SWR<120) return; - // - coarse_tune(); if(SWR==0) {atu_reset(); return;} - get_swr(); if(SWR<120) return; - sharp_ind(); if(SWR==0) {atu_reset(); return;} - get_swr(); if(SWR<120) return; - sharp_cap(); if(SWR==0) {atu_reset(); return;} - get_swr(); if(SWR<120) return; - // - if(SWR>swr_mem) { - if(SW==1) SW = 0; else SW = 1; - set_sw(SW); - ind = ind_mem; - cap = cap_mem; - set_ind(ind); - set_cap(cap); - SWR = swr_mem; - } - // - asm CLRWDT; - return; -} - - - -void tune() { - //int swr_mem, ind_mem, cap_mem, sw_mem; - asm CLRWDT; - // - p_cnt = 0; - P_max = 0; - // - rready = 0; - get_swr(); - if(SWR<110) return; - atu_reset(); - if(Loss_ind==0) lcd_ind(); - Delay_ms(50); - get_swr(); - swr_a = SWR; - if(SWR<110) return; - if(max_swr>110 & SWR>max_swr) return; - // - sub_tune(); if(SWR==0) {atu_reset(); return;} - if(SWR<120) return; - if(C_q==5 & L_q==5) return; - - if(L_q>5) { - step_ind = L_mult; - L_mult = 1; - sharp_ind(); - } - if(SWR<120) return; - if(C_q>5) { - step_cap = C_mult; // = C_mult - C_mult = 1; - sharp_cap(); - } - if(L_q==5)L_mult = 1; - else if(L_q==6) L_mult = 2; - else if(L_q==7) L_mult = 4; - if(C_q==5) C_mult =1; - else if(C_q==6) C_mult = 2; - else if(C_q==7) C_mult = 4; - asm CLRWDT; - return; -} \ No newline at end of file