beautypg.com

Atmega128rfa1 – Rainbow Electronics ATmega128RFA1 User Manual

Page 333

background image

333


8266A-MCU Wireless-12/09

ATmega128RFA1

C Code Example

(

1

)

void SPI_MasterInit(void)

{

/* Set MOSI and SCK output, all others input */

DDR_SPI = (1<

/* Enable SPI, Master, set clock rate fck/16 */

SPCR = (1<

}

void SPI_MasterTransmit(char cData)

{

/* Start transmission */

SPDR = cData;

/* Wait for transmission complete */

while(!(SPSR & (1<

;

}

Note:

1. See

"About Code Examples" on page 7

Assembly Code Example

(

1

)

SPI_SlaveInit:

; Set MISO output, all others input

ldi r17,(1<

out DDR_SPI,r17

; Enable SPI

ldi r17,(1<

out SPCR,r17

ret

SPI_SlaveReceive:

; Wait for reception complete

sbis SPSR,SPIF

rjmp SPI_SlaveReceive

; Read received data and return

in r16,SPDR

ret