comparison src/eeprom_rs232.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 eeprom_rs232.asm combined next generation V3.04.3 3 ; File eeprom_rs232.asm combined next generation V3.06.2
4 ; 4 ;
5 ; Internal EEPROM, RS232 5 ; Internal EEPROM, RS232
6 ; 6 ;
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved.
8 ;============================================================================= 8 ;=============================================================================
98 bsf INTCON,GIE ; ...but the flag for the ISR routines were still set, so they will interrupt now! 98 bsf INTCON,GIE ; ...but the flag for the ISR routines were still set, so they will interrupt now!
99 return 99 return
100 100
101 ;============================================================================= 101 ;=============================================================================
102 102
103 IFDEF _external_sensor
104
105 global disable_ir_s8 103 global disable_ir_s8
106 disable_ir_s8: 104 disable_ir_s8:
107 banksel TXSTA2 ; select bank for IO register access 105 banksel TXSTA2 ; select bank for IO register access
108 clrf TXSTA2 106 clrf TXSTA2
109 clrf RCSTA2 107 clrf RCSTA2
110 banksel common ; back to bank common 108 banksel common ; back to bank common
111 bcf ir_power ; IR off 109 bcf PIE3,RC2IE ; disable RC2 INT
112 bcf mcp_power ; power-down instrumentation amp 110 bcf ir_power ; IR off
113 bsf s8_npower ; power-down S8 digital interface 111 bcf mcp_power ; power-down instrumentation amp
114 bcf s8_digital_avail ; digital S8 interface not available 112 bsf s8_npower ; power-down S8 digital interface
113 bcf s8_digital_avail ; digital S8 interface not available
115 return 114 return
116 115
117 116
118 global enable_ir_s8 117 global enable_ir_s8
119 enable_ir_s8: 118 enable_ir_s8:
131 clrf SPBRGH2 130 clrf SPBRGH2
132 movlw b'10010000' 131 movlw b'10010000'
133 movwf RCSTA2 132 movwf RCSTA2
134 banksel common ; - back to bank common 133 banksel common ; - back to bank common
135 bsf ir_power ; - power-up IR 134 bsf ir_power ; - power-up IR
136 btfss ir_power 135 btfss ir_power ; - power-up confirmed?
137 bra $-6 136 bra $-6 ; NO - loop and wait
138 return 137 bsf PIE3,RC2IE ; - enable RC2 INT
138 return ; - done
139 139
140 enable_s8: 140 enable_s8:
141 banksel TXSTA2 ; select bank for IO register access 141 banksel TXSTA2 ; select bank for IO register access
142 clrf TXSTA2 142 clrf TXSTA2
143 clrf RCSTA2 143 clrf RCSTA2
144 banksel common ; back to bank common 144 banksel common ; back to bank common
145 ; Check for Digital/Analog 145 ; Check for Digital/Analog
146 bsf s8_npower ; power-down S8 HUD 146 bsf s8_npower ; power-down S8 HUD
176 movlw b'10010000' 176 movlw b'10010000'
177 movwf RCSTA2 177 movwf RCSTA2
178 banksel common ; back to bank common 178 banksel common ; back to bank common
179 bsf s8_digital_avail ; digital S8 interface available 179 bsf s8_digital_avail ; digital S8 interface available
180 return 180 return
181
182 ENDIF ; _external_sensor
183 181
184 ;============================================================================= 182 ;=============================================================================
185 183
186 global enable_rs232 184 global enable_rs232
187 enable_rs232: 185 enable_rs232:
330 ; Vault in EEPROM 512...1023 328 ; Vault in EEPROM 512...1023
331 ; Write 0xAA at 512 to indicate valid data in vault 329 ; Write 0xAA at 512 to indicate valid data in vault
332 ; Store last time/date 330 ; Store last time/date
333 ; Store 0x700 to 0x780 (pres_tissue_N2 and pres_tissue_He) 331 ; Store 0x700 to 0x780 (pres_tissue_N2 and pres_tissue_He)
334 movlw HIGH .512 ; =2 332 movlw HIGH .512 ; =2
335 movwf EEADRH 333 movwf EEADRH ; set EEPROM address, high byte
336 334
337 ; indicate valid data in vault 335 ; indicate valid data in vault
338 movlw 0xAA 336 movlw 0xAA
339 movwf EEDATA 337 movwf EEDATA
340 write_int_eeprom .0 338 write_int_eeprom .0
362 movff int_O_desaturation_time+0,EEDATA; get desaturation time, low byte 360 movff int_O_desaturation_time+0,EEDATA; get desaturation time, low byte
363 write_int_eeprom .9 ; store value 361 write_int_eeprom .9 ; store value
364 movff int_O_desaturation_time+1,EEDATA; get desaturation time, high byte 362 movff int_O_desaturation_time+1,EEDATA; get desaturation time, high byte
365 write_int_eeprom .10 ; store value 363 write_int_eeprom .10 ; store value
366 364
367 SMOVII surface_interval,mpr ; ISR-safe copy of surface interval 365 SMOVII surface_interval_mins,mpr ; ISR-safe copy of surface interval
368 movff mpr+0,EEDATA ; get surface interval, low byte 366 movff mpr+0,EEDATA ; get surface interval, low byte
369 write_int_eeprom .11 ; store value 367 write_int_eeprom .11 ; store value
370 movff mpr+1,EEDATA ; get surface interval, high byte 368 movff mpr+1,EEDATA ; get surface interval, high byte
371 write_int_eeprom .12 ; store value 369 write_int_eeprom .12 ; store value
372 370
395 393
396 394
397 global restore_decodata_from_eeprom 395 global restore_decodata_from_eeprom
398 restore_decodata_from_eeprom: 396 restore_decodata_from_eeprom:
399 movlw LOW .512 ; =0 397 movlw LOW .512 ; =0
400 movwf EEADR 398 movwf EEADR ; set EEPROM address, low byte
401 movlw HIGH .512 ; =2 399 movlw HIGH .512 ; =2
402 movwf EEADRH 400 movwf EEADRH ; set EEPROM address, high byte
403 401
404 ; restore date and time 402 ; restore date and time
405 read_int_eeprom .1 403 read_int_eeprom .1
406 movff EEDATA,rtc_latched_year 404 movff EEDATA,rtc_latched_year
407 read_int_eeprom .2 405 read_int_eeprom .2
428 426
429 read_int_eeprom .11 ; read surface interval, low byte 427 read_int_eeprom .11 ; read surface interval, low byte
430 movff EEDATA,mpr+0 ; cache value in mpr 428 movff EEDATA,mpr+0 ; cache value in mpr
431 read_int_eeprom .12 ; read surface interval, high byte 429 read_int_eeprom .12 ; read surface interval, high byte
432 movff EEDATA,mpr+1 ; cache value in mpr 430 movff EEDATA,mpr+1 ; cache value in mpr
433 SMOVII mpr,surface_interval ; ISR-safe copy-back of surface interval 431 SMOVII mpr,surface_interval_mins ; ISR-safe copy-back of surface interval
434 432
435 read_int_eeprom .13 ; read leading tissue's supersaturation 433 read_int_eeprom .13 ; read leading tissue's supersaturation
436 movff EEDATA,int_O_lead_supersat+0 ; restore value 434 movff EEDATA,int_O_lead_supersat+0 ; restore value
437 435
438 read_int_eeprom .14 ; read no-fly/no-altitude time, low byte 436 read_int_eeprom .14 ; read no-fly/no-altitude time, low byte
450 call read_eeprom ; EEPROM@EEADR into EEDATA 448 call read_eeprom ; EEPROM@EEADR into EEDATA
451 movff EEDATA,POSTINC1 449 movff EEDATA,POSTINC1
452 incf EEADR,F 450 incf EEADR,F
453 decfsz lo,F ; all done? 451 decfsz lo,F ; all done?
454 bra restore_decodata_from_eeprom2 ; NO - loop 452 bra restore_decodata_from_eeprom2 ; NO - loop
455 clrf EEADRH ; YES 453 clrf EEADRH ; YES - revert EEPROM high address pointer to default
456 return 454 return ; - done
457 455
458 ;============================================================================= 456 ;=============================================================================
459 457
460 global reset_battery_pointer ; called from comm and menu tree 458 global reset_battery_pointer ; called from comm and menu tree
461 global reset_battery_internal_only 459 global reset_battery_internal_only