اطلاعیه

Collapse
No announcement yet.

مشکل با 74HC597

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل با 74HC597

    سلام

    می خوام تراشه 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:
    برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
    http://hosseinwalkingday.com

    #2
    پاسخ : مشکل با 74HC597

    سلام
    کسی که جواب نداد


    اما شکر خدا حل شد

    درست شده اش رو می ذارم تا دوستان استفاده کنند

    بسیار تراشه خوش دستی هست و می تونه ورودی های میکرو تا بینهایت زیاد کنه.

    کد:
    #define CLK597 PORTC.2  //pin 11 74HC597
    #define SDI597 PINC.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) outvar|=j;
                       
        j>>=1;    
        }  
       return(outvar);
      }; 
    
    
    void main(void)
    {
    
    
        PORTC=0x00;
    DDRC=0xEF;
    
    while (1)
        {
     RCLK597=0;
         RCLK597=1; 
         RCLK597=0;
         RCLK597=1; 
         a = SPI597();
    }
    }
    خطاهایی که تو پست اولم بود و نمی ذاشت مدار درست کار کنه رو تصحیح کردم
    #define SDI597 PINC.4 //pin 9 74HC597
    DDRC=0xEF;

    لذت اش رو ببرید :rolleyes:
    برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
    http://hosseinwalkingday.com

    دیدگاه

    لطفا صبر کنید...
    X