اطلاعیه

Collapse
No announcement yet.

ارسال آرایه از نوع int با پورت سریال

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

    ارسال آرایه از نوع int با پورت سریال

    سلام دوستـــان
    چطوری میشه آرایه ای رو به شکل رشته درآورد و بصورت سریال ارسالش کرد؟ :agree:

    #2
    پاسخ : ارسال آرایه از نوع int با پورت سریال

    به دوقسمت LSB , MSB تقسیم شون کن و بعد ارسال کن
    کد:
    unsigned int WORD;
    unsigned char MSB,LSB;
    
    MSB=(WORD >>8)&0xFF;
    LSB=WORD&0xFF;
    
    putchar(MSB);
    putchar(LSB);
    موفق باشید
    امام علي (عليه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

    دیدگاه


      #3
      پاسخ : ارسال آرایه از نوع int با پورت سریال

      مثلا مقادیر 25و21و20و19و21و23و25و26و21و20و19و25 داخل آرایم هستن بصورت int (البته داخل eeprom(
      حالا من می خوام اینارو به صورت یکجا و با فرمت زیر از پورت سریال ارسالشون کنم یعنی اون طرفی که اطلاعاتو می گیره بصورت زیر دریافت کنه
      "25;21;20;19;21;23;25;26;21;20;19;25"
      :question: :question: :question: :question: :question: :question: :question:

      دیدگاه


        #4
        پاسخ : ارسال آرایه از نوع int با پورت سریال

        دوستان یکم شفافتر توضیح می دم
        تو خانه ی 0 آرایه ی a عدد 20 و تو خانه 1 اون عدد 50 هستش
        من می خوام مقادیر این دوخانه رو بصورت "2050" از پورت سریال ارسال کنم برن :eek:

        دیدگاه


          #5
          پاسخ : ارسال آرایه از نوع int با پورت سریال

          اگه مقادیر هگز باشه برای ترکیبشون اینطور بنویس:
          کد:
          char string[5];
          unsigned int WORD;
          unsigned char MSB=0x25;
          unsigned char LSB =0x20;
          
          WORD=(MSB<<8)|LSB; // 0x2520
          
          sprintf(string,"%x",WORD); // "2520"
           puts(string);
          اگه مقادیر دسیمال هست برای ترکیبشون اینطور بنویس:
          کد:
          char string[5];
          unsigned int WORD;
          unsigned char B1=25;
          unsigned char B2=20;
          
          
          WORD=B1*100;
          WORD+=B2; // 2520
          
          sprintf(string,"%d",WORD); // "2520"
           puts(string);
          فقط کافیه یک تابع بنویسی تا آرایه شما را 2تا 2تا تبدیل به string کنه و شما خروجیش را بگیری
          اگه مشکلی بود مطرح کن
          موفق باشید
          امام علي (عليه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

          دیدگاه


            #6
            پاسخ : ارسال آرایه از نوع int با پورت سریال

            سلام دوستان :rolleyes: سال نو مبارک :bye

            بنده می خواستم اطلاعات ی آرایه int رو از میکرو به کامپیوتر ارسال کنم ولی چون نمی تونستم می خواستم اول اطلاعات آرایه رو به ی رشته ترتیبی تبدیل کنم بعد ارسالش کنم ولی متوجه شده که اگه گزینه EESAVE فیوز بیت های مربوط به میکرو رو فعال کنیم هیچگونه مشکلی نخواهیم داشت
            مشکلم حل شد :wow: اینم کدش: شاید به دردتون بخوره
            کد:
            eeprom int a[24]={0};
            .
            .
            .
            char b[];
            int i=0;
            while(1)
            {
            for(i=0;i<=24;i++)
            {
            sprintf(b,"%d",a[i]);
            puts(b);
            puts("\r");
            delay_ms(50);
            
            }
            }

            دیدگاه

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