Mercurial > public > hwos_code
annotate src/surfmode.asm @ 489:22092d14fd8c
docu (battery info byte)
| author | heinrichsweikamp |
|---|---|
| date | Mon, 27 Mar 2017 16:06:09 +0200 |
| parents | 5c7bee6df71c |
| children | bef07a837a60 |
| rev | line source |
|---|---|
| 0 | 1 ;============================================================================= |
| 2 ; | |
| 3 ; File surfmode.asm | |
| 4 ; | |
| 5 ; Surfacemode | |
| 6 ; | |
| 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | |
| 8 ;============================================================================= | |
| 9 ; HISTORY | |
| 10 ; 2011-08-07 : [mH] moving from OSTC code | |
| 11 | |
| 275 | 12 #include "hwos.inc" ; Mandatory header |
| 0 | 13 #include "shared_definitions.h" ; Mailbox from/to p2_deco.c |
| 14 #include "start.inc" | |
| 15 #include "tft.inc" | |
| 16 #include "tft_outputs.inc" | |
| 17 #include "isr.inc" | |
| 18 #include "adc_lightsensor.inc" | |
| 19 #include "menu_processor.inc" | |
| 20 #include "strings.inc" | |
| 21 #include "sleepmode.inc" | |
| 22 #include "wait.inc" ; speed_* | |
| 23 #include "external_flash.inc" | |
| 24 #include "customview.inc" | |
| 25 #include "divemode.inc" | |
| 26 #include "mcp.inc" ; RX | |
| 27 #include "i2c.inc" | |
| 28 #include "comm.inc" | |
| 29 #include "eeprom_rs232.inc" | |
| 113 | 30 #include "calibrate.inc" |
| 0 | 31 |
| 213 | 32 extern do_main_menu |
| 33 | |
| 0 | 34 #DEFINE menu_pos_row .215 |
| 213 | 35 #DEFINE menu_pos_column .1 |
| 0 | 36 #DEFINE view_row .215 |
| 37 #DEFINE view_column .124 | |
| 38 | |
| 39 gui CODE | |
| 40 | |
| 41 | |
| 42 ;============================================================================= | |
| 43 ; Boot tasks for all modes | |
| 44 global surfloop | |
| 45 surfloop: | |
| 46 call speed_normal | |
| 47 bcf no_sensor_int ; Normal pressure mode | |
| 48 | |
| 245 | 49 bcf LEDg |
| 50 bcf LEDr | |
| 51 | |
| 0 | 52 clrf CCP1CON ; stop PWM |
| 53 bcf PORTC,2 ; Pull PWM output to GND | |
| 54 call TFT_boot ; Initialize TFT (includes clear screen) | |
| 55 bcf restore_deco_data | |
| 56 | |
| 57 WIN_TOP .50 | |
| 58 WIN_LEFT .10 | |
| 59 movlw LOW 0x1E000 | |
| 60 movwf TBLPTRL | |
| 61 movlw HIGH 0x1E000 | |
| 62 movwf TBLPTRH | |
| 63 movlw UPPER 0x1E000 | |
| 64 movwf TBLPTRU | |
| 65 extern color_image | |
| 66 call color_image ; Show logo | |
| 67 | |
| 68 WIN_TOP .100 | |
| 69 WIN_LEFT .34 | |
| 275 | 70 extern ostc_logo_block |
| 71 movlw LOW(ostc_logo_block) | |
| 0 | 72 movwf TBLPTRL |
| 275 | 73 movlw HIGH ostc_logo_block;&0xFFFF |
| 0 | 74 movwf TBLPTRH |
| 275 | 75 movlw UPPER(ostc_logo_block) |
| 0 | 76 movwf TBLPTRU |
| 77 call color_image | |
| 78 call TFT_Display_FadeIn ; Show splash | |
| 79 call TFT_serial ; Show serial and firmware version | |
| 80 | |
| 81 ;---- Do any usefull initializes that takes time ------------------------- | |
| 82 call restart_set_modes_and_flags ; Sets decomode flags | |
| 83 bcf pressure_refresh | |
| 84 call I2C_init_compass | |
| 85 call I2C_init_accelerometer | |
| 86 clrf ext_flash_address+0 | |
| 87 clrf ext_flash_address+1 | |
| 88 clrf ext_flash_address+2 | |
| 89 | |
| 354 | 90 movlw surface_sp ; in cbar |
| 91 call transmit_setpoint ; Transmit current setpoint from WREG (in cbar) to external electronics | |
|
221
90923a081ae7
minor: configure buttons during splash screen
heinrichsweikamp
parents:
213
diff
changeset
|
92 |
| 0 | 93 clrf timeout_counter2 |
| 94 clrf timeout_counter3 | |
| 95 bcf menubit ; clear menu flag | |
| 382 | 96 bcf premenu |
| 0 | 97 clrf last_pressure+0 |
| 98 clrf last_pressure+1 | |
| 99 bcf is_bailout ; =1: Bailout | |
| 100 bcf ccr_diluent_setup ; Use OC gases for gaslist routine | |
| 101 | |
| 102 bcf simulatormode_active ; Quit simulator mode (if active) | |
| 103 bcf switch_left | |
| 104 bcf switch_right | |
| 105 | |
| 106 ;---- Fade to standard surface view -------------------------------------- | |
| 107 ; Wait 1 second | |
| 108 bcf onesecupdate | |
| 109 btfss onesecupdate | |
| 110 bra $-2 | |
| 111 ; Wait 1 second | |
| 112 bcf onesecupdate | |
| 113 btfss onesecupdate | |
| 114 bra $-2 | |
| 115 | |
| 116 call TFT_Display_FadeOut ; Go to black screen | |
| 117 call TFT_ClearScreen ; Then change everything | |
| 118 WIN_TOP .0 | |
| 119 WIN_LEFT .0 | |
| 120 WIN_FONT FT_SMALL | |
|
189
e79bc535ef9e
ignore un-calibrated sensors even if they become valid
heinrichsweikamp
parents:
188
diff
changeset
|
121 bcf win_invert ; Reset invert flag |
| 0 | 122 |
| 123 WIN_COLOR color_lightblue | |
| 124 WIN_SMALL menu_pos_column,menu_pos_row | |
| 125 STRCPY_TEXT_PRINT tMenu ;"<Menu" | |
| 126 WIN_SMALL view_column,view_row | |
| 127 STRCPY_TEXT_PRINT tView ;"View>" | |
| 128 call TFT_standard_color | |
| 129 | |
| 48 | 130 ; Logo |
| 0 | 131 WIN_TOP .0 |
| 132 WIN_LEFT .70 | |
| 275 | 133 movlw LOW(ostc_logo_block) |
| 0 | 134 movwf TBLPTRL |
| 275 | 135 movlw HIGH ostc_logo_block;&0xFFFF |
| 0 | 136 movwf TBLPTRH |
| 275 | 137 movlw UPPER(ostc_logo_block) |
| 0 | 138 movwf TBLPTRU |
| 139 call color_image | |
| 140 | |
| 158 | 141 call TFT_clock ; display time |
| 142 call update_surfloop60 | |
| 143 call get_battery_voltage ; get battery voltage | |
| 144 call TFT_update_batt_voltage ; display battery voltage | |
| 145 call TFT_update_surf_press ; display surface pressure | |
| 146 call TFT_temp_surfmode ; Displays temperature | |
| 147 call TFT_display_decotype_surface | |
|
375
a9e35c1327aa
1.88 release, BUGFIX: Start with Sensor use from sleep (cR only), CHANGE: Apply button settings when button menu is closed, NEW: Reset button settings on a magnet reset (cR and OSTC 2)
heinrichsweikamp
parents:
354
diff
changeset
|
148 call compute_ppo2 ; compute mv_sensorX and ppo2_sensorX arrays |
|
a9e35c1327aa
1.88 release, BUGFIX: Start with Sensor use from sleep (cR only), CHANGE: Apply button settings when button menu is closed, NEW: Reset button settings on a magnet reset (cR and OSTC 2)
heinrichsweikamp
parents:
354
diff
changeset
|
149 call check_sensors ; Set enable/disable flags |
|
234
57155164faad
Show OSTC2-like active gas boxes in surface mode
heinrichsweikamp
parents:
233
diff
changeset
|
150 |
|
480
ad8acade5567
NEW: PSCR mode (Passive semi-closed rebreather)
heinrichsweikamp
parents:
476
diff
changeset
|
151 movff opt_dive_mode,lo ; 0=OC, 1=CC, 2=Gauge, 3=Apnea, 4=PSCR |
| 232 | 152 tstfsz lo |
| 153 bra surfloop_no_oc ; Not OC | |
|
234
57155164faad
Show OSTC2-like active gas boxes in surface mode
heinrichsweikamp
parents:
233
diff
changeset
|
154 call TFT_show_OC_startgas_surface; Show first gas and "OSTC2-like" active gases |
| 232 | 155 surfloop_no_oc: |
| 158 | 156 movff customview_surfmode,menupos3 ; Reload last customview |
| 157 call surf_customview_mask ; Update #menupos3 view | |
| 0 | 158 |
| 159 call TFT_Display_FadeIn ; Display resulting surface screen. | |
| 160 | |
| 161 ;---- Late initialisations ----------------------------------------------- | |
| 162 movff last_surfpressure_30min+0,int_I_pres_respiration+0 ; copy surface air pressure to deco routine | |
| 163 movff last_surfpressure_30min+1,int_I_pres_respiration+1 ; 30min old values | |
| 164 movff last_surfpressure_30min+0,int_I_pres_surface+0 ; copy surface air pressure to deco routine | |
| 165 movff last_surfpressure_30min+1,int_I_pres_surface+1 ; 30min old values | |
| 166 movff last_surfpressure_30min+0,last_surfpressure+0 ; Use 30min old airpressure | |
| 167 movff last_surfpressure_30min+1,last_surfpressure+1 ; Use 30min old airpressure | |
| 168 | |
| 158 | 169 ; Startup tasks for all modes |
| 0 | 170 ; Desaturation time needs: |
| 171 ; int_I_pres_surface | |
| 172 ; char_I_desaturation_multiplier | |
| 173 call deco_calc_desaturation_time ; calculate desaturation time | |
| 174 movlb b'00000001' ; select ram bank 1 | |
| 175 | |
| 176 btfsc enable_screen_dumps ; =1: Ignore vin_usb, wait for "l" command (Screen dump) | |
| 177 call enable_rs232 ; Also sets to speed_normal ... | |
| 178 | |
| 179 surfloop_loop: | |
| 180 btfss onesecupdate ; do every second tasks? | |
| 181 bra surfloop_loop2 ; no, loop | |
| 182 | |
| 183 ; One Second tasks for all modes | |
| 184 call speed_normal | |
| 487 | 185 ;call TFT_debug_output |
| 0 | 186 call TFT_clock ; update clock |
| 187 call timeout_surfmode ; check timeout | |
| 188 call get_battery_voltage ; get battery voltage | |
| 189 call TFT_update_batt_voltage ; display battery voltage | |
| 190 call set_dive_modes ; tests if depth>threshold | |
| 191 btfss secs,0 ; Every two seconds... | |
| 192 call TFT_temp_surfmode ; Displays temperature | |
| 193 btfss secs,0 ; Every two seconds... | |
| 194 call surfmode_check_for_warnings ; ... check for warnings (and display/update) them | |
| 195 | |
| 196 bcf onesecupdate ; every second tasks done | |
| 197 | |
| 198 surfloop_loop2: | |
| 199 ; Tasks approx. every 50ms for all modes | |
| 200 call test_switches_surfmode ; check switches | |
| 487 | 201 call TFT_debug_output |
| 0 | 202 |
| 203 ; One minute tasks for all modes | |
| 204 btfsc oneminupdate ; do every minute tasks | |
| 205 call update_surfloop60 ; yes, e.g. update time and date | |
| 206 | |
| 207 ; Mode tasks | |
|
230
f6548e8f06f5
Bugfix: Check for divemode before checking for menu
mh@mh-THINK
parents:
226
diff
changeset
|
208 btfsc divemode ; Divemode active? |
|
f6548e8f06f5
Bugfix: Check for divemode before checking for menu
mh@mh-THINK
parents:
226
diff
changeset
|
209 goto diveloop ; Yes, switch into Divemode! |
|
f6548e8f06f5
Bugfix: Check for divemode before checking for menu
mh@mh-THINK
parents:
226
diff
changeset
|
210 |
| 0 | 211 btfsc menubit ; Menu? |
| 212 goto do_main_menu ; Menu! | |
| 213 | |
| 214 btfsc pressure_refresh ; new pressure available? | |
| 215 call TFT_update_surf_press ; display surface pressure | |
| 216 bcf pressure_refresh ; until new pressure is available | |
| 217 | |
|
188
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
218 ; Updates every 1/4 second |
| 0 | 219 btfss quarter_second_update |
|
476
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
220 bra surfloop_loop2b |
|
188
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
221 |
| 0 | 222 bcf quarter_second_update |
|
476
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
223 |
|
188
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
224 ; Update Sensors |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
225 call compute_ppo2 ; compute mv_sensorX and ppo2_sensorX arrays |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
226 call check_sensors ; Set enable/disable flags |
| 485 | 227 btfsc FLAG_ccr_mode ; In CCR mode? |
| 228 bra surfloop_loop2a1 ; Yes. | |
| 229 btfss FLAG_pscr_mode ; In PSCR mode? | |
|
476
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
230 bra surfloop_loop2a ; No, skip |
| 485 | 231 |
| 232 surfloop_loop2a1: | |
|
476
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
233 movff opt_ccr_mode,WREG ; =0: Fixed SP, =1: Sensor, =2: Auto SP |
|
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
234 sublw .1 ; opt_ccr_mode = 1 (Sensor)? |
|
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
235 bnz surfloop_loop2a ; No, skip |
|
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
236 |
|
188
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
237 call TFT_surface_sensor ; ...update sensor data in surface mode |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
238 |
|
476
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
239 surfloop_loop2a: |
| 0 | 240 movlw .6 |
| 241 cpfseq menupos3 ; in compass view? | |
|
476
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
242 bra surfloop_loop2b ; No |
|
256
5b4ef0b9090d
place compass display code into compass_ops.asm
heinrichsweikamp
parents:
245
diff
changeset
|
243 extern TFT_surface_compass_heading |
| 0 | 244 call TFT_surface_compass_heading ; Yes, update compass heading value |
| 245 | |
|
476
7c10557c248e
no sensors in surface mode if the computer has no sensor inputs
heinrichsweikamp
parents:
382
diff
changeset
|
246 surfloop_loop2b: |
| 0 | 247 btfsc toggle_customview ; Next view? |
| 248 call surf_customview_toggle ; Yes, show next customview (and delete this flag) | |
| 249 | |
| 250 btfsc enable_screen_dumps ; =1: Ignore vin_usb, wait for "l" command (Screen dump) | |
| 251 bra surfloop_loop3 | |
| 252 btfsc vusb_in ; USB plugged in? | |
| 113 | 253 call comm_mode ; Start COMM mode |
| 0 | 254 bra surfloop_loop4 |
| 255 surfloop_loop3: | |
| 256 btfss vusb_in ; USB (still) plugged in? | |
| 257 bcf enable_screen_dumps ; No, clear flag | |
| 258 call rs232_get_byte | |
| 259 btfsc rs232_recieve_overflow | |
| 260 bra surfloop_loop4 | |
| 261 movlw "l" | |
| 262 cpfseq RCREG1 | |
| 263 bra surfloop_loop4 | |
| 264 call TFT_dump_screen ; Dump the screen contents | |
| 265 surfloop_loop4: | |
| 266 btfsc sleepmode ; Sleepmode active? | |
| 267 goto sleeploop ; Yes, switch into sleepmode! | |
| 268 | |
| 269 bra surfloop_loop ; loop surfacemode | |
| 270 | |
| 271 update_surfloop60: | |
| 272 ; One minute tasks for all modes | |
| 273 call TFT_date ; Update date | |
| 274 call calc_deko_surfmode ; calculate desaturation every minute | |
| 275 bcf oneminupdate | |
| 276 return | |
| 277 | |
| 278 extern check_cns_violation,check_warn_battery,check_and_store_gf_violation | |
| 279 surfmode_check_for_warnings: | |
| 280 movf warning_counter_backup,W | |
| 281 cpfseq warning_counter ; warning_counter_backup = warning_counter? | |
| 282 call TFT_clear_warning_text ; No, clear all warnings | |
| 283 movff warning_counter,warning_counter_backup ; copy warning_counter | |
| 284 | |
| 285 bcf warning_active ; Clear flag | |
| 286 clrf warning_counter ; Clear counter | |
| 287 | |
| 288 ; Warnings for all modes | |
| 289 call check_warn_battery ; Check if the battery level should be displayed/warned | |
| 205 | 290 rcall surfmode_check_for_nofly ; Check if nofly time should be shown |
| 291 rcall surfmode_check_for_desat ; Check if desat time should be shown | |
| 292 rcall surfmode_check_for_interval ; Check if surface interval should be shown | |
| 0 | 293 |
| 294 btfsc FLAG_apnoe_mode ; Done for Apnoe or Gauge mode | |
| 295 bra surfmode_check_for_warnings2 | |
| 296 btfsc FLAG_gauge_mode ; Done for Apnoe or Gauge mode | |
| 297 bra surfmode_check_for_warnings2 | |
| 298 | |
| 299 ; Warnings only in deco modes | |
| 300 call check_cns_violation ; Check CNS value and display it, if required | |
| 301 call check_and_store_gf_violation ; Check GF value and display it, if required | |
| 302 | |
| 303 surfmode_check_for_warnings2: | |
| 304 ; Setup warning_page number | |
| 305 incf warning_page,F | |
| 306 bcf STATUS,C | |
| 307 rlcf warning_page,W ; *2 | |
| 308 cpfsgt warning_counter ; > warning_counter | |
| 309 clrf warning_page ; No, clear | |
| 310 | |
| 311 ; Clear 2nd row of warnings if there is nothing to show (on this page) | |
| 312 btfss second_row_warning ; =1: The second row contains a warning | |
| 313 call TFT_clear_warning_text_2nd_row ; No, clear this row | |
| 314 return ; Done. | |
| 315 | |
| 316 surfmode_check_for_interval: | |
| 317 movf surface_interval+0,W ; Is interval null ? | |
|
133
939f1e83c4c2
BUGFIX: Surface interval was not displayed correctly in some cases
heinrichsweikamp
parents:
113
diff
changeset
|
318 iorwf surface_interval+1,W |
| 0 | 319 bnz surfmode_check_for_interval2 ; No |
| 320 return | |
| 321 surfmode_check_for_interval2: | |
| 322 incf warning_counter,F ; increase counter | |
| 323 call TFT_interval | |
| 324 return | |
| 325 | |
| 326 | |
| 327 surfmode_check_for_desat: | |
| 328 movf desaturation_time+0,W ; Is nofly null ? | |
| 329 iorwf desaturation_time+1,W | |
| 330 bnz surfmode_check_for_desat2 ; No | |
| 331 return | |
| 332 surfmode_check_for_desat2: | |
| 333 incf warning_counter,F ; increase counter | |
| 334 call TFT_desaturation_time | |
| 335 return | |
| 336 | |
| 337 surfmode_check_for_nofly: | |
| 338 movf nofly_time+0,W ; Is nofly null ? | |
| 339 iorwf nofly_time+1,W | |
| 340 bnz surfmode_check_for_nofly2 ; No... | |
| 341 return | |
| 342 surfmode_check_for_nofly2: | |
| 343 incf warning_counter,F ; increase counter | |
| 344 call TFT_nofly_time | |
| 345 return | |
| 346 | |
| 347 | |
| 348 ;============================================================================= | |
| 349 global calc_deko_surfmode | |
| 350 calc_deko_surfmode: | |
| 351 SAFE_2BYTE_COPY amb_pressure,int_I_pres_respiration ; copy surface air pressure to deco routine | |
| 352 call deco_calc_wo_deco_step_1_min ; calculate deco in surface mode | |
| 353 banksel common | |
| 354 return | |
| 355 | |
| 356 test_switches_surfmode: ; checks switches in surfacemode | |
| 357 btfsc switch_right | |
| 358 bra test_switches_surfmode2 | |
| 359 btfsc switch_left | |
| 360 bra test_switches_surfmode3 | |
| 361 | |
| 362 ; No button press | |
| 363 return | |
| 364 | |
| 365 test_switches_surfmode3: | |
| 382 | 366 movlw .6 |
| 367 cpfseq menupos3 ; in compass view? | |
| 368 bra test_switches_surfmode3a ; No | |
| 369 | |
| 370 btfsc premenu ; already shown "Bearing" | |
| 371 bra test_switches_surfmode3b ; Yes, remove it | |
| 372 | |
| 373 extern TFT_surf_set_bearing | |
| 374 call TFT_surf_set_bearing ; Yes. | |
| 375 bcf switch_left | |
| 376 return | |
| 377 | |
| 378 test_switches_surfmode3a: | |
| 0 | 379 bcf switch_left |
| 380 bsf menubit ; Enter Menu! | |
| 381 return | |
| 382 | |
| 382 | 383 test_switches_surfmode3b: |
| 384 ; Clear "Heading?" | |
| 385 WIN_BOX_BLACK .158,.190, .15, .99 ; top, bottom, left, right | |
| 386 bcf premenu | |
| 387 bcf switch_left | |
| 388 return | |
| 389 | |
| 0 | 390 test_switches_surfmode2: |
| 382 | 391 movlw .6 |
| 392 cpfseq menupos3 ; in compass view? | |
| 393 bra test_switches_surfmode2a ; No | |
| 394 btfss premenu ; "Heading?" shown? | |
| 395 bra test_switches_surfmode2a ; No | |
| 396 ; Set new heading | |
| 397 bcf premenu | |
| 398 bsf compass_bearing_set | |
| 399 movff compass_heading_shown+0,compass_bearing+0 | |
| 400 movff compass_heading_shown+1,compass_bearing+1 | |
| 401 bcf switch_right | |
| 402 return | |
| 403 | |
| 404 test_switches_surfmode2a: | |
| 0 | 405 bcf switch_right |
| 406 bsf toggle_customview | |
| 382 | 407 bcf premenu |
| 0 | 408 clrf timeout_counter2 ; and reset timeout |
| 409 return | |
| 410 | |
| 411 global timeout_surfmode | |
| 412 timeout_surfmode: | |
|
188
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
413 movlw timeout_surfacemode ; [s] Default timeout |
|
187
669b5d00706d
CHANGE: Longer timeout (4 min) for calibration menu
heinrichsweikamp
parents:
158
diff
changeset
|
414 btfsc menu_show_sensors2 ; In the "Calibrate" menu? |
|
188
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
415 movlw timeout_calibrate_menu ; [s] CCR Calibrate Menu timeout |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
416 btfsc menubit ; in Menu? |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
417 bra timeout_testmode ; No, done. |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
418 ; Must be in surface mode |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
419 btfss FLAG_ccr_mode ; =1: CCR mode (Fixed ppO2 or Sensor) active |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
420 bra timeout_testmode ; No, not CCR |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
421 movlw timeout_ccr_surface ; [s] CCR Surface mode timeout |
|
ebc28381f17d
NEW: Show Bailout Gas List in Surface mode (CCR Modes)
heinrichsweikamp
parents:
187
diff
changeset
|
422 |
| 0 | 423 global timeout_testmode |
| 424 timeout_testmode: | |
| 425 incf timeout_counter2,F ; increase timeout counter | |
| 426 cpfsgt timeout_counter2 ; Compare with timeout_counter2 | |
| 427 return ; return, no timeout | |
| 428 bsf sleepmode ; Set Flag | |
| 429 return ; Return | |
| 430 | |
| 431 END |
