; ADDAC.A11 ; ; control MAXIM 512 via MOSI Port ; 23-Dec-1997 dl3mhb@qsl.net ; PORTC equ $1003 DDRC equ $1007 PORTD equ $1008 DDRD equ $1009 SPCR equ $1028 SPSR equ $1029 SPDR equ $102A ADCTL equ $1030 ADR1 equ $1031 OPTION equ $1039 STACK equ $00ff ;------------------------------- org $b600 start lds #STACK ; we know where he is ldaa OPTION oraa #%10000000 ; ADC on staa OPTION clr ADCTL ; reset A/D registers ldaa #%11111111 ; make 'em outputs staa DDRC ldaa #%00111000 ; make SPI to output staa DDRD ldaa #%00100000 staa PORTD ; and set SS high ldaa #%01011100 ; SPE ! MSTR ! SCK ! CPHA ! clock staa SPCR s1 jsr convert ; into A staa PORTC jsr daca ; go to DA on port A bra s1 ;------------------------------- convert ldaa ADCTL staa ADCTL c1 tst ADCTL bpl c1 ldaa ADR1 rts ;------------------------------- daca clr PORTD ; enable SS ldab #%00110001 ; DAC A on and select stab SPDR ; store control byte d1 tst SPSR bpl d1 staa SPDR ; send data byte d2 tst SPSR bpl d2 ldab #%00100000 ; execute instruction stab PORTD rts