NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4246 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 31

موضوع: اشکال ارسال سریال

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض اشکال ارسال سریال

    سلام دوستان من میخوام یک کلیدی رو که به یک پین میکرو متصل کردم بخونم و اگر 1 شد عدد 1 رو ارسال کنم از طریق سریال به میکرو دیگر
    حالا تو گیرنده چی بنویسم که دقیقا همون عدد رو بخونه؟؟
    if pinb.0=1 then print 1

    تو گیرنده
    a=inkey
    if a=1 then port c.1=1
    ولی نمیشه

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

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    دوستان لطفا مرا یاری دهید

  4. #3
    مدیر باز نشسته shayanmelody آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    شایان نیکزاد
    نوشته ها
    576
    تشکر
    283
    تشکر شده 1,038 بار در 473 پست

    پیش فرض

    سلام
    موقع كامپايل ازت خطا ميگيره ؟ چون ايني كه الآن نوشتي صحيح نيست



    بعد از چند وقت برگشتم



  5. #4
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    نه خطا نگرفته ازم
    شما صحیحشو راهنمایی کنید لطفا
    من توگیرنده میخوام دقیقا اون چیزی که فرستادم بخونم مثلا 1 فرستادم توگیرنده بگم if a=1 then folan ولی نمیشه باید بگم if a>0 then folan این و قبول میکنه


  6. #5
    مدیر باز نشسته shayanmelody آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    شایان نیکزاد
    نوشته ها
    576
    تشکر
    283
    تشکر شده 1,038 بار در 473 پست

    پیش فرض

    اين واس فرستنده :

    کد:
    do
    while pinb.0=1
    print "1"
    wend
    loop
    اينم برا گيرنده :

    کد:
    dim a as string*1
    do
    input a
    if a="1" then portc.1=1
    loop
    به همين راحتي



    بعد از چند وقت برگشتم



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


  8. #6
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

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

  9. #7
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    سلام دایی جان - قطعا برنامه درست و چیز خاصی نداره که نخواد جواب بده - احتمال میدم که گیرنده شما به دلیل داده رو دریافت نمی کنه - فیوز بیت ها و فرکانس کاری رو حتما چک کن و البته اتصالات مدار رو

  10. #8
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    فرکانسم 12 مگاهرتز کریستال خارجیه
    فیوز بیتم رو 1111 گذاشتم
    گیرندمم خروجی رو میگیره ولی دستور شرط رو اجرا نمیکنه
    من print "1" رو میفرستم ولی توگیرندهinput a
    if a="1" then portb.0=1 رو انجام نمیده
    حتما باید بگم if a>0 then portb.0=1 اینو اجرا میکنه
    من میخام دقیقا رو چیزی که فرستادم مانور بدم

  11. #9
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    خوب شما اول فرستنده رو وصل کن به کامپیوتر ببین کارکتر 1 رو ارسال میکنه یا نه - که حداقل از یه طرف ماجرا مطمئن باشی ! در ضمن تو برنامه حتما مقدار کریستال و نرخ ارسال (باوود) رو ست کن - بیسکام کار نکردم و نمی دونم دقیقا چی میشه و چطوری باید ستش کرد ولی فکر کنم
    کد:
    $baud
    $crystal
    باشه

  12. #10
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    این هارم که انجام دادم
    تو کامپیوترم ارسال نمیشه چون دارم با لب ویو میخونم که اونم ارور میده

  13. #11
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

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

  14. #12
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط leylijoon نمایش پست ها
    فرکانسم 12 مگاهرتز کریستال خارجیه
    سلام مهندس
    دست دوستان درد نكنه كه اون چيزايي كه لازم ميشده رو گفتن.
    فقط يه نكته ديگه:
    اگه ميخواين تو ارتباط سريال ديتايي كه ارسال/دريافت ميكنيد بدون خطا باشه بهتره از كريستال هايي با فركانس هاي 11.0592 يا 14.7456 يا 7.3728 مگاهرتز استفاده كنيد.
    _____________________________________
    _____________________________________

  15. #13
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    سلام مهندس
    دست دوستان درد نكنه كه اون چيزايي كه لازم ميشده رو گفتن.
    فقط يه نكته ديگه:
    اگه ميخواين تو ارتباط سريال ديتايي كه ارسال/دريافت ميكنيد بدون خطا باشه بهتره از كريستال هايي با فركانس هاي 11.0592 يا 14.7456 يا 7.3728 مگاهرتز استفاده كنيد.

    hyper terminal که تو ویندوز7 ندارم
    tera term هم نمی دونم چیه ..
    بله از 11.0592 استفاده می کنم
    من دیتا هام رو وصل کردم به یک مبدل سریال به یو اس بی که تو فروشگاه سایت هست و بعد اومدم دیتا هام رو ببینم

    ok????
    از tx میکرو به پایه 3 و زمینشم که به پایه 5 مبدل

  16. #14
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    دوستان من یکسره پا کامم یکی یه لطف کنه

  17. #15
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    خوب دوست من شما عینا دو تا پروژه رو بذار ببینیم چکار کردی و چی به چی هست
    البته اگه بتونی یه مداری هم از اونچه بستی رو قرار بدی عالی میشه

  18. #16
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    http://faupload.com/upload/91/Khordad/usar1t.rar
    این فایلش که براتون گذاشتم لطف کنید بررسی کنید

  19. #17
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    سلام

    با تشکر از همه ی دوستانی که به این دوست عزیزمون کمک کردن.

    قضیه از این قراره : باز دل من دوباره.... اِ... اِ... اِ... قاطی کردما!!؟

    در هنگام ارسال متغیر یا بایت توسط دستور Print دو کاراکتر اینتر و لاین فید هم ارسال میشه! (بطور پنهان) وقتی شما در طرف گیرنده بایت ارسالی رو دریافت می کنید درواقع فقط دارید لاین فید رو دریافت می کنید! چون کاراکتر لاین فید (که کد دسیمالس 10 هست) به ابتدای بایت ارسالی چسبیده و انتهای بایت ارسالی هم کاراکتر اینتر (که کد اسکیش 13 هست) چسبیده! درواقع اون چیزی که شما دریافت می کنید دقیقا همون چیزی که ارسال کردید نیست! بلکه یه سری متعلقات هم داره.

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

    حالا برای رفع این حالت باید در انتهای دستور Print از کاراکتر ; استفاده کنید. در اینصورت دیگه کاراکتر های لاین فید و اینتر به ابتدا و انتهای بایت ارسالی شما نمی چسبن!

    مثال : ;Print 1 به همین راحتی

    شما تا اینجارو تست کن و نتیجه رو بگو تا بعدا بیشتر راجع بهش بحث کنیم.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

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


  21. #18
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    ممنون برار
    ولی من متغییر رو تو فرستنده string تعریف کردم حالا تبدیل به بایت کنم و بگم
    [PHP] print 1;[/PHP]
    و تو گیرنده متغییر رو از جنس byte تعریف کنم وبگم
    [PHP] if a=1 then folan....[/PHP]
    درسته؟؟
    برای من این مهمه که با زدن کلید تو فرستندم یک چیزی برام به میکرو گیرنده بفرسته که بفهمم کلیده اونو زده شده
    همین

  22. #19
    مدیر باز نشسته shayanmelody آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    شایان نیکزاد
    نوشته ها
    576
    تشکر
    283
    تشکر شده 1,038 بار در 473 پست

    پیش فرض

    سلام
    ببين دوست عزيز ، وقتي كه شما مينويسي print 1 مياد كد اسكي 1 كه فكر كنم 46 باشه (اصلا مطمئن نيستم كه چنده) بعدش شما تو گيرنده نوشتي كه if a=1 ! خوب به هيچ وجه اين شرط برقرار نميشه !‌
    ساده ترين راه براي حل مشكل شما اين هست كه بياي از رشته استفاده كني ،‌ همون برنامه اي كه تو صفحه قبل قرار دادم
    براي محكم كاري بيا قسمت گيرنده يه ال سي دي بزار ببين وقتي كه كيليد زده ميشه رو ال سي دي چي نشون ميده
    اميدوارم ديگه اينقدر دور خودت نپيچي



    بعد از چند وقت برگشتم



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

    KHM

  24. #20
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    54
    تشکر
    11
    تشکر شده 4 بار در 4 پست

    پیش فرض

    حاجی به پیر به پیغمبر منم همون کارو کردم
    ولی ال سی دی پیشنهاده خوبیه

صفحه 1 از 2 12 آخرینآخرین

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

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