EasyManuals Logo

Atmel ATtiny26 User Manual

Atmel ATtiny26
182 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #87 background imageLoading...
Page #87 background image
87
ATtiny26(L)
1477G–AVR–03/05
The following code demonstrates how to use the USI module as a SPI Master with max-
imum speed (fsck = fck/2):
SPITransfer_Fast:
out USIDR,r16
ldi r16,(1<<USIWM0)+(0<<USICS0)+(1<<USITC)
ldi r17,(1<<USIWM0)+(0<<USICS0)+(1<<USITC)+(1<<USICLK)
out USICR,r16 ; MSB
out USICR,r17
out USICR,r16
out USICR,r17
out USICR,r16
out USICR,r17
out USICR,r16
out USICR,r17
out USICR,r16
out USICR,r17
out USICR,r16
out USICR,r17
out USICR,r16
out USICR,r17
out USICR,r16 ; LSB
out USICR,r17
in r16,USIDR
ret
SPI Slave Operation Example The following code demonstrates how to use the USI module as a SPI slave:
init:
ldi r16,(1<<USIWM0)+(1<<USICS1)
out USICR,r16
...
SlaveSPITransfer:
out USIDR,r16
ldi r16,(1<<USIOIF)
out USISR,r16
SlaveSPITransfer_loop:
sbis USISR,USIOIF
rjmp SlaveSPITransfer_loop
in r16,USIDR
ret
The code is size optimized using only 8 instructions (+ ret). The code example assumes
that the DO is configured as output and SCK pin is configured as input in the DDRB
Register. The value stored in register r16 prior to the function is called is transferred to

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Atmel ATtiny26 and is the answer not in the manual?

Atmel ATtiny26 Specifications

General IconGeneral
BrandAtmel
ModelATtiny26
CategoryMicrocontrollers
LanguageEnglish

Related product manuals