ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12
  1. #1
    2008/12/11
    400
    12

    كمك در ارسال سريال عدداز نوع int

    سلام بچه ها . من مي خوام عددي از نوع int رااز طريق usart بفرستم(codevision) اما نمي دونم چرا نمي شه (البته تو پروتوس و عملي امتحان نكردم) . براي اينكه عددي رو بفرستم ابتدا اونو به رشته تبديل مي كنم بعد از طريق تابع puts اونو مي فرستم وقتي كه مي خوام همون عدد از نوع int رو بفرستم از تابع printf استفاده مي كنم اما جواب نمي ده نمي دونم چرا ببيند مشكل از كجاست .
    اين برنامه اي هست كه با puts مي فرستم و جواب مي ده(برنامه ي تست)
    for(i=0;i<15;i++){ sprintf(a,"%d",i);
    puts(a);
    delay_ms(1000);
    }

    تو گيرنده هم از اين برنامه استفاده مي كنم
    scanf("%s",data);
    اما اين برنامه زير جواب نمي ده براي فرستنده
    for(i=0;i<15;i++){ printf("%d",i);
    delay_ms(1000);

    براي قسمت گيرنده هم
    int a;
    scanf("%d",a);
    ممنون مي شم كمكم كنيد
  2. #2
    2007/07/09
    تهران
    247
    2

    پاسخ : كمك در ارسال سريال عدداز نوع int

    دوست عزیز اول توی برنامت رشته رو با همون دستور sprint به رشته تبدیل کن بعد اونو با دستور puts ارسال کن. اینکار رو توی حلقه نذار . برای اینکه مطمئن باشی اطلاعات ارسال میشه، فرستنده و گیرنده رو با هم هم زمان تغذیه بده ولی قبل از حلقه while() تو برنامه فرستنهد مثلا یه تاخیر 2 ثانیه ای بذار.
    اینو در نظر بگیر که وقتی یه عدد رو به رشته تبدیل می کنی طولش تغییر می کنه . یعنی اونطرف تو فرستنده باید یه کاراکتر بیشتر بخونی!! در ضمن توی گیرنده از تاخیر استفاده نباید بکنی چون دستوراتی مثل scanf و getchar خودشون تا وقتی که چیزی نیاد منتظر می مونن حالا اگه شما از تاخیر استفاده کنی ممکنه اطلاعات رو از دست بدی . همه اینکار ها موقعی جواب میده که شما در گیرنده یه بافر نرم افزاری تعریف کرده باشی. اگه این کار رو نمی دونی چطوری باید انجام بدی توصیه می کنم اول از ارسال اطلاعاتت مطمئن بشی. مثلا اطلاعات رو بده روی کامپیوتر و اونجا ببین.
    برای شروع با همچین چیزهایی سعی کن اول مثلا یه ماراکتر بفرستی و اونطرف بگیری . حالا اگه تونستی یه کاراکتر بفرستی برو سراغ ارسال 2 تا کاراکترو رشته و اینجور چیزا. یه ذره حوصله کنی و دقت حتما جواب می گیری!!
  3. #3
    2008/12/11
    400
    12

    پاسخ : كمك در ارسال سريال عدداز نوع int

    ببين دوست خوبم منظور من رو متوجه نشديد ببينيد همون طور كه شما گفتيد من تو گيرنده تاخير نمي زارم .اون تاخيرهاهم توي فرستنده است . من دوباره سوالم رو تكرار مي كنم البته يه جور ديگه . ببينيد وقتي ما عددي رو با استفاده از تابعputs مي فرستيم اين تابع فكر كنم كد اسكي او كاراكتر رو مي فرسته . اما من مي خوام همون عددي رو كه مي فرستم روي پورت بره نه اينكه كاراكتر بدم بعد تابع اونو به كد تبديل كنه نه !! ببينيد مثلا من مي خوام دقيقا كد 0xAA رو روي پورت بفرستم دقيقا همين عدد بازم تاكيد مي كنم همين عدد براي اين كار بايد چيكار كنم
  4. #4
    2007/07/09
    تهران
    247
    2

    پاسخ : كمك در ارسال سريال عدداز نوع int

    من منظور شما رو اشتباه متوجه شدم. ببخشید
    تبدیل به کد اسکی رو تابع puts انجام نمیده بلکه sprint با اون فرمتی که شما مشخص می کنین اینکارو می کنه. تابع puts فقط ارسال یه رشته است . به عبارتی یه حلقه تکرار از تابع putchar ه که وقتی به اخر رشته می رسه حلقه خاتمه پیدا می کنه. برای اینکه عدد رو بفرستی از فرمت u% استفاده کن. البته فکر کنم d% هم همون کارو می کنه. ولی متغیر نوع int v رو نمی تونی اینکارو بکنی چون فکر کنم فقط نیبل پایین عدد int ارسال میشه. میتونی عدد رو با نیبل پایین و بالا با دستور putchar دوبار بفرستی .
  5. #5
    2008/12/11
    400
    12

    پاسخ : كمك در ارسال سريال عدداز نوع int

    اصلا یه چیز دیگه می تونید بگید این برنامه (می دونم خیلی سادس) مشکلش چیه ؟
    برای فرستنده


    int a=5;
    printf("%d",a);
    delay_ms(100);


    برای گیرنده

    int b;
    scanf("%d",b);
    PORTA=b;

  6. #6
    2008/12/11
    400
    12

    پاسخ : كمك در ارسال سريال عدداز نوع int

    تق تق كسي خونه نيست؟؟؟؟
  7. #7
    2007/07/09
    تهران
    247
    2

    پاسخ : كمك در ارسال سريال عدداز نوع int

    شما بافر نرم افزاری تعریف کردی یا نه؟ اگه نکردی معلومه جواب نمیده.
  8. #8
    2009/01/21
    1,059
    4

    پاسخ : كمك در ارسال سريال عدداز نوع int

    چرا از getchar و putchar استفاده نمیکنی ؟
    ببین با این درست میشه...
    printf("TX:%02u",a);

    scanf("RX:%02u",b);

    ذكات علم ياد دادنه ....
  9. #9
    2008/12/11
    400
    12

    پاسخ : كمك در ارسال سريال عدداز نوع int

    سلام بچه ها من می خواستم به عددی رو دقیقا همون عدد رو روی پورت بفرستم اما با توابع نتونستم پس چیکار کردم (بهم نخندیدا !!!!!.....)

    UDR = number;

    به خدا حواس نداریم .....
  10. #10
    2006/10/07
    تهران
    888
    18

    پاسخ : كمك در ارسال سريال عدداز نوع int

    سلام من با کد ویژن کار میکنم و میخام یه عدد 3 رقمی از نوع int رو بفرستم و اون طرف با اینتراپت UDR این عدد رو بگیرم . اگه عددم زیر 256 باشه نشون میده ولی وقتی بالاتر میره تفاضل اون از 256 رو نشون میده برای ارسال از
    کد:
    printf ("%c", green);
    و برای گیرنده از
    کد:
    score_1=data;
    در UDR اینتراپت استفاده میکنم .
    'گفتم دیگه موضوع جدید ایجاد نکنم همینجا پرسیدم
    A-Hosseini
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12

موضوعات مشابه

  1. ارسال سريال با اردينيو به رايانه
    توسط baghernaseri در انجمن خانواده Arduino
    پاسخ: 4
    آخرين نوشته: 2015/09/04, 12:00
  2. انتراپت ارسال سريال در 1768
    توسط mehdia1968 در انجمن NXP
    پاسخ: 3
    آخرين نوشته: 2014/09/25, 17:50
  3. ارسال 16 يا 32 بيت با سريال
    توسط msadegh در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2014/06/01, 18:44
  4. ارسال به صورت هگز در ارتباط سريال
    توسط ajapyy در انجمن Labview
    پاسخ: 12
    آخرين نوشته: 2014/05/01, 18:21
  5. مشكل ارسال سريال
    توسط رزگار رحيمي در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 12
    آخرين نوشته: 2006/08/06, 15:02

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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