Spi master operation example – Rainbow Electronics ATmega3290P_V User Manual
Page 190

190
ATmega329/3290/649/6490
2552H–AVR–11/06
SPI Master Operation
Example
The following code demonstrates how to use the USI module as a SPI Master:
SPITransfer:
sts
USIDR,r16
ldi
r16,(1< sts USISR,r16 ldi r16,(1< SPITransfer_loop: sts USICR,r16 lds r16, USISR sbrs r16, USIOIF rjmp SPITransfer_loop lds r16,USIDR ret The code is size optimized using only eight instructions (+ ret). The code example The second and third instructions clears the USI Counter Overflow Flag and the USI
assumes that the DO and USCK pins are enabled as output in the DDRE Register. The
value stored in register r16 prior to the function is called is transferred to the Slave
device, and when the transfer is completed the data received from the Slave is stored
back into the r16 Register.
counter value. The fourth and fifth instruction set Three-wire mode, positive edge Shift
Register clock, count at USITC strobe, and toggle USCK. The loop is repeated 16 times.
- MAX5151 (16 pages)
- MAXQ3108 (64 pages)
- MAX5661 (39 pages)
- MAX6691 (7 pages)
- MAX5362 (12 pages)
- ADC10158 (26 pages)
- MAX8922L (14 pages)
- MAX8596Z (8 pages)
- MAX7491 (18 pages)
- MAX15040 (15 pages)
- MAX5177 (16 pages)
- ADC08138 (22 pages)
- MAX5961 (42 pages)
- T89C51RD2 (86 pages)
- MAX16055 (9 pages)
- MAX6659 (17 pages)
- ADC0820 (20 pages)
- MAX6678 (19 pages)
- MAX8884Z (15 pages)
- MAX16915 (9 pages)
- MAX8620 (18 pages)
- MAX5144 (12 pages)
- MAX6670 (8 pages)
- MAX8760 (39 pages)
- W78C32C (14 pages)
- MX7533 (8 pages)
- MAX8727 (13 pages)
- MAX9053 (15 pages)
- W78C54 (16 pages)
- MAX8614B (15 pages)
- W90N740 (219 pages)
- MAX6626 (13 pages)
- ADC10738 (30 pages)
- MAX17000 (31 pages)
- MAX5051 (21 pages)
- MAXQ1004 (18 pages)
- MAX6871 (51 pages)
- MX7847 (12 pages)
- MAX6608 (6 pages)
- MAX17083 (15 pages)
- MAX6641 (17 pages)
- MAX5251 (16 pages)
- MAX6338 (8 pages)
- MAX6690 (16 pages)
- MAX8668 (18 pages)