comparison src/sleepmode.asm @ 650:bc214815deb2

3.19/10.75 release
author heinrichsweikamp
date Sun, 28 Aug 2022 13:13:38 +0200
parents 7d8a4c60ec1a
children 75e90cd0c2c3
comparison
equal deleted inserted replaced
649:ef2ed7e3a895 650:bc214815deb2
26 #include "tft_outputs.inc" 26 #include "tft_outputs.inc"
27 27
28 28
29 extern eeprom_deco_data_write 29 extern eeprom_deco_data_write
30 extern option_check_and_store_all 30 extern option_check_and_store_all
31 extern power_up_switches ; from hwos.asm
32 31
33 32
34 ;---- Private local Variables ------------------------------------------------- 33 ;---- Private local Variables -------------------------------------------------
35 34
36 CBLOCK local1 ; max size is 16 Byte !!! 35 CBLOCK local1 ; max size is 16 Byte !!!
150 bra deepsleep_loop ; NO - loop in deep sleep loop 149 bra deepsleep_loop ; NO - loop in deep sleep loop
151 150
152 deepsleep_loop_exit: 151 deepsleep_loop_exit:
153 bcf deep_sleep ; clear flag (again) 152 bcf deep_sleep ; clear flag (again)
154 clrf sm_10min_counter ; clear 10mins counter 153 clrf sm_10min_counter ; clear 10mins counter
155 call power_up_switches ; turn on the analog switches 154 bsf power_sw1 ; switch on power supply for switch 1
155 nop
156 bsf power_sw2 ; switch on power supply for switch 2
156 rcall init_avg_switches ; initialize the averaging system 157 rcall init_avg_switches ; initialize the averaging system
157 158
158 bsf PIE1,TMR1IE ; enable timer 1 interrupt 159 bsf PIE1,TMR1IE ; enable timer 1 interrupt
159 bsf PIE2,TMR3IE ; enable timer 2 interrupt 160 bsf PIE2,TMR3IE ; enable timer 2 interrupt
160 bsf PIE5,TMR7IE ; enable timer 7 interrupt 161 bsf PIE5,TMR7IE ; enable timer 7 interrupt
177 ;----------------------------------------------------------------------------- 178 ;-----------------------------------------------------------------------------
178 ; Helper Function - Tasks every Second in Sleep Mode 179 ; Helper Function - Tasks every Second in Sleep Mode
179 ; 180 ;
180 one_sec_sleep: 181 one_sec_sleep:
181 bcf trigger_full_second ; clear trigger flag 182 bcf trigger_full_second ; clear trigger flag
182 183
183 btfsc switch_left ; left switch pressed? 184 btfss button_hold_down_allowed ; mechanical push buttons?
184 bcf sleepmode ; YES - terminate sleep mode 185 bra one_sec_sleep_piezo_buttons ; No
185 186
187 btfss switch_left ; left switch pressed?
188 bra one_sec_sleep_buttons_done ; no, done
189 btfss switch_right ; right switch pressed?
190 bra one_sec_sleep_buttons_done ; no, done
191 bcf sleepmode ; Both pressed, wake up
192 bra one_sec_sleep_buttons_done ; Done.
193
194 one_sec_sleep_piezo_buttons:
195 btfsc switch_left ; left switch pressed?
196 bcf sleepmode ; YES - terminate sleep mode
186 btfsc switch_right ; right switch pressed? 197 btfsc switch_right ; right switch pressed?
187 bcf sleepmode ; YES - terminate sleep mode 198 bcf sleepmode ; YES - terminate sleep mode
199
200 one_sec_sleep_buttons_done:
201 bcf switch_right ; clear right button event
202 bcf switch_left ; clear left button event
188 203
189 btfsc battery_gauge_available ; is a battery gauge IC available? 204 btfsc battery_gauge_available ; is a battery gauge IC available?
190 bra one_sec_sleep_1 ; YES - check for charger 205 bra one_sec_sleep_1 ; YES - check for charger
191 btfsc ble_available ; Skip "USB" check in all Bluetooth models (Required for very old OSTC sport) 206 btfsc ble_available ; Skip "USB" check in all Bluetooth models (Required for very old OSTC sport)
192 bra one_sec_sleep_2 ; - continue 207 bra one_sec_sleep_2 ; - continue
238 ; sleepmode pressure sampling for new sensor is done here 253 ; sleepmode pressure sampling for new sensor is done here
239 btfss press_sensor_type ; New sensor found? 254 btfss press_sensor_type ; New sensor found?
240 return ; No, done. 255 return ; No, done.
241 256
242 btfsc ms5837_state ; =0: result of temperature is in the ADC 257 btfsc ms5837_state ; =0: result of temperature is in the ADC
243 bra one_sec_sleep_3 258 goto I2C_get_press_val_MS5837 ; (Will clear ms5837_state) (And return!)
244 call I2C_get_temp_val_MS5837 ; (Will set ms5837_state) 259 goto I2C_get_temp_val_MS5837 ; (Will set ms5837_state) (And return!)
245 return 260 ; done.
246 one_sec_sleep_3: 261
247 call I2C_get_press_val_MS5837 ; (Will clear ms5837_state) 262
248 return ; done 263
249
250
251 ;----------------------------------------------------------------------------- 264 ;-----------------------------------------------------------------------------
252 ; Helper Function - Tasks every 10 Seconds in Sleep Mode 265 ; Helper Function - Tasks every 10 Seconds in Sleep Mode
253 ; 266 ;
254 ten_sec_sleep: 267 ten_sec_sleep:
255 ; tasks every 10 seconds in sleep mode 268 ; tasks every 10 seconds in sleep mode