سلام
می خوام تراشه 74HC597 راه اندازی کنم به مشکل برخوردم
به دلیل استفاده از SPI سخت افزاری در یک بخش برد، مجبور شدم SPI نرم افزاری استفاده کنم و بصورت دستی دستورات شیفت رجیستر رو بدم
این برنامه ام هست، اشتباه ام کجای کار هست ؟
دوستان راهنمایی کنند ممنون می شم.
نمی تونم اطلاعات رو از پایه 9 این تراشه به میکرو شیفت بدم. :sad:
می خوام تراشه 74HC597 راه اندازی کنم به مشکل برخوردم
به دلیل استفاده از SPI سخت افزاری در یک بخش برد، مجبور شدم SPI نرم افزاری استفاده کنم و بصورت دستی دستورات شیفت رجیستر رو بدم
این برنامه ام هست، اشتباه ام کجای کار هست ؟
کد:
#define CLK597 PORTC.2 //pin 11 74HC597
#define SDI597 PORTC.4 //pin 9 74HC597
#define RCLK597 PORTC.3 //pin 12 74HC597
unsigned char SPI597(void)
{
unsigned char j,outvar;
outvar=0;
j=128;
while(j>0)
{
CLK597=0;
CLK597=1;
if(SDI597>0) outvar|=j;
j>>=1;
}
return(outvar);
};
void main(void)
{
PORTC=0x00;
DDRC=0xFF;
while (1)
{
RCLK597=0;
RCLK597=1;
RCLK597=0;
RCLK597=1;
a = SPI597();
}
}
نمی تونم اطلاعات رو از پایه 9 این تراشه به میکرو شیفت بدم. :sad:


دیدگاه