#include // SPI functions #include // Declare your global variables here #define LOAD PORTB.2 // connect to pin 12 of all 74HC595 flash unsigned int power[8]={1,2,4,8,16,32,64,128}; void main(void) { // Declare your local variables here unsigned char i,row,frame[24][5]; // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=Out Func4=In Func3=Out Func2=Out Func1=Out Func0=In // State7=T State6=T State5=0 State4=T State3=0 State2=0 State1=0 State0=T PORTB=0x00; DDRB=0x2E; // SPI initialization // SPI Type: Master // SPI Clock Rate: 2*5000.000 kHz // SPI Clock Phase: Cycle Start // SPI Clock Polarity: Low // SPI Data Order: MSB First SPCR=0x54; SPSR=0x01; while (1) { // Place your code here //load 1 frame from memory for(row=0;row<24;row++) { for(i=0;i<5;i++) { spi(frame[i][0]); }; if(row<8) { spi(0); spi(0); spi(power[row]); } else { if(row<16) { spi(0); spi(power[row-8]); spi(0); } else { spi(power[row-16]); spi(0); spi(0); }; }; }; LOAD=1; LOAD=0; }; }