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

موضوع: مشکل با ویژوال بیسیک و avr

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    Icon16 مشکل با ویژوال بیسیک و avr

    سلام
    من می خوام با ویژوال بیسیک با یه AVR ارتباط برقرار کنم تو ارتباط مشکلی نیست اشکال اینجاست که وقتی از کامپیوتر به میکرو یه کلمه رو مثلا SALAM رو ارسال میکنم کلمه تیکه تیکه ارسال میشه نمیدونم منظورم رو رسوندم یا نه
    کلمه salam تو میکرو اینطوری دریافت میشه
    s
    a
    l
    a
    m
    همشون جدا جدا دریافت میشه از میکرو به کامپیوتر مشکلی نیست کل کلمه یکجا دریافت میشه
    مشکل کجاست کسی میتونه کمک کنه

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

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نام
    سجاد زارعی
    نوشته ها
    32
    تشکر
    21
    تشکر شده 30 بار در 22 پست

    پیش فرض

    سلام!
    اگر ارسالها را با کد خاصی به پایان برسانی مثلا کد 10 اسکی ( رفتن به خط جدید )
    و در میکرو هم بگونه ای تعریف کنی که با دریافت این کد یک خط دریافت شد می تونی کنترل برنامه را در دست بگیری .

    میشه بیشتر توضیح بدی و از چه دستوری در بیسیک استفاده می کنی؟

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


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    پیش فرض

    سلام
    میخوام کلمه salam رو از کامپیوتر رو ال سی که به میکرو وصله نشون بدم ولی کلمه جدا جدا ارسال میشه
    و فقط حرف آخر به نمایش در میاد"m"
    اینا نوع متغییر و نحوه ارسال در ویژال بیسیک هست
    Dim c As String * 5

    c = Text1.Text
    MSComm1.Output = c

    اینم قسمت دریافت کلمه تو بسکلام
    Dim C As String * 5
    Do
    C = Inkey()
    If C > "0" Then
    Cls
    Lcd C
    End If
    Loop
    در ضمن با دستور waitkey هم امتحان کردم نشد
    از میکروی مگا 8 که به ال سی دی وصله استفاده میکنم
    ویرایش توسط ahadgd : 01-03-2011 در ساعت 01:19

  6. #4
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    پیش فرض

    اینم کل فایل
    سورس بسکام , برنامه و سورس ویژوال بیسیک
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip uart.zip (6.9 کیلو بایت, 87 نمايش)

  7. #5
    مدیر انجمن javad naderi آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    جواد نادری زاده
    نوشته ها
    830
    تشکر
    225
    تشکر شده 1,334 بار در 602 پست

  8. کاربران : 2 تشکر کرده اند از شما javad naderi برای ارسال این پست سودمند:


  9. #6
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نام
    سجاد زارعی
    نوشته ها
    32
    تشکر
    21
    تشکر شده 30 بار در 22 پست

    پیش فرض

    سلام.
    کد را به صورت زیر اصلاح کن.

    کد:
    Do
        Input "Enter your name " , C
        Cls
        Lcd C
    Loop

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


  11. #7
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    پیش فرض

    نقل قول نوشته اصلی توسط Wizard نمایش پست ها
    سلام.
    کد را به صورت زیر اصلاح کن.

    کد:
    Do
        Input "Enter your name " , C
        Cls
        Lcd C
    Loop
    با این دستور تو terminal emulator بسکام درست کار می کنه ولی تو وِیژوال بیسیک نه . با این دستور بجای اینکه مقدار C تو ال سی دی نشون داده بشه مقدار تو کامپیوتر نشون داده میشه
    این مشکل تو برنامه ای که آقای javad naderi معرفی کردن هم هست.
    اگر ارسالها را با کد خاصی به پایان برسانی مثلا کد 10 اسکی ( رفتن به خط جدید )
    و در میکرو هم بگونه ای تعریف کنی که با دریافت این کد یک خط دریافت شد می تونی کنترل برنامه را در دست بگیری .
    میشه درباره این توضیح بدی فکر کنم مشکل همینجا باشه!!؟؟

  12. #8
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نام
    سجاد زارعی
    نوشته ها
    32
    تشکر
    21
    تشکر شده 30 بار در 22 پست

    پیش فرض

    کد:
    c = Text1.Text
    MSComm1.Output = c
    در این کد به آخر متغیر کد اسکی 10 که معدل خط جدید است اضافه کن مشکلت حل می شه!

    کد:
    c=c&Asc(10)
    MSComm1.Output = c
    من VB6 ندارم که این کد رو امتحان کنم ولی فکر کنم جواب بده

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


  14. #9
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    Red face

    اگر ارسالها را با کد خاصی به پایان برسانی مثلا کد 10 اسکی ( رفتن به خط جدید )
    و در میکرو هم بگونه ای تعریف کنی که با دریافت این کد یک خط دریافت شد می تونی کنترل برنامه را در دست بگیری
    من این کارو کردم مشکل حل شد
    ممنون Wizard جان
    کد وِیژوال بیسیک:
    کد:
    C= txtSend.Text
    
    MSComm1.Output = C & Chr$(255)
    بسکام :قسمت دریافت رو تو یه حلقه گذاشتم و همه کد های دریافتی رو به هم وصل کردم و وقتی (chr(255 دریافت شد از حلقه خارج میشه و کد دریافتی رو نشون میده
    کد:
    Do
    B = Ischarwaiting()
    If B = 1 Then
     Do
      C1 = C1 + C
      C = Inkey()
      If C = Chr(255) Then
      Cls
      Lcd C1
      C1 = ""
      C = ""
      Exit Do
      End If
     Loop
    End If
    Loop
    حالا فقط میخوام بدونم برنامه ویژال بیسیک اشکال داره که کد رو تیکه تیکه میفرسته یا این طبیعیه و همین طور ارسال مینکنه و برای دریافت کامل باید بصورت بالا عمل کرد تا کد کامل دریافت بشه؟؟
    ویرایش توسط ahadgd : 01-03-2011 در ساعت 14:51

  15. #10
    کاربر علاقه مند
    تاریخ عضویت
    May 2010
    نوشته ها
    30
    تشکر
    0
    تشکر شده 2 بار در 2 پست

    پیش فرض

    کد vb رو دست نزن،مشکلی نداره.من چند تا پروژه سریال کار کردم.درسته حروف تک تک ارسال میشه و چون شما تو حلقه از cls استفاده کردی تمام حروف رو تک تک دریافت می کنه و بدون اینکه شما بتونی تو ال سی دی ببینی پاک می کنه و در نهایت آخرین حرف نمایش داده میشه.کد بسکام رو اینجوری اصلاح کن :


    Do
    C = waitkey()
    Lcd C
    Loop

    تست کن ببین درست نمایش داده میشه یا نه.برای پاک کردن هم می تونی شرط بزاری که اگه مثلا چیزی که دریافت میشه برابر 0 بود cls.

    Do
    C = waitkey()
    If C="0" Then
    Cls
    End If
    else
    lcd c
    Loop

  16. #11
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نام
    سجاد زارعی
    نوشته ها
    32
    تشکر
    21
    تشکر شده 30 بار در 22 پست

    پیش فرض

    خب کد به صورت زیر اصلاح کن!

    کد:
    MSComm1.Output = C & Chr$(13) & Chr$(10)

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


  18. #12
    کاربر علاقه مند
    تاریخ عضویت
    May 2010
    نوشته ها
    30
    تشکر
    0
    تشکر شده 2 بار در 2 پست

    پیش فرض

    اینو واست نوشتم.تستشم کردم جواب داد.البته برنامه واسه مگا 16 نوشته شده.خودت میتونی با کمی تغییرات رو مگا8 هم استفاده کنی.

    دانلود پروژه

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


  20. #13
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sina_vd نمایش پست ها
    کد vb رو دست نزن،مشکلی نداره.من چند تا پروژه سریال کار کردم.درسته حروف تک تک ارسال میشه و چون شما تو حلقه از cls استفاده کردی تمام حروف رو تک تک دریافت می کنه و بدون اینکه شما بتونی تو ال سی دی ببینی پاک می کنه و در نهایت آخرین حرف نمایش داده میشه.کد بسکام رو اینجوری اصلاح کن :


    Do
    c = waitkey()
    lcd c
    loop

    تست کن ببین درست نمایش داده میشه یا نه.برای پاک کردن هم می تونی شرط بزاری که اگه مثلا چیزی که دریافت میشه برابر 0 بود cls.

    Do
    c = waitkey()
    if c="0" then
    cls
    end if
    else
    lcd c
    loop
    بازم سلام
    خوب این حالت درست کار میکنه و درست نمایش داده شده ولی یه مشکلی که اینجا هست تو متغییر c فقط آخرین کارکتر ذخیره میشه که من کل کلمه رو لازم دارم
    خب کد به صورت زیر اصلاح کن!
    Mscomm1.output = c & chr$(13) & chr$(10)
    اگه میشه بگید این کد چی کار میکنه ؟ تو این حالت هم باید تو میکرو تست کنم ببینم چه کارکتری دریافت میشه؟

  21. #14
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نام
    سجاد زارعی
    نوشته ها
    32
    تشکر
    21
    تشکر شده 30 بار در 22 پست

    پیش فرض

    در کد زیر زمانی آیسی از کد Input خارج میشه که کاراکتر vbCrLf رو دریافت کنه و بره به خط نشون دادن . با terminal emulator بسکام در زمانی که اینتر می زنی کد رو روی LCD نشون می ده
    ولی در بیسیک باید این کد را با دستور باید فرستاد تا به میکرو فهموند که خط تموم شده و می تونی نشون بدی!

    کد:
    Input "Enter your name " , C
    Cls
    Lcd C
    
    vbCrLf=13+10
    در پیوست فایل اجرایی با پروتئوس گذاشتم .
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar Uart.rar (24.9 کیلو بایت, 72 نمايش)

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


  23. #15
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    Exclamation ممنون

    Wizard

    ممنون این دقیقا همون چیزی بود که می خواستم

  24. #16
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    Talking

    باز یه مشکل دیگه این وسط پیدا شد
    اولین ارسال درست انجام میشه
    میکرو به بیسک ارسال میکنه enter your name
    بعد از بیسیک به میکرو یه اسم ارسال میکنم دریافت میکنه اونم نشون میده تا اینجا درست بود حالا دوباره میکرو ارسال میکنه enter your name اما با یه کارکتر اضافه که نمی دونم چیه دوباره از بیسیک یه اسم ارسال میکنم به میکرو باز اینجا هم یه کارکتر اضافه که به شکل سه تا خط اول اسم تو ال سی دی نشون میده مثل این (lll)
    تو terminal emulator بسکام این اشکال نیست ولی تو بیسیک هست ؟؟؟؟؟؟
    من چی کار کنم

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

    پیش فرض

    ولین ارسال درست انجام میشه
    میکرو به بیسک ارسال میکنه enter your name
    بعد از بیسیک به میکرو یه اسم ارسال میکنم دریافت میکنه اونم نشون میده تا اینجا درست بود حالا دوباره میکرو ارسال میکنه enter your name اما با یه کارکتر اضافه که نمی دونم چیه دوباره از بیسیک یه اسم ارسال میکنم به میکرو باز اینجا هم یه کارکتر اضافه که به شکل سه تا خط اول اسم تو ال سی دی نشون میده مثل این (lll)
    تو terminal emulator بسکام این اشکال نیست ولی تو بیسیک هست ؟؟؟؟؟؟
    سلام این کاراکتر اضافه درواقع کاراکتر Line Feed یا سرِخط هست. شما می تونید بعد از اینکه متن رو از ویژوال بیسیک دریافت کردید با دستور Mid فقط کاراکتر دوم به بعدش رو بگیرید! اینطوری کاراکتر اول دیگه نشون داده نمیشه.

    البته این کاراکتر در اولین ارسال وجود نداره ، اما در ارسال های بعدی به اول هر ارسال اضافه میشه.

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


    وبلاگ شخصی من

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


  27. #18
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    Icon16

    اول باید یه تشکر کنم بابت اینکه این همه کمک میکنید
    دوم اینکه
    با دستور mid اون اشکال رفع شد ولی تو ویژوال بیسیک با چه دستوری اون رو بر طرف کنم ؟؟؟
    یه سوال دیگه هم دارم اون اینکه چرا وقتی کارکتری رو به میکرو ارسال می کنم دوباره همون کارکتر رو میکرو بر میگردونه به وِیژوال بیسیک؟؟؟
    سوم اینکه بازم ممنون

  28. #19
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نام
    سجاد زارعی
    نوشته ها
    32
    تشکر
    21
    تشکر شده 30 بار در 22 پست

    Icon16

    سلام
    اگر این جوری مشکلت حل شد در بیسیک هم کد Mid وجود داره
    و در مورد سوال دوم (ارسال کاراکتر) از کد زیر استفاده کن

    کد:
    Input "Enter your name " , C Noecho
    ولی فکر نکنم اشکال کارت این باشه ! از کریستال 11.0592 مگاهرتز استفاده کن چون خطای ارسال حذف می شود!

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


  30. #20
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2009
    نوشته ها
    50
    تشکر
    53
    تشکر شده 21 بار در 19 پست

    Icon16

    مشکل کاملا حل شد
    اشکال همون noecho بود با این دستور هم کارکتری اضافه که میکرو دوباره ارسال میکرد به بیسیک حذف شد هم کارکتر نامعلوم که بین این دوتا بود که فکر کنم همون کارکتر line feed بود حذف شد
    ممنون

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

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

  1. [سوال] ارتباط با کامپایلر از طریق ویژوال بیسیک . کامپایل برنامه
    توسط vahidasm در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 4
    آخرين نوشته: 14-12-2013, 14:16
  2. برنامه نقاشی ویندوز 7 را به ویندوزهای ویستا و ایکس پی اضافه کنید
    توسط arsalan681 در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 1
    آخرين نوشته: 20-01-2010, 15:43
  3. نواز وظیفه ویندوزهای ایکس پی و ویستا را به نوار وظیفه ویندوز 7 تبدیل کنید
    توسط arsalan681 در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 0
    آخرين نوشته: 19-01-2010, 13:39
  4. مجموعه اموزش ویژوال بیسیک
    توسط 1nafar در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 0
    آخرين نوشته: 25-03-2009, 09:47
  5. معادل دستور lookup بیسیک تو کدویژن
    توسط alirezaavr در انجمن AVR
    پاسخ: 3
    آخرين نوشته: 06-09-2008, 23:50

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

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