comparison src/adc_lightsensor.asm @ 615:b87f23fae743

work on new battery menu
author heinrichsweikamp
date Sat, 02 Feb 2019 17:39:44 +0100
parents d866684249bd
children c40025d8e750 be8787f2034d
comparison
equal deleted inserted replaced
614:a32212cd5ea9 615:b87f23fae743
36 btfss battery_gauge_available 36 btfss battery_gauge_available
37 bra get_battery_voltage1 ; normal ostc3 hardware 37 bra get_battery_voltage1 ; normal ostc3 hardware
38 38
39 call lt2942_get_accumulated_charge 39 call lt2942_get_accumulated_charge
40 call lt2942_get_voltage 40 call lt2942_get_voltage
41 41 call lt2942_get_temperature
42
42 tstfsz batt_voltage+1 ; < 256 mV ? 43 tstfsz batt_voltage+1 ; < 256 mV ?
43 bra get_battery_voltage_noretry ; NO 44 bra get_battery_voltage_noretry ; NO
44 45
45 ; Retry 46 ; Retry
46 call lt2942_get_accumulated_charge 47 call lt2942_get_accumulated_charge
47 call lt2942_get_voltage 48 call lt2942_get_voltage
49 call lt2942_get_temperature
48 50
49 get_battery_voltage_noretry: 51 get_battery_voltage_noretry:
50 btfsc divemode 52 btfsc divemode
51 return ; not in divemode 53 return ; not in divemode
52 54
63 bsf TRISJ,2 ; Chrg-Out high impedance 65 bsf TRISJ,2 ; Chrg-Out high impedance
64 66
65 WAITMS d'1' 67 WAITMS d'1'
66 68
67 btfsc CHRG_IN 69 btfsc CHRG_IN
68 return 70 return ; Not charging, done.
69 charge_cv_active: 71 charge_cv_active:
70 decfsz get_bat_volt_counter,F 72 decfsz get_bat_volt_counter,F
71 return 73 return
72 movlw .15 74 movlw .15
73 cpfsgt batt_voltage+1 ; battery voltage >= 16*256mV (4,096V)? 75 cpfsgt batt_voltage+1 ; battery voltage >= 16*256mV (4,096V)?
96 movlw .10 98 movlw .10
97 movwf get_bat_volt_counter 99 movwf get_bat_volt_counter
98 return 100 return
99 101
100 get_battery_voltage1: 102 get_battery_voltage1:
101 bsf adc_running ; =1: The ADC is in use 103 ; Additional disable in software
104 bsf charge_disable
105 bcf TRISE,2
106 bsf adc_running ; =1: The ADC is in use
107
102 movlw b'00100000' ; 2.048V Vref+ -> 1LSB = 500µV 108 movlw b'00100000' ; 2.048V Vref+ -> 1LSB = 500µV
103 movwf ADCON1 109 movwf ADCON1
104 movlw b'00011001' ; power on ADC, select AN6 110 movlw b'00011001' ; power on ADC, select AN6
105 rcall wait_adc 111 rcall wait_adc
106 112