NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3907 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 7 از 7

موضوع: کمک در مورد واحد spi

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    5
    تشکر
    32
    تشکر شده 0 بار در 0 پست

    پیش فرض کمک در مورد واحد spi

    با سلام.
    دوستان بنده یک مشکل در پورت spi داشتم. که از دوستان بزرگوار درخواست کمک دارم.
    من با کدویژن کار میکنم و در راه اندازی این پورت با تابع اماده مشکلی ندارم.
    ولی مشکلم اینجاست که میخواستم بدون استفاده از این تابع این کار رو بکنم. تونستم از یه چند جایی یه مطالبی پیدا کنم ولی کدی پیدا نکردم.
    از دوستان در خواست دارم بنده رو راهنمایی کنن.
    اگه یه کد کوچیک بزارن و یه کوچولو توضیح بدنم که عالی میشه.پ
    با تشکر

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال shahrivar88 آواتار ها
    تاریخ عضویت
    Jul 2011
    نام
    امیر عزیزی
    نوشته ها
    243
    تشکر
    173
    تشکر شده 201 بار در 109 پست

    پیش فرض

    این یک برنامه است که برای دو تا میکروی اسلیو و مستر نوشته شده یک ارتباط بین دو تا میکرو که فایل پروتیوسش هم هست.
    فايل هاي پيوست شده فايل هاي پيوست شده
    سرزمین من\r

    دانلود کتاب آموزش پورت سریال در c#

    http://www.iranmicro.ir/forum/showthread.php?t=9629

  4. کاربران : 3 تشکر کرده اند از شما shahrivar88 برای ارسال این پست سودمند:


  5. #3
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    5
    تشکر
    32
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط shahrivar88 نمایش پست ها
    این یک برنامه است که برای دو تا میکروی اسلیو و مستر نوشته شده یک ارتباط بین دو تا میکرو که فایل پروتیوسش هم هست.
    خیلی ممنون از راهنمایی شما ولی دوست عزیز من در این مورد مشکلی ندارم.
    مشکل من اینجاست که میخوام spi را بدون استفاده از دستور spi() راه اندازی کنم.
    دوستان اگه بشه کمک کنن.
    با تشکر

  6. #4
    کاربر علاقه مند Shapour_Ardebil آواتار ها
    تاریخ عضویت
    Jun 2007
    نام
    ٍShapour
    نوشته ها
    98
    تشکر
    49
    تشکر شده 104 بار در 49 پست

    پیش فرض

    نقل قول نوشته اصلی توسط xp10 نمایش پست ها
    با سلام.
    دوستان بنده یک مشکل در پورت spi داشتم. که از دوستان بزرگوار درخواست کمک دارم.
    من با کدویژن کار میکنم و در راه اندازی این پورت با تابع اماده مشکلی ندارم.
    ولی مشکلم اینجاست که میخواستم بدون استفاده از این تابع این کار رو بکنم. تونستم از یه چند جایی یه مطالبی پیدا کنم ولی کدی پیدا نکردم.
    از دوستان در خواست دارم بنده رو راهنمایی کنن.
    اگه یه کد کوچیک بزارن و یه کوچولو توضیح بدنم که عالی میشه.پ
    با تشکر
    با سلام

    آقای کی نژاد در این مورد فیلم خوبی دارد مثال هم براش داره اگر میخواهید اصولی یاد بگیرید من پیشنهادم همین است

    http://knowledgeplus.ir/electronics/Analog.aspx?lang=Fa

  7. کاربران : 2 تشکر کرده اند از شما Shapour_Ardebil برای ارسال این پست سودمند:


  8. #5
    کاربر فعال shahrivar88 آواتار ها
    تاریخ عضویت
    Jul 2011
    نام
    امیر عزیزی
    نوشته ها
    243
    تشکر
    173
    تشکر شده 201 بار در 109 پست

    پیش فرض

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

    کد:
    unsigned char spi(unsigned char data) 
    { 
    SPDR=data; 
    while ((SPSR & (1<<SPIF))==0); 
    return SPDR; 
    }
    نخست تنظیمات مورد نظر با استفاده از ریجستر spcr تنظیم کنید
    داده ای که میخواهید ارسال کنید را در ریجستر spdr (ریجستر داده) قرار دهید
    پس از ارسال داده دوباره ریجستر داده را بخوانید. (با ارسال هر بیت داده یک بیت داده نیز دریافت میشود و در همان ریجستر spdr قرار میگیرد. پس، بعد از ارسال 8 بیت داده، 8 بیت داده دریافت میشود ودر ریجستر داده نوشته میشود)
    سرزمین من\r

    دانلود کتاب آموزش پورت سریال در c#

    http://www.iranmicro.ir/forum/showthread.php?t=9629

  9. کاربران : 2 تشکر کرده اند از شما shahrivar88 برای ارسال این پست سودمند:


  10. #6
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    5
    تشکر
    32
    تشکر شده 0 بار در 0 پست

    پیش فرض

    با تشکر
    کد:
    unsigned char spi(unsigned char data)  {  SPDR=data;  while ((SPSR & (1<<SPIF))==0);  return SPDR;  }
    من تاجایی که خونده بودم نوشته بود که باید پایه ss رو ابتدا صفر کنیم بعد داده رو ارسال کنیم.
    مشکل دومم هم دقیقا تو این کد هست. اگه بشه یه توضیحی در این مورد بدین. دقیقا این حلقه رو متوجه نمیشم.
    while ((SPSR & (1<<SPIF))==0);
    مبتدیم دیگه.
    یکی هم این قسمت دقیقا چکار میکنه.
    1<<SPIF

  11. #7
    کاربر فعال shahrivar88 آواتار ها
    تاریخ عضویت
    Jul 2011
    نام
    امیر عزیزی
    نوشته ها
    243
    تشکر
    173
    تشکر شده 201 بار در 109 پست

    پیش فرض

    شما پایه ای رو در میکروی مستر در نظر بگیرید. مثلا PORTA.0 این پایه را به SS اسلیو وصل کنید. حال شما با صفر و یک کردن PORTA.0 میتونید ss اسلیو رو کنترل کنید. در نظر داشته باشید نباید ss مستر رو به ss اسلیو وصل کنید و انتظار داشته باشید این کار خود به خود انجام بشه. برای مطالعه بیشتر به پروژه ای که قرار دادم توجه کنید.

    [PHP]
    1<<SPIF
    [/PHP]این دستور یعنی عدد 00000001 را به اندازه SPIF (که عدد 7 است) به چپ شیفت بده. که میشه 10000000
    ُ بیت هفتم ریجستر SPSR است که پرچم وقفه است. این بیت زمانی 1 میشه که ارسال کامل بشه. توی برنامه وقتی داده را در ریجستر SPDR قرار داد توی این خط منتظر میمونه که داده کامل ارسال بشه.

    [PHP]

    while ((SPSR & (1<<SPIF))==0);
    [/PHP]دستور بالا با دستور زیر هیچ تفاوتی ندارد

    [PHP]
    while ((SPSR & (1<<7))==0);
    [/PHP]
    توی هر دو مورد برنامه با چک کردن بیت هفتم ریجستر SPIF منتظر پایان ارسال میمونه. SPIF درون کتابخانه کد ویژن به عدد 7 define شده علتش هم اینه که به جای نوشتن 7 این عبارت رو مینویسن تا شما راحت تر متوجه بشید این 7 چیه!

    برای سایر موارد هم باز اگر پروژه مستر رو بررسی کنید متوجه میشید که داده را چطوری باید ارسال کرد.
    ویرایش توسط shahrivar88 : 01-10-2013 در ساعت 01:18
    سرزمین من\r

    دانلود کتاب آموزش پورت سریال در c#

    http://www.iranmicro.ir/forum/showthread.php?t=9629

  12. تشکرها از این نوشته :


مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •