annotate src/sleepmode.asm @ 623:c40025d8e750

3.03 beta released
author heinrichsweikamp
date Mon, 03 Jun 2019 14:01:48 +0200
parents ca4556fb60b9
children cd58f7fc86db
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
heinrichsweikamp
parents:
diff changeset
1 ;=============================================================================
heinrichsweikamp
parents:
diff changeset
2 ;
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
3 ; File sleepmode.asm combined next generation V3.03.1
0
heinrichsweikamp
parents:
diff changeset
4 ;
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
5 ; Sleep Mode
0
heinrichsweikamp
parents:
diff changeset
6 ;
heinrichsweikamp
parents:
diff changeset
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved.
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
8 ;==============================================================================
0
heinrichsweikamp
parents:
diff changeset
9 ; HISTORY
heinrichsweikamp
parents:
diff changeset
10 ; 2011-08-12 : [mH] moving from OSTC code
heinrichsweikamp
parents:
diff changeset
11
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
12 #include "hwos.inc" ; Mandatory header
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
13 #include "shared_definitions.h" ; Mailbox from/to p2_deco.c
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
14 #include "surfmode.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
15 #include "tft.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
16 #include "start.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
17 #include "adc_lightsensor.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
18 #include "math.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
19 #include "ms5541.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
20 #include "eeprom_rs232.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
21 #include "external_flash.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
22 #include "ghostwriter.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
23 #include "i2c.inc"
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
24 #include "mcp.inc"
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
25 #include "wait.inc"
0
heinrichsweikamp
parents:
diff changeset
26
133
939f1e83c4c2 BUGFIX: Surface interval was not displayed correctly in some cases
heinrichsweikamp
parents: 123
diff changeset
27
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
28 extern vault_decodata_into_eeprom
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
29 extern power_up_switches ; from hwos.asm
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
30
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
31
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
32 ;---- Private local Variables -------------------------------------------------
133
939f1e83c4c2 BUGFIX: Surface interval was not displayed correctly in some cases
heinrichsweikamp
parents: 123
diff changeset
33
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
34 CBLOCK local1 ; max size is 16 Byte !!!
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
35 accel_reference ; acceleration reference value for detecting movement / terminating deep sleep
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
36 sm_timer_10sec ; timer for 10 seconds tasks (pressure check)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
37 sm_timer_10min ; timer for 10 minutes tasks (tissue updating)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
38 sm_timer_15min ; timer for 15 minutes tasks (entering deep sleep)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
39 loop_counter ; loop counter, used in init_avg_switches routine
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
40 sm_flags ; local flags
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
41 ENDC ; used: 6 byte, remaining: 10 byte
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
42
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
43
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
44 ;---- Private local Flags -----------------------------------------------------
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
45
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
46 #DEFINE deep_sleep sm_flags,0 ; =1: in deep sleep mode, =0: normal sleep
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
47 #DEFINE desat_on_10_mins sm_flags,1 ; =1: calculate desaturation every 10 minutes, =0: every minute
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
48 ; sm_flags,2 ; unused
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
49 ; sm_flags,3 ; unused
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
50 ; sm_flags,4 ; unused
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
51 ; sm_flags,5 ; unused
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
52 ; sm_flags,6 ; unused
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
53 ; sm_flags,7 ; unused
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
54
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
55
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
56 slmode CODE
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
57
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
58 ;==============================================================================
0
heinrichsweikamp
parents:
diff changeset
59
heinrichsweikamp
parents:
diff changeset
60 global sleeploop
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
61 sleeploop:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
62 clrf STKPTR ; clear return addresses stack
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
63 call request_speed_normal ; request CPU speed switch to normal speed
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
64
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
65 bcf LEDg ; turn off green LED / release reset to RX circuitry
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
66 bcf LEDr ; turn off red LED
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
67
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
68 IFDEF _screendump
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
69 bcf screen_dump_avail ; disable screen dump function
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
70 ENDIF
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
71
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
72 bsf sleepmode ; flag being in sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
73 bsf block_sensor_interrupt ; suspend ISR from executing sensor interrupts
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
74
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
75 IFDEF _external_sensor
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
76 call disable_ir_s8 ; power-down IR/S8 interrupts
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
77 call mcp_sleep ; power-down RX power supply
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
78 ENDIF
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
79
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
80 clrf ADCON0 ; power-down ADC module
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
81 call TFT_Display_FadeOut ; power-down backlight
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
82 call TFT_DisplayOff ; power-down display
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
83 call disable_rs232 ; power-down USB
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
84 call I2C_sleep_accelerometer ; power-down accelerometer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
85 call I2C_sleep_compass ; power-down compass
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
86
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
87 call vault_decodata_into_eeprom ; store deco data
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
88 call ext_flash_enable_protection ; enable write protection on external flash
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
89 call update_battery_registers ; update battery registers into EEPROM
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
90
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
91 clrf sm_timer_10sec ; clear 10 seconds timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
92 clrf sm_timer_10min ; clear 10 minutes timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
93 clrf sm_timer_15min ; clear 15 minutes timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
94 clrf sm_flags ; clear all local flags
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
95
0
heinrichsweikamp
parents:
diff changeset
96 sleeploop_loop:
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
97 btfsc trigger_full_second ; one second in sleep?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
98 rcall one_sec_sleep ; YES - check switches, pressure sensor, etc.
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
99
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
100 btfss sleepmode ; shall terminate sleep mode?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
101 bra sleeploop_exit ; YES
0
heinrichsweikamp
parents:
diff changeset
102
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
103 rcall sleepmode_sleep ; wait at least 35 ms (every 62.5 ms timer7 wakeup)
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
104
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
105 btfss deep_sleep ; shall enter deep sleep?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
106 bra sleeploop_loop ; NO - remain in normal sleep loop
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
107 ;bra deepsleep_pre ; YES - enter deep sleep loop
0
heinrichsweikamp
parents:
diff changeset
108
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
109 deepsleep_pre:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
110 bcf PIE1,0 ; disable timer 1 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
111 bcf PIE2,1 ; disable timer 2 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
112 bcf PIE5,3 ; disable timer 7 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
113 bcf INTCON,4 ; disable INT0 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
114 bcf INTCON3,3 ; disable INT1 interrupt
0
heinrichsweikamp
parents:
diff changeset
115
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
116 bcf power_sw1 ; power-down switch 1
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
117 bcf power_sw2 ; power-down switch 2
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
118
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
119 rcall deepsleep_get_accel ; read accelerometer into WREG
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
120 movwf accel_reference ; store as reference value
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
121
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
122 deepsleep_loop:
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
123 btfsc trigger_full_second ; one second in deep sleep?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
124 rcall check_accelerometer ; YES - check accelerometer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
125
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
126 btfsc trigger_full_second ; one second in deep sleep?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
127 rcall one_sec_sleep ; YES - check switches, check pressure sensor, etc.
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
128
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
129 rcall sleepmode_sleep ; wait at least 35 ms (every 62.5 ms timer7 wakeup)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
130
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
131 btfss sleepmode ; shall leave sleep mode?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
132 bcf deep_sleep ; YES - leave deep sleep mode then, too
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
133
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
134 btfsc deep_sleep ; shall leave deep sleep mode?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
135 bra deepsleep_loop ; NO - loop in deep sleep loop
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
136
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
137 call power_up_switches ; turn on the analog switches
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
138 rcall init_avg_switches ; initialize the averaging system
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
139
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
140 bsf PIE1,0 ; enable timer 1 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
141 bsf PIE2,1 ; enable timer 2 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
142 bsf PIE5,3 ; enable timer 7 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
143 bsf INTCON,4 ; enable INT0 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
144 bsf INTCON3,3 ; enable INT1 interrupt
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
145
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
146 bra sleeploop_loop ; enter normal sleep loop
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
147
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
148
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
149 sleeploop_exit:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
150 bcf switch_left ; eventually clear left button event
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
151 bcf switch_right ; eventually clear right button event
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
152 movlw .0 ; reset ISR sensor state machine
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
153 movff WREG,sensor_state_counter ; ...
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
154 bcf PIR5,TMR7IF ; clear timer 7, driving the ISR sensor interrupts
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
155 bcf block_sensor_interrupt ; re-enable execution of the ISR sensor interrupts
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
156 goto restart ; restart
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
157
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
158
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
159 one_sec_sleep:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
160 ; tasks every second in sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
161 bcf trigger_full_second ; clear trigger flag
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
162
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
163 btfsc switch_left ; left switch pressed?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
164 bcf sleepmode ; YES - terminate sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
165
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
166 btfsc switch_right ; right switch pressed?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
167 bcf sleepmode ; YES - terminate sleep mode
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
168
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
169 btfsc battery_gauge_available ; is a battery gauge IC available?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
170 bra one_sec_sleep_1 ; YES - check for charger
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
171 btfsc vusb_in ; NO - USB plugged in?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
172 bcf sleepmode ; YES - terminate sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
173 bra one_sec_sleep_2 ; - continue
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
174
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
175 one_sec_sleep_1:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
176 call get_battery_voltage ; check for charger
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
177
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
178 one_sec_sleep_2:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
179 incf sm_timer_10sec,F ; increment 10 seconds timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
180 movlw .10 ; load a 10 into WREG
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
181 cpfslt sm_timer_10sec ; timer < 10 yet?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
182 rcall ten_sec_sleep ; NO - do the every 10 second tasks
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
183
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
184 btfsc trigger_full_minute ; one minute in sleep?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
185 rcall one_min_sleep ; YES - do the every minute tasks
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
186
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
187 btfsc trigger_full_hour ; one hour in sleep?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
188 rcall one_hour_sleep ; YES - do the every hour tasks
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
189
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
190 return ; done
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
191
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
192
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
193 ten_sec_sleep:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
194 ; tasks every 10 seconds in sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
195 clrf sm_timer_10sec ; clear timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
196 rcall pressuretest_sleep_fast ; get pressure without averaging (faster)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
197 MOVLI wake_up_from_sleep,sub_a ; load wake-up pressure (1160 mbar) into sub_a
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
198 MOVII pressure_abs, sub_b ; load current absolute pressure into sub_b
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
199 call cmpU16 ; sub_a - sub_b = wake-up pressure - current absolute pressure
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
200 btfsc neg_flag ; is the current absolute pressure > 1160 mbar ?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
201 bcf sleepmode ; YES - terminate sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
202 return ; done
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
203
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
204
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
205 one_min_sleep:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
206 ; tasks every minute in sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
207 bcf trigger_full_minute ; clear flag
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
208
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
209 ; tick the 10 minutes timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
210 incf sm_timer_10min,F ; increment 10 minutes timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
211 movlw .10 ; load a 10 into WREG
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
212 cpfslt sm_timer_10min ; timer < 10 yet?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
213 rcall ten_min_sleep ; NO - do the every 10 minutes tasks
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
214
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
215 ; the 15 minutes timer only ticks on OSTC with analog switches
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
216 btfss analog_switches ; OSTC with analog switches?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
217 bra one_min_sleep_1 ; NO - no analog switches, no deep sleep required
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
218
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
219 ; the 15 minutes timer also ticks only when not in deep sleep
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
220 btfsc deep_sleep ; in deep sleep mode?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
221 bra one_min_sleep_1 ; YES - already in deep sleep
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
222
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
223 ; tick the 15 minutes timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
224 incf sm_timer_15min,F ; increment 15 minutes timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
225 movlw .15 ; load a 15 into WREG
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
226 cpfslt sm_timer_15min ; timer < 15 yet?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
227 rcall fifteen_min_sleep ; NO - do the every 15 minute tasks
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
228
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
229 one_min_sleep_1:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
230 ; continue tasks every minute
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
231 btfsc desat_on_10_mins ; shall do desaturation calculation on 10 minute intervals?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
232 return ; YES - that's not here then, so done
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
233 call deco_calc_dive_interval_1min ; NO - calculate 1 minute at surface conditions (C-code)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
234 banksel common ; - back to bank common
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
235 return ; - done
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
236
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
237
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
238 ten_min_sleep:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
239 ; tasks every 10 minutes in sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
240 clrf sm_timer_10min ; reset timer to 0
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
241
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
242 call sample_surface_pressure ; sample surface pressure and update ISR and deco engine
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
243
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
244 btfss desat_on_10_mins ; shall do desaturation calculation on 10 minute intervals?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
245 bra ten_min_sleep_1 ; NO - continue checking if schedule can be switched to 10 minutes
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
246 call deco_calc_dive_interval_10min ; YES - calculate 10 minutes at surface conditions (C-code)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
247 banksel common ; - back to bank common
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
248 return ; - done
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
249
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
250 ten_min_sleep_1:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
251 movff int_O_lead_supersat+0,WREG ; get leading tissue's supersaturation (only the lower byte is used for the value)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
252 bsf desat_on_10_mins ; switch to 10 minute intervals by default
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
253 tstfsz WREG ; gradient factor = 0 ?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
254 bcf desat_on_10_mins ; NO - stay on 1 minute intervals
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
255 return ; done
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
256
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
257
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
258 fifteen_min_sleep:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
259 ; tasks every 15 minutes in sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
260 clrf sm_timer_15min ; reset timer to 0
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
261 bsf deep_sleep ; enable deep-sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
262 return
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
263
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
264
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
265 one_hour_sleep:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
266 ; tasks every hour in sleep mode mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
267 bcf trigger_full_hour ; clear one hour flag
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
268 call update_battery_registers ; update battery registers into EEPROM
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
269 call vault_decodata_into_eeprom ; update tissue pressures into EEPROM
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
270 return
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
271
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
272
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
273 init_avg_switches:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
274 ; pause 4 seconds using CPU sleep mode to conserve on battery
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
275 movlw .4 ; time to pause
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
276 movwf loop_counter ; initialize loop counter
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
277 bcf trigger_full_second ; clear 'one second elapsed' flag
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
278 activate_switches_1:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
279 rcall sleepmode_sleep ; wait at least 35 ms (every 62.5 ms timer7 wakeup)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
280 btfss trigger_full_second ; did 1 second elapsed meanwhile?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
281 bra activate_switches_1 ; NO - loop
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
282 bcf trigger_full_second ; YES - clear flag
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
283 decfsz loop_counter,F ; - decrement loop counter, done?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
284 bra activate_switches_1 ; NO - loop
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
285
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
286 ; initialize the averaging system
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
287 movlw .32 ; number of readout cycles
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
288 movwf loop_counter ; initialize loop counter
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
289 activate_switches_2:
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
290 call get_analog_switches ; do a analog switch readout
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
291 decfsz loop_counter,F ; decrement loop counter, done?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
292 bra activate_switches_2 ; NO - loop
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
293
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
294 ; clear all button events that may have intermediately occurred
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
295 bcf PIR1,TMR1IF ; clear button-hold-down timer
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
296 bcf INTCON,INT0IF ; clear right button activity
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
297 bcf INTCON3,INT1IF ; clear left button activity
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
298 bcf analog_sw1_pressed ; clear analog switch 1 activity
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
299 bcf analog_sw2_pressed ; clear analog switch 2 activity
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
300 bcf switch_right ; clear right button event
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
301 bcf switch_left ; clear left button event
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
302
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
303 ; done
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
304 return
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
305
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
306
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
307 check_accelerometer:
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
308 rcall deepsleep_get_accel ; read accelerometer into WREG
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
309 subwf accel_reference,W ; reference value - accel_DZ+0 -> WREG
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
310 btfsc STATUS,N ; result negative?
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
311 negf WREG ; YES - negate it
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
312 movwf lo ; save as change of acceleration in Z-axis
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
313 movlw .50 ; load threshold (mg)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
314 cpfslt lo ; change of acceleration > threshold ?
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
315 bcf deep_sleep ; YES - terminate deep sleep mode
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
316 return ; done
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
317
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
318
490
8dfb93e80338 NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents: 448
diff changeset
319 deepsleep_get_accel:
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
320 call I2C_init_compass ; start compass, required for compass1
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
321 call I2C_init_accelerometer ; start accelerometer, required for compass2
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
322 call I2C_RX_accelerometer ; read accelerometer
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
323 call I2C_sleep_compass ; shut down compass, required for compass1
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
324 call I2C_sleep_accelerometer ; shut down accelerometer, required for compass2
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
325 movff accel_DZ+0,WREG ; transfer result to WREG
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
326 return ; done
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
327
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
328
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
329 pressuretest_sleep_fast: ; get pressure without averaging (faster to save some power in sleep mode)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
330 banksel isr_backup ; select bank ISR data
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
331
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
332 CLRI pressure_abs_avg ; clear pressure average register
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
333 CLRI temperature_avg ; clear temperature average register
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
334
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
335 call get_temperature_start ; start temperature integration (73.5 us)
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
336
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
337 rcall sleepmode_sleep ; wait at least 35 ms (every 62.5 ms timer7 wakeup)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
338 rcall sleepmode_sleep ; wait at least 35 ms (every 62.5 ms timer7 wakeup)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
339
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
340 call get_temperature_value ; state 1: get temperature
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
341 call get_pressure_start ; start pressure integration
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
342
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
343 rcall sleepmode_sleep ; wait at least 35 ms (every 62.5 ms timer7 wakeup)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
344 rcall sleepmode_sleep ; wait at least 35 ms (every 62.5 ms timer7 wakeup)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
345
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
346 call get_pressure_value ; state2: get pressure (51 us)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
347 call calculate_compensation ; calculate temperature compensated pressure (27 us)
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
348
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
349 MOVII pressure_abs_avg,pressure_abs ; get result, bypassing the averaging
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
350
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
351 banksel common ; back to bank common
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
352 return
0
heinrichsweikamp
parents:
diff changeset
353
heinrichsweikamp
parents:
diff changeset
354
heinrichsweikamp
parents:
diff changeset
355 sleepmode_sleep:
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
356 movff BSR,BSR_backup ; backup BSR
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
357 banksel T7GCON ; switch bank, T7* is outside access RAM
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
358 clrf T7GCON ; reset timer7 gate control register
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
359 movlw b'10001101' ; 1:1 prescaler -> 2 seconds @ 32768 Hz, not synced
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
360 movwf T7CON
0
heinrichsweikamp
parents:
diff changeset
361 sleep
198
c511dc403d7e (Slightly) reduce current consumption in Eco and sleep mode
heinrichsweikamp
parents: 134
diff changeset
362 sleep
604
ca4556fb60b9 bump to 2.99beta, work on 3.00 stable
heinrichsweikamp
parents: 582
diff changeset
363 clrf T7GCON ; reset timer7 gate control register
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
364 movlw b'10001001' ; 1:1 prescaler -> 2 seconds @ 32768 Hz, synced
582
b455b31ce022 work on 2.97 stable
heinrichsweikamp
parents: 560
diff changeset
365 movwf T7CON
623
c40025d8e750 3.03 beta released
heinrichsweikamp
parents: 604
diff changeset
366 movff BSR_backup,BSR ; restore BSR
0
heinrichsweikamp
parents:
diff changeset
367 return
heinrichsweikamp
parents:
diff changeset
368
heinrichsweikamp
parents:
diff changeset
369 END