lawson
Newbie level 4
help me !! SPI assembler
hi everybody i'm beginning learning to program the AVR SPI with assembly ,but it can't transmit data to PORTC at the slave SPI ,help me,please!!
;*****************MASTER SPI*****************
;*************************************
; DECLARE MASTER SPI :
LDI R16,(1<<DDB2)|(1<<DDB3)|(1<<DDB5)
OUT DDRB,R16
LDI R17,(1<<SPIE)|(1<<SPE)|(1<<MSTR)
OUT SPCR,R17
;*************************************
MAIN:
IN R19,PINC
RCALL SEND
RJMP MAIN
SEND:
OUT SPDR,R19
Wait:
sbis SPSR,SPIF
rjmp Wait
RET
;***************** SlAVE SPI*****************
;*************************************
;DECLARE SLAVE SPI:
LDI R16,(1<<DDB3)
OUT DDRB,R16
ldi R17,(1<<SPE)
out SPCR,R17
;*************************************
MAIN:
RCALL RECEIVE
OUT PORTC,R16
RJMP MAIN
RECEIVE:
sbis SPSR,SPIF
rjmp RECEIVE
IN R16,SPDR
RET
hi everybody i'm beginning learning to program the AVR SPI with assembly ,but it can't transmit data to PORTC at the slave SPI ,help me,please!!
;*****************MASTER SPI*****************
;*************************************
; DECLARE MASTER SPI :
LDI R16,(1<<DDB2)|(1<<DDB3)|(1<<DDB5)
OUT DDRB,R16
LDI R17,(1<<SPIE)|(1<<SPE)|(1<<MSTR)
OUT SPCR,R17
;*************************************
MAIN:
IN R19,PINC
RCALL SEND
RJMP MAIN
SEND:
OUT SPDR,R19
Wait:
sbis SPSR,SPIF
rjmp Wait
RET
;***************** SlAVE SPI*****************
;*************************************
;DECLARE SLAVE SPI:
LDI R16,(1<<DDB3)
OUT DDRB,R16
ldi R17,(1<<SPE)
out SPCR,R17
;*************************************
MAIN:
RCALL RECEIVE
OUT PORTC,R16
RJMP MAIN
RECEIVE:
sbis SPSR,SPIF
rjmp RECEIVE
IN R16,SPDR
RET