Mercurial > public > hwos_code
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 |
