comparison src/adc_lightsensor.asm @ 628:cd58f7fc86db

3.05 stable work
author heinrichsweikamp
date Thu, 19 Sep 2019 12:01:29 +0200
parents c40025d8e750
children 237931377539
comparison
equal deleted inserted replaced
627:bf5fee575701 628:cd58f7fc86db
1 ;============================================================================= 1 ;=============================================================================
2 ; 2 ;
3 ; File adc_lightsensor.asm combined next generation V3.03.2 3 ; File adc_lightsensor.asm combined next generation V3.03.5
4 ; 4 ;
5 ; 5 ;
6 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. 6 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved.
7 ;============================================================================= 7 ;=============================================================================
8 ; HISTORY 8 ; HISTORY
217 movff sub_c+0,lo ; store result 217 movff sub_c+0,lo ; store result
218 bra get_battery_voltage_8 ; check limits and return 218 bra get_battery_voltage_8 ; check limits and return
219 219
220 220
221 global get_ambient_level ; called from ISR only, in context bank isr_backup 221 global get_ambient_level ; called from ISR only, in context bank isr_backup
222 get_ambient_level: ; starts ADC and waits until finished 222 get_ambient_level:
223 btfsc sleepmode ; in sleep mode? 223 btfsc sleepmode ; in sleep mode?
224 return ; YES - done 224 return ; YES - done
225 btfsc adc_is_running ; NO - ADC in use? 225 btfsc adc_is_running ; NO - ADC in use?
226 return ; YES - return 226 return ; YES - return
227 banksel HW_descriptor ; NO - select bank where hardware descriptor is stored 227 banksel HW_descriptor ; NO - select bank where hardware descriptor is stored
484 global get_analog_switches ; called from ISR and from sleep mode, returns in bank common 484 global get_analog_switches ; called from ISR and from sleep mode, returns in bank common
485 get_analog_switches: ; start ADC and wait until finished 485 get_analog_switches: ; start ADC and wait until finished
486 banksel HW_variants ; switch to bank where OSTC model variant is stored 486 banksel HW_variants ; switch to bank where OSTC model variant is stored
487 btfsc analog_switches ; does the OSTC have analog switches? 487 btfsc analog_switches ; does the OSTC have analog switches?
488 bra get_analog_switches_1 ; YES 488 bra get_analog_switches_1 ; YES
489 get_analog_switches0:
489 banksel common ; NO - back to bank common 490 banksel common ; NO - back to bank common
490 bcf analog_sw1_pressed ; - clear flag for analog switch 1 491 bcf analog_sw1_pressed ; - clear flag for analog switch 1
491 bcf analog_sw2_pressed ; - clear flag for analog switch 2 492 bcf analog_sw2_pressed ; - clear flag for analog switch 2
492 return ; - done 493 return ; - done
493 494
494 get_analog_switches_1: 495 get_analog_switches_1:
495 banksel common ; back to bank common 496 banksel common ; back to bank common
496 btfsc adc_is_running ; ADC in use? 497 btfsc adc_is_running ; ADC in use?
497 return ; YES - abort 498 return ; YES - abort
498 ;bra get_analog_switches_2 ; NO - read switches 499 btfsc cc_active ; NO - charging?
500 bra get_analog_switches0 ; YES - abort (And clear both flags)
501 ;bra get_analog_switches_2 ; NO - read switches
499 502
500 get_analog_switches_2: 503 get_analog_switches_2:
501 movlw b'00001001' ; left justified 504 bsf adc_is_running
505 movlw b'00001010' ; left justified
502 movwf ADCON2 506 movwf ADCON2
503 ; movlw b'00000000' ; Vref+ = Vdd 507 ; movlw b'00000000' ; Vref+ = Vdd
504 clrf ADCON1 508 clrf ADCON1
505 movlw b'00100101' ; power on ADC, select AN9 509 movlw b'00100101' ; power on ADC, select AN9
506 rcall wait_adc 510 rcall wait_adc
608 612
609 get_analog_switches_sw1_pressed: 613 get_analog_switches_sw1_pressed:
610 bsf analog_sw1_pressed ; set right button as pressed 614 bsf analog_sw1_pressed ; set right button as pressed
611 615
612 get_analog_switches_4: 616 get_analog_switches_4:
613 movlw b'10001101' ; restore to right justified 617 movlw b'10001010' ; restore to right justified
614 movwf ADCON2 618 movwf ADCON2
615 619 bcf adc_is_running
616 banksel common ; back to bank common 620 banksel common ; back to bank common
617 btfsc analog_sw1_pressed ; right button pressed? 621 btfsc analog_sw1_pressed ; right button pressed?
618 return ; YES - done 622 return ; YES - done
619 btfsc analog_sw2_pressed ; left button pressed? 623 btfsc analog_sw2_pressed ; left button pressed?
620 return ; YES - done 624 return ; YES - done