NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3690 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 7 از 7

موضوع: مشکل در ارسال داده به صورت سریال!

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نوشته ها
    40
    تشکر
    33
    تشکر شده 9 بار در 4 پست

    پیش فرض مشکل در ارسال داده به صورت سریال!

    سلام دوستان
    من از زمانی که با avr ها کارمو شروع کردم این مشکل و دارم
    و کسی هم جواب درست حسابی بهم نتونسته بده در این مورد
    چون الان به خاطر همین مشکل کل پروژه هر از چند گاهی سکته میزنه که نباید بزنه!


    اول از همه بگم که از کریستال 11.592-16-12-7.3728
    در هر باود ریتی امتحان کردم
    مشکل پا برجاست

    مشکلم دقیقا اینه که وقتی داده ارسالی رو از طریق hyper terminal چک میکنم همه چیز ردیفه
    ولی همین که داده رو از میکرو اول به میکرو دوم میفرستم که رو ال سی دی نشونش بدم یه کاراکتر اضافی اول رشته پیدا میشه که چون به طور راندوم گاهی حذف میشه نمیشه با کم کردن طول رشته حذفش کرد
    عکس ها کاملا گویا هستن فک کنم
    اینم سورس برنامه ال سی دی:
    کد:
    $regfile = "M8def.dat"$crystal = 7372800
    $baud = 19200
    
    
    Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , Db7 = Pinc.5 , E = Pinc.1 , Rs = Pinc.0
    Config Lcd = 20 * 4
    Cursor On
    Cls
    Dim A As String * 100
    
    
    Cls
    Lcd "starting..."
    Wait 1
    Do
    Input A
    Cls
    Home
    Lcd A
    Loop
    End
    حالا اگه این مورد چاره ای داره،لطفا منو راهنمایی کنین
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: DSC_1576.jpg
مشاهده: 29
حجم: 74.6 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.jpg
مشاهده: 27
حجم: 119.6 کیلو بایت  

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

  3. #2
    کاربر فعال
    تاریخ عضویت
    Jul 2010
    نام
    مرتضی مجتهدی
    نوشته ها
    313
    تشکر
    1
    تشکر شده 358 بار در 203 پست

    پیش فرض

    سعی کنید از INPUT استفاده نکنید
    در فرستنده این رو تست کنید :
    Print "test";chr(13);

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


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نوشته ها
    40
    تشکر
    33
    تشکر شده 9 بار در 4 پست

    پیش فرض

    تا جایی که بنده اطلاع دارم،کمپایلر بسکام خودش همون کد اینتر و بعد پیرینت ازافه میکنه به کد برنامه!
    در ضمن در هر صورت باید از waitkeyیا input
    استفاده کرد،و چاره ای جز این نیست(اگه هست،به منم بگین،چون بلد نیستم!)

  6. #4
    کاربر فعال
    تاریخ عضویت
    Jul 2010
    نام
    مرتضی مجتهدی
    نوشته ها
    313
    تشکر
    1
    تشکر شده 358 بار در 203 پست

    پیش فرض

    معمولا کد لاینفید و اینتر با هم ارسال میشه که اون بایت اضافه فکر کنم لاین فید یا همون اسکی 10 هست.
    بایت UDR رو مستقیما تا زمانی که مثلا کد اسکی 13 برسه بخونید(همون inkey )

  7. کاربران : 2 تشکر کرده اند از شما modj.ir برای ارسال این پست سودمند:


  8. #5
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نوشته ها
    40
    تشکر
    33
    تشکر شده 9 بار در 4 پست

    پیش فرض

    نقل قول نوشته اصلی توسط modj.ir نمایش پست ها
    معمولا کد لاینفید و اینتر با هم ارسال میشه که اون بایت اضافه فکر کنم لاین فید یا همون اسکی 10 هست.
    بایت UDR رو مستقیما تا زمانی که مثلا کد اسکی 13 برسه بخونید(همون inkey )
    مهندس من متوجه منظورت نشدم
    لینفید چیه دیگه؟
    خودشم با inkey چطور یه رشترو بخونم؟
    این دستور فقط اولین کاراکتر رشته رو برمیگردونه

  9. #6
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نوشته ها
    40
    تشکر
    33
    تشکر شده 9 بار در 4 پست

    پیش فرض

    اقای مجتهدی بابت راهنمایی عالیتون ممنون
    با یه کمی جستو جو دقیقا فهمیدم منظورتون رو
    کد:
    CARRIAGE RETURN (CR) AND LINE FEED (LF)
    کد:
    In the previous example you can also see that a second print statement always prints the printed text to the following line. This is caused by the fact that the print statement always adds the CR and LF characters.
    
    Basically if we state:
    Print“ABC”
    We send 65 66 67 13 10 to the UART. (In binary format)
    
    The carriage return character (13) returns the cursor back to column position 0 of the current line. The line feed (10) moves the cursor to the next line.
    
    Print“ABC”;
    When we type a semicolon ( ; ) at the end of the line...
    Bascom does not send a carriage return/line feed, so you can print another text after the ABC on the same line.
    
    Print“ABC”;Chr(13) ;
    
    This would send only ABC CR. The next print would overwrite the ABC.

    ویرایش توسط amin69 : 09-03-2014 در ساعت 23:34

  10. #7
    کاربر علاقه مند
    تاریخ عضویت
    Jun 2007
    نوشته ها
    62
    تشکر
    41
    تشکر شده 9 بار در 7 پست

    پیش فرض

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

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

  1. اصوا طراحی و ساخت یک پروژه
    توسط mj3747 در انجمن گفت و گوي آزاد
    پاسخ: 10
    آخرين نوشته: 13-03-2013, 11:29
  2. فروش برد at917x256 به همرا دو تا میکرو آن به صورت جدا
    توسط mohpooria در انجمن مباحث کار و کاریابی/تبلیغات/بازارچه
    پاسخ: 1
    آخرين نوشته: 23-02-2013, 23:56
  3. خواندن چند پایه که به صورت ورودی تعریف شده
    توسط ramin.st در انجمن AT91 series (ATMEL)
    پاسخ: 7
    آخرين نوشته: 11-10-2012, 05:06
  4. اشکال ارتباط mmc با مگا32 بصورت Fat
    توسط ahadgd در انجمن AVR
    پاسخ: 7
    آخرين نوشته: 14-08-2011, 20:04
  5. صورت حساب موبایل
    توسط arsalan681 در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 0
    آخرين نوشته: 11-01-2010, 16:31

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

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