cjoshmartin / elevator-simulation

Final Project for Microprocessor Systems and Interfacing class (HC12 Assembly Programming)
0 stars 0 forks source link

Stepper Motor #10

Closed cjoshmartin closed 6 years ago

cjoshmartin commented 6 years ago
                    XDEF stepper_motor
                    XREF port_p_ddr,port_t,port_p
                    XREF direction, is_open_or_closed

                    XREF stepper_delay, stepper_flag, stepper_seq,current_step_in_seq
val ds.b 1
highorlow ds.w 2
DelayCount ds.w 1

clockwise_seq: dc.b $0A, $12, $14, $0C, $0
counterclockwise_seq: dc.b $0C, $14, $12, $0A, $0

stepper_motor:
        ldaa is_open_or_closed
        cmpa #1
        beq nope

        ldaa stepper_flag
        cmpa #1 
        beq Delay

        bra again

change_in_direction: 
        ldaa direction
        cmpa #$2 ; if equal to 2 it will send vals in to x
        beq clock
        cmpa #$1 ; if equal to 1 it will send vals1 into x
        beq counter
        rts

;alternate from clock wise to counter clock wise
clock: 
       movb #clockwise_seq, stepper_seq ;clock wise
       bra again

counter: 
       movb #counterclockwise_seq, stepper_seq ; counter clock wise

again: LDAA current_step_in_seq
       cmpa $0
       beq change_in_direction
       STAA port_p
       movb #1, stepper_flag

nope:  rts

Delay: PSHX 
       LDX stepper_flag
       DEX
       cpx #0
       BNE end
       movb #0, stepper_flag
       movw #30000, stepper_delay

end:   PULX
       RTS
cjoshmartin commented 6 years ago
again: 
 ldx  stepper_seq
 LDAA current_step_in_seq,x
 STAA port_p
 cmpa $0