با سلام :
من یه برنامه از این انجمن واسه تابلو روان دانلود کردم که از تکنولوژی spi در اون استفاده شده اما متاسفانه از کد های نوشته شده سر در نمیارم که اگه کمکم کنین ممنون میشم
اینم کدهای برنامه :
من یه برنامه از این انجمن واسه تابلو روان دانلود کردم که از تکنولوژی spi در اون استفاده شده اما متاسفانه از کد های نوشته شده سر در نمیارم که اگه کمکم کنین ممنون میشم
اینم کدهای برنامه :
#include <mega48.h>
// SPI functions
#include <spi.h>
// 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;
};
}
// SPI functions
#include <spi.h>
// 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;
};
}