Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define F_CPU 8000000UL
- #include <avr/io.h>
- #include <util/delay.h>
- #define SCK 3
- #define MOSI 1
- #define CSN 2
- uint8_t data = 0;
- uint8_t reg = 0;
- int main(void)
- {
- PRR = 0; // turn off power reduction
- REMAP |= (1<<SPIMAP); // remap SPI pins
- // set SCK, MOSI, CSN as outputs:
- DDRA = (1<<SCK) | (1<<MOSI) | (1<<CSN);
- // enable SPI, set as master, use f_clkIO/16 (500kHz):
- SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR0);
- reg = SPSR;
- reg = SPDR;
- while(1)
- {
- PORTA &= ~(1 << CSN); // clear CSN
- SPDR = data++; // send byte
- while( !(SPSR & (1<<SPIF)) ); // wait for flag to set
- PORTA |= (1 << CSN); // set CSN
- _delay_ms(10);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment