Thai microtron community

Electronic Knowledge Base => Microcontoller & Electronics => Topic started by: TOPBBOY2006 on May 10, 2009, 05:19:43 PM



Title: ช่วยด้วยครับ PIC18F452 ติดต่อ VB6 ผ่านทาง RS-232
Post by: TOPBBOY2006 on May 10, 2009, 05:19:43 PM
      ตอนนี้ทำโปรเจ็ทครับ ให้ PIC18F452 อ่านค่า Analog 8 ช่องครับ พออ่านค่าได้แล้วทั้ง 8 ช่อง ผมให้ค่าที่อ่านได้เก็บใน array ที่ชื่อว่า Value[8] แล้วให้ส่งค่าไปยัง VB ที่เดียวครับโดยผมใช้คำสั่งด้านล่างครับ

for(i=0;i<8;i++)
    {
    printf("%d",Value);
    }

ส่วน Code VB ผมเขียนให้มันรับข้อมูล มาเก็บไว้ในตัวแปร array ที่ชื่อว่า Value_Buffer[8] ครับ

CODE ที่ผมเขียน ประมาณนี้ครับ

********************************
Private Sub MSComm1_OnComm()

On Error Resume Next



If MSComm1.CommEvent = comEvReceive Then

       Value_Buffer(i) = MSComm1.Input

End If

i = i + 1

if i = 8 then
   i = 0
Endif
*************************************

ปัญหาที่เกิดขึ้นคือว่า VB มันรับค่ามามัวเลยครับ พอผมแก้ไข code ของ pic ใหม่เป็น


for(i=0;i<8;i++)
    {
    printf("%d",Value);
    delay_ms(50);           // เพิ่งคำสั่ง delay ให้มันถึงช่วงในการส่งข้อมูล
    }

ผลที่ได้คือ VB มันสามารถ รับ ค่าได้อย่างถูกต้องครับ แต่ข้อเสียคือถ้าข้อมูลที่ส่งมีจำนวนมาก มันส่งผลทำให้การส่งข้อมูลนั้นช้าเลยครับ

จึงเรียนถามเพื่อนๆหน่อยครับที่มีความรู้ด้าน VB ว่าเราควรเขียนรับค่าแบบไหนดีครับหรือมีวิธีไหนบ้างครับที่เราจะสามารถรับข้อมูลได้ไวกว่านี้ครับ (มือใหม่ครับ)


Title: Re: ช่วยด้วยครับ PIC18F452 ติดต่อ VB6 ผ่านทาง RS-232
Post by: smitdh on May 12, 2009, 11:37:15 PM
แล้วลอง test กับพวก Hyperterminal ได้แล้วหรือยังครับ
ผมไม่ได้เล่น VB ซะด้วย

ใครเคยเล่นช่วยหน่อยครับ


Title: Re: ช่วยด้วยครับ PIC18F452 ติดต่อ VB6 ผ่านทาง RS-232
Post by: TOPBBOY2006 on May 13, 2009, 07:03:41 AM
ผมลองทดลอง ติดต่อกับ Hyperterminal แล้วครับ ไม่มีปัญหาเลยครับ


Title: Re: ช่วยด้วยครับ PIC18F452 ติดต่อ VB6 ผ่านทาง RS-232
Post by: HD_EE09 on May 13, 2009, 10:47:18 AM
ผมเคยทำนะครับ แต่ผมไม่แน่ใจว่าความเร็วหรือช้ามันจะต่างกัน แบบใหนครับ

หลักการก็คือส่ง "\n" ไปพร้อมกับ "%d" เช่น printf("%d \n",dat);

แล้วให้ทาง VB เช็คว่าได้รับ "\n" หรือยัง

ถ้าได้รับแล้วแสดงว่าข้อมูลที่ส่งไปนั้นครบแล้วครับ จากนั้นก็รอรับข้อมูลชุดต่อไป

ถ้าใช้วิธีนี้ข้อมูลไม่น่าพลาดนะครับ แต่เรื่องความเร็วต้องลองดูครับ ได้ผลยังไงก็บอกด้วยนะครับ เผื่อมีอะไรช่วย

ได้ครับ


Title: Re: ช่วยด้วยครับ PIC18F452 ติดต่อ VB6 ผ่านทาง RS-232
Post by: TOPBBOY2006 on May 13, 2009, 10:40:22 PM
ขอบคุณพี่ yongyoot  ครับ เดี๋ยวผมจะลองดูครับถ้าไปผลอย่างไง จะมาบอกครับ