Advertisement
Guest User

spi+led

a guest
Jan 16th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.73 KB | None | 0 0
  1. void send_SPI(unsigned char indata)
  2. {
  3.     tU32 failsafe;
  4.    
  5.   IOCLR0 = SPI_CS;  //Aktiverar SPI
  6.  
  7.   SPI_SPDR = indata;
  8.   failsafe = 0;
  9.   while(((SPI_SPSR & 0x80) == 0) && (failsafe < 5000))
  10.     failsafe++;
  11.   IOSET0 = SPI_CS;  //Inaktiverar SPI
  12.  
  13.   if (failsafe >= 5000)
  14.   {
  15.     SPI_SPCCR = 0x08;    
  16.     SPI_SPCR  = 0x60;
  17.   }
  18. }
  19.  
  20. void ledMatrix(void)
  21. {
  22.     static tU32 columnCounter = 0x01;
  23.     static tU8 index = 0;
  24.  
  25.   if (columnCounter > 0x80)
  26.   {
  27.     columnCounter = 0x01;
  28.     index = 0;
  29.   }
  30.   send_SPI(~pattern[index++]);
  31.   send_SPI(~columnCounter);
  32.   columnCounter <<= 1;
  33.    
  34.   T1IR        = 0xff;        //reset all IRQ flags
  35.   VICVectAddr = 0x00;        //dummy write to VIC to signal end of interrupt
  36.   timer+=2;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement