ATA8742 ATMEL Corporation, ATA8742 Datasheet - Page 142

no-image

ATA8742

Manufacturer Part Number
ATA8742
Description
Manufacturer
ATMEL Corporation
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
ATA8742
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
Part Number:
ATA8742-PXQW
Manufacturer:
ATMEL
Quantity:
1 482
23.3.3
142
ATA8742
SPI Slave Operation Example
The following code demonstrates how to use the USI module as a SPI Slave:
The code is size optimized using only eight instructions (+ ret). The code example assumes that
the DO is configured as output and USCK pin is configured as input in the DDR Register. The
value stored in register r16 prior to the function is called is transferred to the master device, and
when the transfer is completed the data received from the Master is stored back into the r16
Register.
Note that the first two instructions is for initialization only and needs only to be executed
once.These instructions sets Three-wire mode and positive edge Shift Register clock. The loop
is repeated until the USI Counter Overflow Flag is set.
ret
init:
...
SlaveSPITransfer:
SlaveSPITransfer_loop:
out
in
ldi
out
out
ldi
out
in
sbrs
rjmp
in
ret
USICR,r17
r16,USIDR
r16,(1<<USIWM0)|(1<<USICS1)
USICR,r16
USIDR,r16
r16,(1<<USIOIF)
USISR,r16
r16, USISR
r16, USIOIF
SlaveSPITransfer_loop
r16,USIDR
9151A–INDCO–07/09

Related parts for ATA8742