Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2015
593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. ...
  2.  
  3. #define DD_MOSI 5
  4. #define DD_MISO 6
  5. #define DD_SCK 7
  6. #define DDR_SPI DDRB
  7.  
  8. #define REG_SYNCVALUE1  0x2F
  9.  
  10.  
  11.  
  12. void spi_init(void)
  13. {
  14.     DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK)|(0<<DD_MISO);
  15.     SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(0<<DORD)|(0<<CPOL)|(0<<CPHA);
  16. }
  17.  
  18. uint8_t spi_transfer(uint8_t val)
  19. {
  20.     SPDR = val;
  21.     while(!(SPDR & (1<<SPIF)));
  22.    
  23.     return SPDR;
  24. }
  25.  
  26.  
  27. int main()
  28. {
  29.     spi_init();
  30.  
  31.     DDRD |= (1<<PD7);
  32.     PORTD |= (1<<PD7); // SS
  33.  
  34.     char s[8];
  35.  
  36.     while(1)
  37.     {
  38.         PORTD &= ~(1<<PD7); //select
  39.         spi_transfer(REG_SYNCVALUE1 | 0x80);
  40.         spi_transfer(0x55);
  41.         PORTD |= (1<<PD7); //unselect
  42.    
  43.         PORTD &= ~(1<<PD7); //select
  44.         spi_transfer(REG_SYNCVALUE1 & 0x7F);
  45.         uint8_t resu = spi_transfer(0);
  46.         PORTD |= (1<<PD7); //unselect
  47.        
  48.         itoa( resu, s, 10);
  49.         uart_puts("Result:\n");
  50.         uart_puts(s);
  51.    
  52.         _delay_ms(5000);
  53.     }
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement