اطلاعیه

Collapse
No announcement yet.

spi در COdevision

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

    spi در COdevision

    با سلام
    چند سوال در زمینه ارتباط سریال spi در محیطcodevison داشتم که اگر دوستان راهنمایی کنن ممنون میشم
    اولا دستور (x =spi(data در slave و master هر کدوم به چه معنا هستن
    ثانیا وقتی کدهای برنامه در slave در حال اجرا شدن هست و میرسیم به دستور( x=spi(data ولی هنوز master شروع به ارسال داده نکرده آیا اجرای برنامه در همون خط متوقف میشه تا مستر بایت رو ارسال کنه یا اینکه از روی اون دستور عبور میکنه و خط بعدی برنامه رو اجرا میکنه
    ممنون

    #2
    پاسخ : spi در COdevision

    کسی نیست در این زمینه من رو راهنمایی کنه ؟؟؟

    دیدگاه


      #3
      پاسخ : spi در COdevision

      نوشته اصلی توسط arash13
      کسی نیست در این زمینه من رو راهنمایی کنه ؟؟؟
      میشه یکی جواب این دوستمون رو بده؟
      آخه مشکل من هم هست
      هستم اگر می روم گر نروم نیستم

      دیدگاه


        #4
        پاسخ : spi در COdevision

        سلام
        من میخواستم یه موضوع جدید باز کنم ولی دیدم این پست خالی مونده

        همین سوالهایی که تو پستهای قبلی پرسیده شده سوالهای منم هست.
        دارم سعی میکنم ارتباط SPI رو بین دو میکرو راه اندازی کنم ولی هر چی بیشتر میخونم و سرچ میکنم گیج تر میشم.
        میخوام یه برنامه ساده بنویسم اطلاعات رو از پورت A تو میکرو master بگیره و به پورت A تو slave بفرسته
        این کدیه که برای فرستنده نوشتم:


        SPCR=0x50;
        SPSR=0x00;
        while (1)
        {
        SPDR=PINA; //send data
        while (!(SPSR & (1<<SPIF))); // while((SPSR & 0x80)==0);
        delay_ms(1);

        };
        }

        اینهم کد مربوط به گیرنده:

        SPCR=0x40;
        SPSR=0x00;


        while (1)
        {
        result=spi(0)<<8;
        result|=spi(0);
        while((SPSR & 0x80)==0); //keep checking until done bit
        PORTA=result;

        }

        ولی مسلما کار نمیکنه چون واقعا نفهمیدم چی رو برای چی باید کجا بنویسم. کاربرد spi() رو هم نمیدونم یعنی جایی توضیح درست و حسابی در موردش نداده . تو کتاب امیر ره افروز خوندم که هر وقت تو رجیستر SPDR چیزی نوشته بشه اطلاعات ارسال میشه ولی کار نمیکنه برای ارسال هم باید از spi() استفاده بشه ؟

        تشکر

        دیدگاه


          #5
          پاسخ : spi در COdevision

          رفتم تو این تاپیک :
          http://www.eca.ir/forum2/index.php?topic=63330.15
          مشکل اجراء برنامه حل شد
          کد فرستنده رو اینطوری نوشتم:

          while (1)
          {
          i=PINA;
          delay_ms(10);
          PORTB.4=0;
          i=spi(i); //send data

          delay_ms(1);

          };
          }

          با spi نوشتم اگه بخوام با SPDR بنویسم کدش چطوری میشه؟

          فرقشون چیه؟

          دیدگاه

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