اطلاعیه

Collapse
No announcement yet.

انتقال عدد اعشاری با میکرو با spi

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

    انتقال عدد اعشاری با میکرو با spi

    لطفا درمورد ارسال یک عدد اعشاری از میکرو به میکرو دیگر از طریق spi کمک کنید.
    میشه اول این عدد را به یک رشته تبدیل کنم سپس هر کدام از اجزای این رشته رو ارسال کنم .
    sprintf (code , %6.3f , float number ) نبدیل به یک رشته
    ارسال با spi : spi (code[0]) و ارسال بقیه اعضای رشته

    #2
    پاسخ : انتقال عدد اعشاری با میکرو با spi

    سلام
    مگه تابع sprintf عدد رو به رشته تبدیل میکرد؟؟؟ oo:

    تابه ftoa بود که اینکار رو میکنه که توی کتابخونه stdlib.h هستش

    عدد float رو میگیره تبدیل میکنه میریزه توی رشته

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

    نمیدونم که c های درپیت الان اینکار رو میکنن یا نه ولی این c مایکروسافته:
    از اشاره گر اون عدد اعشاری استفاده کن :mrgreen:
    قاعدتا باید float توی کدویژن و بقیه 4 بایتی باشه پس مثلا برنامه اینطوری میشه:(تایع spi_out مثلا تابع ارسال شماست روی spi)



    float aaa=3.3336;
    unsigned char *aptr,ss;
    unsigned int i;
    aptr=&aaa;

    for(i=0;i<4;i++){
    ss=*aptr;
    aptr++;
    spi_out(ss);
    }



    البته اینو چک نکردم نمیدونم جواب میده یا نه ولی ممکنه کامپایلر error بده که float رو نمیشه ریخت توی char
    به وبلاگم سر بزنید

    دیدگاه


      #3
      پاسخ : انتقال عدد اعشاری با میکرو با spi

      نوشته اصلی توسط 9720338
      لطفا درمورد ارسال یک عدد اعشاری از میکرو به میکرو دیگر از طریق spi کمک کنید.
      میشه اول این عدد را به یک رشته تبدیل کنم سپس هر کدام از اجزای این رشته رو ارسال کنم .
      sprintf (code , %6.3f , float number ) نبدیل به یک رشته
      ارسال با spi : spi (code[0]) و ارسال بقیه اعضای رشته
      بله، این ساده ترین راهه اما sprintf با فرمت اعشاری حجم زیادی از فلشتون رو اشغال میکنه و ftoa مناسبتره.
      There is nothing so practical as a good theory. — Kurt Lewin, 1951

      دیدگاه


        #4
        پاسخ : انتقال عدد اعشاری با میکرو با spi

        با سلام من می خواستم در مورد انتقال یک متغیر از نوع string مثلا "Amir" از یک میکرو به میکرو دیگر سوال کنم بیشتر در مورد دستورات مربوط که چگونه کامل بفرستم اینم می دونم که اول باید تبدیل بشه اما دستوری که تبدیل می کنه فقط بایت اول رو تبدیل می کنه یعنی (A) رو فقط تبدیل می کنه
        ادیسون: برای موفقیت 1 درصد نبوغ و 99 درصد پشتکار کافی است.

        دیدگاه

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