Some code used to read A/Ds in a round robin sequence...
Code:
************************************************
* READ A/D CONVERTERS
************************************************
4DEB 86 10 LDAA #$10 ; START A/D, PE0 - PE3
4DED B7 10 30 STAA $1030 ; MULTI MODE
4DF0 3A ABX ; REAL TIME DELAY
4DF1 3D MUL ; OF 136 CYCLES
4DF2 03 FDIV ;
4DF3 03 FDIV ;
4DF4 03 FDIV ;
4DF5 FC 10 31 LDD $1031 ; READ ANALOG FROM PE0, PE1
4DF8 B7 01 02 STAA $0102 ; AC PRESSURE
4DFB F7 01 03 STAB $0103 ; AN1 ??
4DFE FC 10 33 LDD $1033 ; READ ANALOG FROM PE2, PE3
4E01 B7 01 04 STAA $0104 ; AN2 ??
4E04 F7 01 05 STAB $0105 ; AN3 ??
4E07 CE 10 02 LDX #$1002 ; MUX CONTROL, PORT G0-2
4E0A 1D 00 07 BCLR $00,X,$07 ; CLEAR ANALOG SELECT BITS
4E0D B6 01 01 LDAA $0101 ; MODULO 8 COUNT
4E10 AA 00 ORRA $00,X ; UPDATE PORT TO SELECT
4E12 A7 00 STAA $00,X ; ANALOG INPUTS INTO A/D
4E14 86 14 LDAA #$14 ; START A/D, PE4 - PE7
4E16 B7 10 30 STAA $1030 ; MULTI MODE
4E19 3A ABX ; REAL TIME DELAY
4E1A 3D MUL ; OF 136 CYCLES
4E1B 03 FDIV ;
4E1C 03 FDIV ;
4E1D 03 FDIV ;
4E1E B6 10 31 LDAA $1031 ; READ ANALOG FROM PE4
4E21 B7 01 06 STAA $0106 ; ONE OF EIGHT INPUTS
4E24 F6 01 01 LDAB $0101 ;
4E27 CE 01 07 LDX #$0107 ;
4E2A 3A ABX ; ADD OFFSET
4E2B B6 10 32 LDAA $1032 ; READ ANALOG FROM PE5
4E2E A7 00 STAA $00,X ; SAVE LOCATON W OFFSET
4E30 CE 01 0F LDX #$010F ; MUX 1 BASE ADDRESS
4E33 3A ABX ; ADD OFFSET
4E34 B6 10 33 LDAA $1033 ; READ ANALOG FROM PE6
4E37 A7 00 STAA $00,X ; SAVE
4E39 CE 01 17 LDX #$0117 ; MUX 2 BASE ADDRESS
4E3C 3A ABX ; ADD OFFSET
4E3D B6 10 34 LDAA $1034 ; READ ANALOG FROM PE7
4E40 A7 00 STAA $00,X ; IGNITION VOLTAGE
* $0101 IS A MODULO 8 COUNTER (0-7) INCREMENTED EACH TIME THIS IS CALLED
4E42 B6 01 01 LDAA $0101 ; READ CURRENT COUNT
4E45 4C INCA ; INCREMENT COUNT
4E46 81 08 CMPA #$08 ; TEST FOR OVER
4E48 25 01 BCS $4E4B ; BRANCH IF NOT OVER
4E4A 4F CLRA ; WRAP COUNT
4E4B B7 01 01 STAA $0101 ; SAVE CURRENT COUNT
Bookmarks