اطلاعیه

Collapse
No announcement yet.

SPI نرم افزاری در کدویژن

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

    SPI نرم افزاری در کدویژن

    با سلام
    من SPI را به صورت سخت افزاری در کد ویژن راه اندازی کردم و 2 تا میکرو را به هم متصل کردم . اما حالا می خوام SPI را نرم افزاری کانفیگ کنم . کسی می تونه منو راهنمایی کنه؟

    #2
    پاسخ : SPI نرم افزاری در کدویژن

    سلام دایی
    من از این روتین که خودم نوشتم استفاده می کنم:
    کد:
    unsigned char softspi(unsigned char invar) 
      {
      unsigned char j,outvar;
      outvar=0;
      j=128; 
      while(j>0)
        {
    	SPI_Do_pin=(invar&j==j);
        SPI_clk_pin=0;
        SPI_clk_pin=1;
        if(SPI_Di_pin) outvar|=j;    
        j>>=1;    
        }
      return(outvar);
      };
    با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

    دیدگاه


      #3
      پاسخ : SPI نرم افزاری در کدویژن

      سلام
      ببخشید من درست متوجه نشدم. می شه بیشتر توضیح بدین ؟در بسکام می شه در SPI نرم افزاری از هر پورت دلخواه برای ارسال و دریافت داده ها استفاده کرد . آیا در این روتین شما این قابلیت وجود داره یا از همان پین های سخت افزاری قبلی و روی باس سخت افزاری SPI استفاده می شه و فقط با بالا و پایین بردن پین SS اسلیو ها انتخاب می شن؟

      دیدگاه


        #4
        پاسخ : SPI نرم افزاری در کدویژن

        بعد از کلی گشتن تو تالار دیدم آقای سپاس یار نوشتن کدویژن قابلیت تعریف نرم افزاری پین های SPI را نداره! به هر حال ممنون از آقای سپاس یار عزیز

        دیدگاه


          #5
          پاسخ : SPI نرم افزاری در کدویژن

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

          دیدگاه


            #6
            پاسخ : SPI نرم افزاری در کدویژن

            نوشته اصلی توسط ahmadmn
            کد:
            	SPI_Do_pin=(invar&j==j);
            دوستان کسی میدونه منظور این خط چی هست؟ برنامه ی کامل توی پست شماره 2 هست که خیلی کوتاهه. اگر تونستین یه نگاه بندازین. تشکر

            دیدگاه


              #7
              پاسخ : SPI نرم افزاری در کدویژن

              همونطور که میدونید 128 یعنی یک عدد 8 بیتی که بیت 7 اون یک هستش.
              فرض کنید j برابر با 128 هستش. وقتی در عدد ورودی تابع and بشه، به جز بیت هفتم، بقیه بیت ها صفر میشند. حالا اگر بیت هفتم یک بوده باشه، (یعنی عدد ورودی تابع and در 128 بشه، باز هم یک می مونه و اگر صفر باشه که نتیجه میشه صفر. خوب پس کار این خط چیه ؟
              این خط میاد و سمت راست تساوی چک می کنه اگر بیت nام (128 یعنی بیت هفتم، 64 یعنی بیت 6 و ...) یک بود، پس نتیجه and میشه عددی که بیت nام اون یک هستش و جواب قسمت راست میشه یک و در غیر این صورت میشه صفر.
              کارش هم اینه از سمت راست بیت به بیت چک می کنه ببینه یک یا صفر.
              ---------
              .
              .
              ...........

              دیدگاه

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