Mercurial > public > hwos_code
comparison src/sleepmode.asm @ 629:237931377539
3.07 stable release
| author | heinrichsweikamp |
|---|---|
| date | Fri, 29 Nov 2019 18:48:11 +0100 |
| parents | cd58f7fc86db |
| children | 185ba2f91f59 |
comparison
equal
deleted
inserted
replaced
| 628:cd58f7fc86db | 629:237931377539 |
|---|---|
| 1 ;============================================================================= | 1 ;============================================================================= |
| 2 ; | 2 ; |
| 3 ; File sleepmode.asm combined next generation V3.03.6 | 3 ; File sleepmode.asm combined next generation V3.06.1 |
| 4 ; | 4 ; |
| 5 ; Sleep Mode | 5 ; Sleep Mode |
| 6 ; | 6 ; |
| 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. |
| 8 ;============================================================================== | 8 ;============================================================================== |
| 21 #include "external_flash.inc" | 21 #include "external_flash.inc" |
| 22 #include "ghostwriter.inc" | 22 #include "ghostwriter.inc" |
| 23 #include "i2c.inc" | 23 #include "i2c.inc" |
| 24 #include "mcp.inc" | 24 #include "mcp.inc" |
| 25 #include "wait.inc" | 25 #include "wait.inc" |
| 26 #include "tft_outputs.inc" | 26 #include "tft_outputs.inc" |
| 27 | 27 |
| 28 | 28 |
| 29 extern vault_decodata_into_eeprom | 29 extern vault_decodata_into_eeprom |
| 30 extern power_up_switches ; from hwos.asm | 30 extern power_up_switches ; from hwos.asm |
| 31 | 31 |
| 72 ENDIF | 72 ENDIF |
| 73 | 73 |
| 74 bsf sleepmode ; flag being in sleep mode | 74 bsf sleepmode ; flag being in sleep mode |
| 75 bsf block_sensor_interrupt ; suspend ISR from executing sensor interrupts | 75 bsf block_sensor_interrupt ; suspend ISR from executing sensor interrupts |
| 76 | 76 |
| 77 IFDEF _external_sensor | |
| 78 call disable_ir_s8 ; power-down IR/S8 interrupts | 77 call disable_ir_s8 ; power-down IR/S8 interrupts |
| 79 call mcp_sleep ; power-down RX power supply | 78 call mcp_sleep ; power-down RX power supply |
| 80 ENDIF | |
| 81 | 79 |
| 82 clrf ADCON0 ; power-down ADC module | 80 clrf ADCON0 ; power-down ADC module |
| 83 call disable_rs232 ; power-down USB | 81 call disable_rs232 ; power-down USB |
| 84 call I2C_sleep_compass ; power-down compass | 82 call I2C_sleep_compass ; power-down compass |
| 85 | 83 |
| 174 btfsc switch_right ; right switch pressed? | 172 btfsc switch_right ; right switch pressed? |
| 175 bcf sleepmode ; YES - terminate sleep mode | 173 bcf sleepmode ; YES - terminate sleep mode |
| 176 | 174 |
| 177 btfsc battery_gauge_available ; is a battery gauge IC available? | 175 btfsc battery_gauge_available ; is a battery gauge IC available? |
| 178 bra one_sec_sleep_1 ; YES - check for charger | 176 bra one_sec_sleep_1 ; YES - check for charger |
| 177 btfsc ble_available ; Skip "USB" check in all Bluetooth models (Required for very old OSTC sport) | |
| 178 bra one_sec_sleep_2 ; - continue | |
| 179 btfsc vusb_in ; NO - USB plugged in? | 179 btfsc vusb_in ; NO - USB plugged in? |
| 180 bcf sleepmode ; YES - terminate sleep mode | 180 bcf sleepmode ; YES - terminate sleep mode |
| 181 bra one_sec_sleep_2 ; - continue | 181 bra one_sec_sleep_2 ; - continue |
| 182 | 182 |
| 183 one_sec_sleep_1: | 183 one_sec_sleep_1: |
| 385 | 385 |
| 386 banksel common | 386 banksel common |
| 387 btfsc charge_in_sleep ; already showing charge screen? | 387 btfsc charge_in_sleep ; already showing charge screen? |
| 388 bra sleepmode_sleepwalk ; YES - skip the actual sleep (But wait) | 388 bra sleepmode_sleepwalk ; YES - skip the actual sleep (But wait) |
| 389 | 389 |
| 390 banksel T7GCON ; switch bank, T7* is outside access RAM | 390 ; banksel T7GCON ; switch bank, T7* is outside access RAM |
| 391 clrf T7GCON ; reset timer7 gate control register | 391 ; clrf T7GCON ; reset timer7 gate control register |
| 392 movlw b'10001101' ; 1:1 prescaler -> 2 seconds @ 32768 Hz, not synced | 392 ; movlw b'10001101' ; 1:1 prescaler -> 2 seconds @ 32768 Hz, not synced |
| 393 movwf T7CON | 393 ; movwf T7CON |
| 394 sleep | 394 sleep |
| 395 sleep | 395 sleep |
| 396 clrf T7GCON ; reset timer7 gate control register | 396 ; clrf T7GCON ; reset timer7 gate control register |
| 397 movlw b'10001001' ; 1:1 prescaler -> 2 seconds @ 32768 Hz, synced | 397 ; movlw b'10001001' ; 1:1 prescaler -> 2 seconds @ 32768 Hz, synced |
| 398 movwf T7CON | 398 ; movwf T7CON |
| 399 sleepmode_sleep_1: | 399 sleepmode_sleep_1: |
| 400 movff BSR_backup,BSR ; restore BSR | 400 movff BSR_backup,BSR ; restore BSR |
| 401 return | 401 return |
| 402 | 402 |
| 403 | 403 |
