spi.cpp

См. документацию.
00001 // spi.c
00002 
00003 #include "spi.h"
00004 
00006 #define spi_wait()  while (!(SPSR & (1 << SPIF)));
00007 
00009 void spi::init()
00010 {
00011     // make the MOSI, SCK, and SS pins outputs
00012     SPI_DDR |= ( 1 << SPI_MOSI ) | ( 1 << SPI_SCK ) | ( 1<< SPI_SS );
00013 
00014     // make sure the MISO pin is input
00015     SPI_DDR &= ~( 1 << SPI_MISO );
00016 
00017     // set up the SPI module: SPI enabled, MSB first, master mode,
00018     //  clock polarity and phase = 0, F_osc/4
00019     SPCR = ( 1 << SPE ) | ( 1 << MSTR ) | ( 0 << SPR1 ) | ( 0 << SPR0 );
00020     
00021     // set up the SPI module: SPI enabled, MSB first, master mode,
00022     //  clock polarity and phase = 0, F_osc/16
00023 //  SPCR = ( 1 << SPE ) | ( 1 << MSTR ) | ( 0 << SPR1 ) | ( 1 << SPR0 );
00024 
00025 //  SPI_SPSR = 1;     // set double SPI speed for F_osc/2 or F_osc/8
00026 }
00027 
00029 char spi::transfer( char data )
00030 {
00031     // Start transmission
00032     SPDR = data;
00033 
00034     // Wait for the transmission to complete
00035     spi_wait();
00036 
00037     return SPDR;
00038 }
00039 

Документация по CC-2-CC. Последние изменения: Thu Feb 14 09:31:59 2008. Создано системой  doxygen 1.5.3