Mercurial > public > hwos_code
annotate src/sleepmode.asm @ 646:5b7fe7777425
3.16 release
author | heinrichs weikamp |
---|---|
date | Thu, 14 Oct 2021 12:03:24 +0200 |
parents | 8c1f1f334275 |
children | bc214815deb2 |
rev | line source |
---|---|
0 | 1 ;============================================================================= |
2 ; | |
634 | 3 ; File sleepmode.asm * combined next generation V3.09.4n |
0 | 4 ; |
623 | 5 ; Sleep Mode |
0 | 6 ; |
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | |
582 | 8 ;============================================================================== |
0 | 9 ; HISTORY |
10 ; 2011-08-12 : [mH] moving from OSTC code | |
11 | |
582 | 12 #include "hwos.inc" ; Mandatory header |
13 #include "shared_definitions.h" ; Mailbox from/to p2_deco.c | |
14 #include "surfmode.inc" | |
15 #include "tft.inc" | |
16 #include "start.inc" | |
17 #include "adc_lightsensor.inc" | |
18 #include "math.inc" | |
19 #include "ms5541.inc" | |
20 #include "eeprom_rs232.inc" | |
21 #include "external_flash.inc" | |
22 #include "ghostwriter.inc" | |
23 #include "i2c.inc" | |
24 #include "mcp.inc" | |
623 | 25 #include "wait.inc" |
629 | 26 #include "tft_outputs.inc" |
0 | 27 |
133
939f1e83c4c2
BUGFIX: Surface interval was not displayed correctly in some cases
heinrichsweikamp
parents:
123
diff
changeset
|
28 |
631 | 29 extern eeprom_deco_data_write |
30 extern option_check_and_store_all | |
623 | 31 extern power_up_switches ; from hwos.asm |
582 | 32 |
33 | |
623 | 34 ;---- Private local Variables ------------------------------------------------- |
133
939f1e83c4c2
BUGFIX: Surface interval was not displayed correctly in some cases
heinrichsweikamp
parents:
123
diff
changeset
|
35 |
582 | 36 CBLOCK local1 ; max size is 16 Byte !!! |
623 | 37 accel_reference ; acceleration reference value for detecting movement / terminating deep sleep |
38 sm_timer_10sec ; timer for 10 seconds tasks (pressure check) | |
39 sm_timer_10min ; timer for 10 minutes tasks (tissue updating) | |
628 | 40 ;sm_timer_15min ; timer for 15 minutes tasks (entering deep sleep) |
41 sm_10min_counter ; count #of 10 minutes | |
623 | 42 loop_counter ; loop counter, used in init_avg_switches routine |
43 sm_flags ; local flags | |
44 ENDC ; used: 6 byte, remaining: 10 byte | |
582 | 45 |
46 | |
623 | 47 ;---- Private local Flags ----------------------------------------------------- |
48 | |
49 #DEFINE deep_sleep sm_flags,0 ; =1: in deep sleep mode, =0: normal sleep | |
50 #DEFINE desat_on_10_mins sm_flags,1 ; =1: calculate desaturation every 10 minutes, =0: every minute | |
628 | 51 #DEFINE charge_in_sleep sm_flags,2 ; =1: show charging screen |
623 | 52 ; sm_flags,3 ; unused |
53 ; sm_flags,4 ; unused | |
54 ; sm_flags,5 ; unused | |
55 ; sm_flags,6 ; unused | |
56 ; sm_flags,7 ; unused | |
57 | |
58 | |
634 | 59 ;============================================================================= |
623 | 60 slmode CODE |
582 | 61 ;============================================================================== |
0 | 62 |
634 | 63 |
64 ;----------------------------------------------------------------------------- | |
65 ; Entry Point for Sleep Mode | |
66 ; | |
0 | 67 global sleeploop |
623 | 68 sleeploop: |
69 clrf STKPTR ; clear return addresses stack | |
70 call request_speed_normal ; request CPU speed switch to normal speed | |
71 | |
72 bcf LEDg ; turn off green LED / release reset to RX circuitry | |
73 bcf LEDr ; turn off red LED | |
604 | 74 |
75 IFDEF _screendump | |
623 | 76 bcf screen_dump_avail ; disable screen dump function |
77 ENDIF | |
78 | |
79 bsf sleepmode ; flag being in sleep mode | |
80 bsf block_sensor_interrupt ; suspend ISR from executing sensor interrupts | |
81 | |
646 | 82 bcf i2c_error_flag ; clear any I2C errors |
83 | |
634 | 84 call disable_ir_s8_analog ; power-down IR/S8/analog interface |
623 | 85 call mcp_sleep ; power-down RX power supply |
604 | 86 |
87 clrf ADCON0 ; power-down ADC module | |
623 | 88 call disable_rs232 ; power-down USB |
89 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
|
90 |
631 | 91 call eeprom_deco_data_write ; update deco data in EEPROM |
92 call eeprom_battery_gauge_write ; update battery gauge in EEPROM | |
93 | |
634 | 94 btfsc option_changed ; do the options need to be stored to EEPROM ? |
631 | 95 call option_check_and_store_all ; YES - check and store all option values in EEPROM |
96 | |
623 | 97 call ext_flash_enable_protection ; enable write protection on external flash |
582 | 98 |
623 | 99 clrf sm_timer_10sec ; clear 10 seconds timer |
100 clrf sm_timer_10min ; clear 10 minutes timer | |
628 | 101 clrf sm_10min_counter ; clear 10mins counter |
623 | 102 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
|
103 |
628 | 104 call TFT_Display_FadeOut ; power-down backlight |
105 call TFT_DisplayOff ; power-down display | |
631 | 106 |
0 | 107 sleeploop_loop: |
623 | 108 btfsc trigger_full_second ; one second in sleep? |
109 rcall one_sec_sleep ; YES - check switches, pressure sensor, etc. | |
582 | 110 |
623 | 111 btfss sleepmode ; shall terminate sleep mode? |
112 bra sleeploop_exit ; YES | |
0 | 113 |
634 | 114 rcall sleepmode_sleep ; sleep for 62.5...125 ms |
582 | 115 |
623 | 116 btfss deep_sleep ; shall enter deep sleep? |
117 bra sleeploop_loop ; NO - remain in normal sleep loop | |
118 ;bra deepsleep_pre ; YES - enter deep sleep loop | |
0 | 119 |
623 | 120 deepsleep_pre: |
634 | 121 bcf PIE1,TMR1IE ; disable timer 1 interrupt |
122 bcf PIE2,TMR3IE ; disable timer 2 interrupt | |
123 bcf PIE5,TMR7IE ; disable timer 7 interrupt | |
640 | 124 bcf PIE5,TMR4IE ; disable timer 4 interrupt |
634 | 125 bcf INTCON, INT0IE ; disable INT0 interrupt |
126 bcf INTCON3,INT1IE ; disable INT1 interrupt | |
0 | 127 |
623 | 128 bcf power_sw1 ; power-down switch 1 |
129 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
|
130 |
604 | 131 rcall deepsleep_get_accel ; read accelerometer into WREG |
623 | 132 movwf accel_reference ; store as reference value |
628 | 133 tstfsz accel_reference ; = 0 ? |
134 bra deepsleep_loop ; NO - continue | |
135 bra deepsleep_loop_exit ; YES - no deep sleep (fail-safe) | |
490
8dfb93e80338
NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents:
448
diff
changeset
|
136 |
582 | 137 deepsleep_loop: |
623 | 138 btfsc trigger_full_second ; one second in deep sleep? |
139 rcall check_accelerometer ; YES - check accelerometer | |
140 | |
141 btfsc trigger_full_second ; one second in deep sleep? | |
142 rcall one_sec_sleep ; YES - check switches, check pressure sensor, etc. | |
143 | |
634 | 144 rcall sleepmode_sleep ; sleep for 62.5...125 ms |
623 | 145 |
146 btfss sleepmode ; shall leave sleep mode? | |
147 bcf deep_sleep ; YES - leave deep sleep mode then, too | |
148 | |
149 btfsc deep_sleep ; shall leave deep sleep mode? | |
150 bra deepsleep_loop ; NO - loop in deep sleep loop | |
151 | |
628 | 152 deepsleep_loop_exit: |
153 bcf deep_sleep ; clear flag (again) | |
154 clrf sm_10min_counter ; clear 10mins counter | |
623 | 155 call power_up_switches ; turn on the analog switches |
156 rcall init_avg_switches ; initialize the averaging system | |
157 | |
634 | 158 bsf PIE1,TMR1IE ; enable timer 1 interrupt |
159 bsf PIE2,TMR3IE ; enable timer 2 interrupt | |
160 bsf PIE5,TMR7IE ; enable timer 7 interrupt | |
640 | 161 bsf PIE5,TMR4IE ; enable timer 4 interrupt |
634 | 162 bsf INTCON, INT0IE ; enable INT0 interrupt |
163 bsf INTCON3,INT1IE ; enable INT1 interrupt | |
623 | 164 |
165 bra sleeploop_loop ; enter normal sleep loop | |
166 | |
167 sleeploop_exit: | |
168 bcf switch_left ; eventually clear left button event | |
169 bcf switch_right ; eventually clear right button event | |
170 movlw .0 ; reset ISR sensor state machine | |
171 movff WREG,sensor_state_counter ; ... | |
172 bcf PIR5,TMR7IF ; clear timer 7, driving the ISR sensor interrupts | |
173 bcf block_sensor_interrupt ; re-enable execution of the ISR sensor interrupts | |
174 goto restart ; restart | |
175 | |
176 | |
634 | 177 ;----------------------------------------------------------------------------- |
178 ; Helper Function - Tasks every Second in Sleep Mode | |
179 ; | |
623 | 180 one_sec_sleep: |
181 bcf trigger_full_second ; clear trigger flag | |
182 | |
183 btfsc switch_left ; left switch pressed? | |
184 bcf sleepmode ; YES - terminate sleep mode | |
185 | |
186 btfsc switch_right ; right switch pressed? | |
187 bcf sleepmode ; YES - terminate sleep mode | |
582 | 188 |
623 | 189 btfsc battery_gauge_available ; is a battery gauge IC available? |
190 bra one_sec_sleep_1 ; YES - check for charger | |
629 | 191 btfsc ble_available ; Skip "USB" check in all Bluetooth models (Required for very old OSTC sport) |
192 bra one_sec_sleep_2 ; - continue | |
623 | 193 btfsc vusb_in ; NO - USB plugged in? |
194 bcf sleepmode ; YES - terminate sleep mode | |
195 bra one_sec_sleep_2 ; - continue | |
196 | |
197 one_sec_sleep_1: | |
198 call get_battery_voltage ; check for charger | |
199 | |
628 | 200 ; Test if charging |
201 btfss cc_active ; charging? | |
202 bra one_sec_sleep_1a ; NO | |
203 btfsc charge_in_sleep ; YES - already showing charge screen? | |
204 bra one_sec_sleep_1b ; YES - only update data | |
205 | |
634 | 206 bsf charge_in_sleep |
207 bcf deep_sleep ; wake-up from deepsleep | |
628 | 208 call TFT_boot ; initialize TFT (includes clear screen) |
209 movlw .32 | |
210 movff WREG,max_CCPR1L ; bank safe | |
211 call TFT_Display_FadeIn ; dim up the display | |
212 one_sec_sleep_1b: | |
634 | 213 call TFT_surfmode_batt ; show battery type, voltage and color-coded percentage |
628 | 214 bra one_sec_sleep_2 ; continue |
215 | |
216 one_sec_sleep_1a: | |
217 btfss charge_in_sleep ; was showing charge screen? | |
218 bra one_sec_sleep_2 ; NO | |
219 | |
220 ; yes, power-down screen | |
221 call TFT_Display_FadeOut ; power-down backlight | |
222 call TFT_DisplayOff ; power-down display | |
223 bcf charge_in_sleep | |
224 | |
225 | |
623 | 226 one_sec_sleep_2: |
227 incf sm_timer_10sec,F ; increment 10 seconds timer | |
228 movlw .10 ; load a 10 into WREG | |
229 cpfslt sm_timer_10sec ; timer < 10 yet? | |
230 rcall ten_sec_sleep ; NO - do the every 10 second tasks | |
231 | |
232 btfsc trigger_full_minute ; one minute in sleep? | |
233 rcall one_min_sleep ; YES - do the every minute tasks | |
234 | |
235 btfsc trigger_full_hour ; one hour in sleep? | |
236 rcall one_hour_sleep ; YES - do the every hour tasks | |
237 | |
646 | 238 ; sleepmode pressure sampling for new sensor is done here |
239 btfss press_sensor_type ; New sensor found? | |
240 return ; No, done. | |
241 | |
242 btfsc ms5837_state ; =0: result of temperature is in the ADC | |
243 bra one_sec_sleep_3 | |
244 call I2C_get_temp_val_MS5837 ; (Will set ms5837_state) | |
245 return | |
246 one_sec_sleep_3: | |
247 call I2C_get_press_val_MS5837 ; (Will clear ms5837_state) | |
623 | 248 return ; done |
490
8dfb93e80338
NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents:
448
diff
changeset
|
249 |
623 | 250 |
634 | 251 ;----------------------------------------------------------------------------- |
252 ; Helper Function - Tasks every 10 Seconds in Sleep Mode | |
253 ; | |
623 | 254 ten_sec_sleep: |
255 ; tasks every 10 seconds in sleep mode | |
256 clrf sm_timer_10sec ; clear timer | |
257 rcall pressuretest_sleep_fast ; get pressure without averaging (faster) | |
258 MOVLI wake_up_from_sleep,sub_a ; load wake-up pressure (1160 mbar) into sub_a | |
259 MOVII pressure_abs, sub_b ; load current absolute pressure into sub_b | |
260 call cmpU16 ; sub_a - sub_b = wake-up pressure - current absolute pressure | |
261 btfsc neg_flag ; is the current absolute pressure > 1160 mbar ? | |
262 bcf sleepmode ; YES - terminate sleep mode | |
263 return ; done | |
264 | |
265 | |
634 | 266 ;----------------------------------------------------------------------------- |
267 ; Helper Function - Tasks every Minute in Sleep Mode | |
268 ; | |
623 | 269 one_min_sleep: |
270 ; tasks every minute in sleep mode | |
271 bcf trigger_full_minute ; clear flag | |
272 | |
273 ; tick the 10 minutes timer | |
274 incf sm_timer_10min,F ; increment 10 minutes timer | |
275 movlw .10 ; load a 10 into WREG | |
276 cpfslt sm_timer_10min ; timer < 10 yet? | |
277 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
|
278 |
623 | 279 one_min_sleep_1: |
280 ; continue tasks every minute | |
281 btfsc desat_on_10_mins ; shall do desaturation calculation on 10 minute intervals? | |
282 return ; YES - that's not here then, so done | |
283 call deco_calc_dive_interval_1min ; NO - calculate 1 minute at surface conditions (C-code) | |
284 banksel common ; - back to bank common | |
285 return ; - done | |
286 | |
287 | |
634 | 288 ;----------------------------------------------------------------------------- |
289 ; Helper Function - Tasks every 10 Minutes in Sleep Mode | |
290 ; | |
623 | 291 ten_min_sleep: |
292 ; tasks every 10 minutes in sleep mode | |
293 clrf sm_timer_10min ; reset timer to 0 | |
294 | |
295 call sample_surface_pressure ; sample surface pressure and update ISR and deco engine | |
296 | |
628 | 297 btfss analog_switches ; OSTC with analog switches? |
298 bra ten_min_sleep_0 ; NO - no analog switches, no deep sleep required | |
299 | |
300 ; check if we need to enter deep sleep | |
301 incf sm_10min_counter,F ; count | |
302 movlw deep_sleep_10mins ; threshold | |
303 cpfseq sm_10min_counter ; threshold reached? | |
304 bra ten_min_sleep_0 ; NO - threshold not reached yet | |
305 | |
306 decf sm_10min_counter,F ; -1 to re-trigger every 10mins (in case of charging) | |
307 | |
308 btfss cc_active ; charging? | |
309 bsf deep_sleep ; NO - activate deep-sleep mode | |
310 | |
311 ten_min_sleep_0: | |
623 | 312 btfss desat_on_10_mins ; shall do desaturation calculation on 10 minute intervals? |
313 bra ten_min_sleep_1 ; NO - continue checking if schedule can be switched to 10 minutes | |
314 call deco_calc_dive_interval_10min ; YES - calculate 10 minutes at surface conditions (C-code) | |
315 banksel common ; - back to bank common | |
316 return ; - done | |
317 | |
318 ten_min_sleep_1: | |
319 movff int_O_lead_supersat+0,WREG ; get leading tissue's supersaturation (only the lower byte is used for the value) | |
320 bsf desat_on_10_mins ; switch to 10 minute intervals by default | |
321 tstfsz WREG ; gradient factor = 0 ? | |
322 bcf desat_on_10_mins ; NO - stay on 1 minute intervals | |
323 return ; done | |
324 | |
582 | 325 |
634 | 326 ;----------------------------------------------------------------------------- |
327 ; Helper Function - Tasks every Hour in Sleep Mode | |
328 ; | |
623 | 329 one_hour_sleep: |
330 ; tasks every hour in sleep mode mode | |
331 bcf trigger_full_hour ; clear one hour flag | |
631 | 332 call eeprom_deco_data_write ; update deco data into EEPROM |
333 call eeprom_battery_gauge_write ; update battery gauge into EEPROM | |
628 | 334 return ; done |
623 | 335 |
490
8dfb93e80338
NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents:
448
diff
changeset
|
336 |
634 | 337 ;----------------------------------------------------------------------------- |
338 ; Helper Function - Initialization of the Button Event Averaging System | |
339 ; | |
623 | 340 init_avg_switches: |
341 ; pause 4 seconds using CPU sleep mode to conserve on battery | |
342 movlw .4 ; time to pause | |
343 movwf loop_counter ; initialize loop counter | |
344 bcf trigger_full_second ; clear 'one second elapsed' flag | |
345 activate_switches_1: | |
634 | 346 rcall sleepmode_sleep ; sleep for 62.5...125 ms |
623 | 347 btfss trigger_full_second ; did 1 second elapsed meanwhile? |
348 bra activate_switches_1 ; NO - loop | |
349 bcf trigger_full_second ; YES - clear flag | |
350 decfsz loop_counter,F ; - decrement loop counter, done? | |
351 bra activate_switches_1 ; NO - loop | |
352 | |
353 ; initialize the averaging system | |
354 movlw .32 ; number of readout cycles | |
355 movwf loop_counter ; initialize loop counter | |
356 activate_switches_2: | |
357 call get_analog_switches ; do a analog switch readout | |
358 decfsz loop_counter,F ; decrement loop counter, done? | |
359 bra activate_switches_2 ; NO - loop | |
360 | |
361 ; clear all button events that may have intermediately occurred | |
362 bcf PIR1,TMR1IF ; clear button-hold-down timer | |
634 | 363 bcf INTCON, INT0IF ; clear right button activity |
623 | 364 bcf INTCON3,INT1IF ; clear left button activity |
365 bcf analog_sw1_pressed ; clear analog switch 1 activity | |
366 bcf analog_sw2_pressed ; clear analog switch 2 activity | |
367 bcf switch_right ; clear right button event | |
368 bcf switch_left ; clear left button event | |
369 | |
634 | 370 return ; done |
623 | 371 |
372 | |
634 | 373 ;----------------------------------------------------------------------------- |
374 ; Helper Function - Check for Change in Accelerometer Z-Axis | |
375 ; | |
623 | 376 check_accelerometer: |
604 | 377 rcall deepsleep_get_accel ; read accelerometer into WREG |
623 | 378 subwf accel_reference,W ; reference value - accel_DZ+0 -> WREG |
604 | 379 btfsc STATUS,N ; result negative? |
380 negf WREG ; YES - negate it | |
623 | 381 movwf lo ; save as change of acceleration in Z-axis |
628 | 382 movlw .100 ; load threshold (mg) |
623 | 383 cpfslt lo ; change of acceleration > threshold ? |
384 bcf deep_sleep ; YES - terminate deep sleep mode | |
385 return ; done | |
490
8dfb93e80338
NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents:
448
diff
changeset
|
386 |
582 | 387 |
634 | 388 ;----------------------------------------------------------------------------- |
389 ; Helper Function - read Accelerometer Z-Axis | |
390 ; | |
490
8dfb93e80338
NEW: Deep Sleep mode for OSTC Plus and OSTC 2 (2017) (Entered automatically)
heinrichsweikamp
parents:
448
diff
changeset
|
391 deepsleep_get_accel: |
628 | 392 call I2C_init_compass ; start compass |
634 | 393 rcall sleepmode_sleep ; sleep for 62.5...125 ms |
604 | 394 call I2C_RX_accelerometer ; read accelerometer |
628 | 395 call I2C_RX_accelerometer ; read accelerometer |
396 call I2C_sleep_compass ; shut down compass | |
623 | 397 movff accel_DZ+0,WREG ; transfer result to WREG |
398 return ; done | |
399 | |
400 | |
634 | 401 ;----------------------------------------------------------------------------- |
402 ; Helper Function - read Pressure without Averaging | |
403 ; | |
404 ; faster method to save some power in sleep mode | |
405 ; | |
406 pressuretest_sleep_fast: | |
623 | 407 banksel isr_backup ; select bank ISR data |
408 | |
646 | 409 clrf pressure_abs_avg+0 ; clear pressure average register |
410 clrf pressure_abs_avg+1 | |
411 clrf pressure_abs_avg+2 | |
412 | |
623 | 413 CLRI temperature_avg ; clear temperature average register |
414 | |
415 call get_temperature_start ; start temperature integration (73.5 us) | |
582 | 416 |
634 | 417 rcall sleepmode_sleep ; sleep for 62.5...125 ms |
418 rcall sleepmode_sleep ; sleep for 62.5...125 ms | |
623 | 419 |
646 | 420 call get_temperature_value ; get temperature... (May return in bank common) |
421 banksel isr_backup ; select bank ISR data | |
623 | 422 call get_pressure_start ; start pressure integration |
423 | |
634 | 424 rcall sleepmode_sleep ; sleep for 62.5...125 ms |
425 rcall sleepmode_sleep ; sleep for 62.5...125 ms | |
623 | 426 |
646 | 427 call get_pressure_value ; state2: get pressure (51 us)(May return in bank common) |
428 banksel isr_backup ; select bank ISR data | |
623 | 429 call calculate_compensation ; calculate temperature compensated pressure (27 us) |
430 | |
431 MOVII pressure_abs_avg,pressure_abs ; get result, bypassing the averaging | |
432 | |
433 banksel common ; back to bank common | |
582 | 434 return |
0 | 435 |
436 | |
634 | 437 ;----------------------------------------------------------------------------- |
438 ; Helper Function - sleep for 62.5...125 ms | |
439 ; | |
0 | 440 sleepmode_sleep: |
634 | 441 movff BSR,BSR_backup ; backup current bank selection |
442 banksel common ; switch to bank common | |
628 | 443 btfsc charge_in_sleep ; already showing charge screen? |
634 | 444 bra sleepmode_sleepwalk ; YES - skip the actual sleep (but wait) |
445 sleep ; NO - put CPU into sleep (wakes up by timer 7 IRQ) | |
446 sleep ; - put CPU into sleep again | |
628 | 447 sleepmode_sleep_1: |
634 | 448 movff BSR_backup,BSR ; restore bank selection |
449 return ; done | |
628 | 450 |
451 sleepmode_sleepwalk: | |
634 | 452 WAITMS d'65' ; wait 65 ms |
453 bra sleepmode_sleep_1 ; continue with common part | |
628 | 454 |
634 | 455 ;----------------------------------------------------------------------------- |
456 | |
457 END |