اطلاعیه

Collapse
No announcement yet.

مشکل در دریافت اعداد در میکرو با ویژوال بیسیک از طریق rs232

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

    مشکل در دریافت اعداد در میکرو با ویژوال بیسیک از طریق rs232

    سلام
    من یک برنامه ویژوال بیسیک دارم که چند عدد 32 بایتی R0 -R5 به صورت Hex برای میکرو میفرسته در برنامه میکرو با کدویژن وقفه دریافت USART فعاله حالا من در دریافت هر عدد به جای اینکه 4 بار اینتراپت بگیرم 8 بار اینتراپت میگیرم یعنی 32 بیت در8 مرحله دریافت میشه 4بیت 4بیت(نیبل-نیبل) ؟؟؟؟؟؟؟؟
    برای مثال اگر R0=150A3010
    باشه اعداد 1و5و0وAو3و0و1و0 دریافت میشه
    من می خوام 15و 0Aو30 و10 دریافت بشه


    لطفا در مورد علت این امر و رفع آن کمک کنید با تشکر
    MSComm1.Settings = "9600,N,8,1" ' Set UART parameters
    MSComm1.CommPort = 1 ' Set the port number
    MSComm1.PortOpen = True ' Required, might lock port

    ......
    Global R(0 To 5) As Long
    ....
    R(1) = 2 ^ 24 * (Prescaler - 4) / 4 + Phase * 2 ^ 12 + MOD_

    ......

    Private Sub Update_R1_Click()
    ...
    MSComm1.Output = Hex(R(1), 1)
    ....
    End Sub

    #2
    پاسخ : مشکل در دریافت اعداد در میکرو با ویژوال بیسیک از طریق rs232

    مشکلتون رو درست نفهمیدم
    دیتاتون به صورت کد های اسکی هست یا...
    اگه دیتا تون رو میخواید دو تا دو تا بگیرید خود بهم بچسبونید در هر صورت کلش رو دارید دیگه مشکلی نیست

    دیدگاه


      #3
      پاسخ : مشکل در دریافت اعداد در میکرو با ویژوال بیسیک از طریق rs232

      نوشته اصلی توسط شهریار رجب زاده
      مشکلتون رو درست نفهمیدم
      دیتاتون به صورت کد های اسکی هست یا...
      اگه دیتا تون رو میخواید دو تا دو تا بگیرید خود بهم بچسبونید در هر صورت کلش رو دارید دیگه مشکلی نیست
      دیتای من عدد بزرگه به طول 32 بیت به صورت Hex که از یک عملیات محاسباتی در برنامه ویژوال بیسیک بدست میاد
      سوال من اینه که مگر دیتا در ارسال سریال 8 بیت ارسال نمیشه پس چرا فقط 4 بیت در میکرو دریافت میشه (آیا بقیه صرف توازن و... میشه؟)یا آیا نمیشه این 32 بیت رو یکجا در یک اینتراپت دریافت کرد و دیگه نخوایم اعداد رو به هم بچسبونیم؟

      MSComm1.Output = Hex(R(1), 1) R همون عدد 32 بیتیه

      امیدوارم منظورم رو رسونده باشم

      دیدگاه


        #4
        پاسخ : مشکل در دریافت اعداد در میکرو با ویژوال بیسیک از طریق rs232

        نوشته اصلی توسط mo_jadidi
        دیتای من عدد بزرگه به طول 32 بیت به صورت Hex که از یک عملیات محاسباتی در برنامه ویژوال بیسیک بدست میاد
        سوال من اینه که مگر دیتا در ارسال سریال 8 بیت ارسال نمیشه پس چرا فقط 4 بیت در میکرو دریافت میشه (آیا بقیه صرف توازن و... میشه؟)یا آیا نمیشه این 32 بیت رو یکجا در یک اینتراپت دریافت کرد و دیگه نخوایم اعداد رو به هم بچسبونیم؟

        MSComm1.Output = Hex(R(1), 1) R همون عدد 32 بیتیه

        امیدوارم منظورم رو رسونده باشم
        طول دیتای سریال بین 5 تا 9 بیت متغیره
        بهتون توصیه میکنم توی کامپیوتر 8 بیت 8 بیت جدا کنید بعد اون 8 بیتی ها رو بفرستید چون ممکنه مشکل از تابع باشه که تو VB هست البته در مورد کار شما

        دیدگاه

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