Pages: [1]   Go Down
Print
Author Topic: พอจะมีตัวอย่าง picสื่อสารแบบ usbบ้างไหมครับ  (Read 18900 times)
0 Members and 1 Guest are viewing this topic.
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« on: August 26, 2009, 10:28:31 AM »

ท่าน smitdh ครับ พอจะมีข้อมูลให้ศึกษาเกี่ยวกับการสื่อสารแบบ usb ของ pic 18f4550 หรือแนวทางว่าจะต้องเริ่มต้นศึกษา ตรงส่วนไหน ก่อนดีครับ
ขอบคุณครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #1 on: August 26, 2009, 01:30:38 PM »

ไม่ทราบว่าคุณ s_engine ได้ดูหน้านี้หรือยังครับ
http://www.thaimicrotron.com/webboard2/index.php?topic=167.msg465#msg465

Windows Application จะเป็น C# ซึ่งคอยรับข้อมูลและแสดงผล
ส่วน PIC ก็จะส่งข้อมูล
- เมื่อกดปุ่ม
- ส่งค่า A2D
- แสดงผล string

Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #2 on: August 31, 2009, 09:47:00 AM »

ถ้างั้น ผมก็ต้อง เป็น ใน C# ด้วยนะสิครับ เหอะๆ เดี๋ยวจะหา C#มาลงก่อน แต่ โค้ด PIC ทำไม คอมไพล์ ไม่ผ่าน ผมอยากจะเบิร์นลง pic ของผม เพื่อดูผลการทำงาน เขาไม่ได้ให้ไฟล์ .hex มาด้วย
ตอนนี้อยากได้แบบ ส่งคำสั่งไป on led สักดวง ผ่าน usb เพื่อเริ่มต้นทำความเข้าใจ
แล้ว C# กับ VB ต่างกันไหมครับ คือถ้าจะให้ผมเล่น ผมอยากเล่น VBมากกว่า แต่ก็ไม่เคยเล่นทั้ง 2 ตัว คงมานั่งศึกษากันพอสมควร อีก   ระยะทางอีกยาวไกล แต่ก็ต้องทำให้ได้
ถ้ามี ลิ้งค์ ดีๆ แนะนำบ้างนะครับ
ขอบคุณ ครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #3 on: September 01, 2009, 12:31:23 AM »

ผมลองคอมไพล์ก็ผ่านนะครับ ทั้ง CCS เวอร์ชั่น 3.249, และ 4.074
ผมคอมไพล์เป็น HEX ไฟล์รวมไว้ให้แล้วลองโหลดดูใหม่

http://www.thaimicrotron.com/Referrence/Journals/Board4550.rar

- สำหรับ C# ,VB ผมเองก็ดูๆ แบบผิวเผินครับ พออ่านออก ถอดความได้
- ภาษาที่น่าใช้ก็น่าจะเป็นภาษาซีครับ เพราะเป็นพื้นฐานของหลายๆ ภาษาไปแล้วเช่น Java,Python,php ทำให้พอศึกษาไปแล้ว จะได้โครงสร้างไปอีกหลายภาษา
ตัวผมเองใช้ Borland C++ Builder อยู่เพราะง่ายในการพัฒนากับไมโครฯ
- แล้วคอมไพล์เลอร์ในระดับไมโครส่วนใหญ่ก็มักจะมีภาษาซี ทำให้เราสามารถใช้รูทีนเดียวกันได้ คือว่าทำรูทีนไว้อันเดียวใช้ได้หมดเลย
- บางครั้งในการศึกษาโครงสร้างข้อมูลขนาดใหญ่เช่น GPS จะเขียนลง CCS เลยที่เดียวก็ลำบากเพราะหน่วยความจำ RAM มีน้อย ผมก็นำมาเขียนบน C++ Builder ก่อน(เขียนแบบ ANSI C) เพราะสามารถตรวจสอบและ debug ได้ง่าย พอเสร็จแล้วค่อย copy code มาใส่ใน CCS ทำให้ไม่ต้องโปรแกรม MCU หลายๆ ครั้งเพราะจะทำให้ MCU อายุสั้นลงไปด้วย
- ส่วน C# เองไมโครซอฟท์ ก็เอาหลักการมาจาก Java แต่มาทำทำเป็น dot net framework มันก็เลยไม่แตกต่างจาก Java+C มากนักทำให้เราศึกษาต่อไปได้ง่าย PICKit2 ก็ยังใช้ C# เลยแถมยังแจกโค็ดอีก
- หนทางอีกยาวไกล แต่ที่สำคัญที่ก้าวแรกครับ
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #4 on: September 01, 2009, 11:00:54 AM »

ขอคุณมากครับ ผมได้มาจาก hobby แล้ว ลองแล้ว ผลปรากฎว่า
-led 4 ดวงไม่ทำงาน
-อ่านอนาลอคไม่ทำงาน
-สวิตช์ 2 ตัว ปล่อยพอร์ตว่าง มันกลับอ่านว่าถุกกดสลับไปๆ อยุ่นั่นตลอดเวลา พอต่อสวิตช์เข้าไป(โดยมี r     pullup เรียบร้อย มันแจ้งไม่มีการกด แต่พอกด มันก็ไม่บอกว่าถูกกด ขณะที่มีการต่อสวิตช์ใช้จริง ค่าอนาลอค โชว์ทั้ง 2 ช่อง โชว์มาครึ่งหลอด ทั้งๆไม่ได้ต่อ
-lcd แสดงผลได้ดี ส่งข้อความออกได้ แต่ได้แค่ 15 ตัวอักษร
แต่เดียวจะลองของท่านพี่ อีกทีครับ

- ขอแถมอีกนิดครับ lcd ขอผมมันรวน ไม่เกี่ยวกับโครงงานนี้นะครับ แค่ทดสอบ lcd มันจะโชว์แค่บรรทัดเดียว ทั้งที่ส่งไป 2 กด รีเซต ก็ กลับมาทำงานปกติ แต่กดรีเซต ซ้ำๆ มันก็เป็นอีกหายไป 1 บรรทัด กดอีก ก็ปกติ เป็นแบบนี้ตลอด ส่วนพอร์ตทุกพอร์ตก่อนหน้านี้ได้ทดสอบโดย สั่ง led ติด ดับ ทีละพอร์ต ทำงานได้ปกติ รีเซตได้ ปกติ ผมลองสั่งled ติดดับพร้อมทั้งโชว์ lcd อีก lcd รวนเหมือนเดิม อีกทั้ง led ก็รวนไปด้วย เป็นเพราะ c รีเซต หรือปล่าว แม้แต่จ่ายไฟครั้งแรก ก็ทำงานได้มั่ง รวนมั่ง  ยังไม่ได้เอาไปโรงงานที มันก็ปั่นป่วนซะละ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #5 on: September 01, 2009, 12:41:23 PM »

ที่ว่าไม่ทำงานหมายถึงในเซมิฯ ใช่ไหมครับ ผมทดสอบดูแล้วก็ใช้ได้ปกติครับ
ลองดูวงจรอีกทีนะครับ อินพุตทุกตัวที่ไม่ได้ใช้จะปล่อยลอยไว้ไม่ได้นะครับ ทั้งอนาลอกและดิจิตอล จากวงจรให้ต่อ R pullupไว้ ทุกตัวครับ
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #6 on: September 01, 2009, 04:15:48 PM »

ตอนนี้ ทำงานได้ ทุกอย่างแล้วครับ sd card ไม่ได้เทส
มีปัญหาทางฮาร์ดแวร์นิดหน่อยในตอนแรก
อันนี้ใช้โค้ดของพี่ และของ hobbypic ลองทั้ง 2 รอบ
แล้วก็ที่ผมว่ามัน รวน มันยังเกิดอยู่นะครับ คือการกด รีเซตครับ ผมลองหลาย รอบแล้ว ประมาณนะครับ 1 ใน 5 pic จะไม่ทำงาน 1 ครั้ง ในการกดรีเซต แต่เมื่อทำงานได้ก็จะทำงานได้ปกติ
1. ปัญหาที่เจอ lcd แสดง 1 บรรทัดบนบัซเซอร์ ทำงาน ฟังก์ชั่นอื่นทำได้หมด แต่ การส่งเทค จำไม่ทำงาน
ปัญหานี้จะเป็นบ่อยตอนเริ่มจ่ายไฟ ต้องกด รีเซตทุกครั้ง
2. ทุกอย่างหายหมดหรือ lcd แสดงค่าไม่ถูก  ทำงานไม่ได้เลย อันนี้จะเกิดขึ้น น้อยหน่อย

ไม่รู้ว่าเป็นที่ pic หรือป่าว แต่ก็เริ่มทำงานได้แล้ว ผมอยากจะให้ท่านเอา โค้ด C# มาลงให้หน่อยครับ
ขอบคุณมากครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #7 on: September 02, 2009, 05:31:43 PM »

เรื่องปุ่มรีเซ็ทลองดูของ PICDEV40 ซิครับ
http://www.thaimicrotron.com/Project/Picdev40/PICDEV40.htm

โค้ด C# ที่ว่าเกี่ยวกับเรื่องอะไรครับ ในเซมิ(4550)ที่ให้ Link ไว้ ก็มีนะครับ
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #8 on: September 03, 2009, 01:50:22 PM »

ครับผม ได้แล้วครับ แต่ผมลอง คอมไพล์ มันฟ้อง

แบบนี้อะครับ
แล้วโค้ด C# นี่ คนละตัวกับ ซอฟแวร์ ที่เขาให้ลองเล่น ใช่ไหมครับ ผมนึกว่าโหลดมาผิด เห็นมี led 4 ดวง send text และ a to d  อย่างอื่นไม่มี

ที่มัน รวน เป็นเพระโค้ดนะครับผมว่า ผมลอง สั่ง LCD อักษรวิ่งไปมา กดรีเซต ไม่มีปัญหาเลย
ก่อนหน้านี้ผมก็เลยลอง โปรแกรม LCD อักษรวิ่ง ผ่าน USB ทาง bootload มันก็เป็นเหมือนกัน อาการเหมือนกันเลย แต่ถ้าโปรแกรมผ่านเครื่องโปรแกรม ทำงานได้ปกติ ครับ

ตอนนี้อยากเขียนโค้ด ด้วยตัวเอง ทั้ง pic และ C# เอาแค่กดปุ่มจาก C# แล้ว PIC ส่งไป LED 1 ดวงให้ได้ก่อน เพื่อดูลักษณะการรับส่ง มันมีโปรโตรคอลที่แน่นอนไหมครับ (ผมไม่รุ้เขาใช้คำนี้หรือป่าว ขอเรียกแบบนี้ละกัน )    ว่า 1ชุดที่ส่ง กับ 1ชุดที่รับ มีขนาดของข้อมูลที่แน่นอน มันส่งกันยังไง หรือสามารถกำหนด ขนาดที่จะส่งได้เหมือน การสื่อสารแบบ อนุกรม ในโค้ด pic ลองได้อ่านก็พอจะเข้าใจนิดๆ เหลือ แต่ไฟล์ที่ include เกี่ยวกับ usb ยังไม่ได้อ่าน คืนจะนั่งดูอีกที
ขอบคุณครับ
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #9 on: September 08, 2009, 12:26:25 PM »

หลังจาก ลองแล้วลองอีก มา 1 วัน หาส่วนที่ทำ pic ผมรวน ก็ได้เจอว่า การประกาศ
#fuses HS       // จะใช้งานได้ปกติ
#fuses HSPLL  //  จะต้องรีเซตหลายครั้ง และ การจ่ายไฟครั้งแรกก็ทำงานไม่ได้

ไม่ทราบว่ามันต่างกันยังไงหรอครับ HSPLL เห็นกำหนด clock 48 M แต่ต่อจริงแค่20 ถ้ากำหนด clock 20 จะทำให้การทำงานเร็วกว่าเดิม
ผมละงง แล้วก็กลัว หากงานต้องประกาศ HSPLL แล้ว งานผมคงใช้งานจริงไม่ได้แน่ๆ ไม่มีใครมานั่งกดรีเซต อยุ่เวลาก่อนใช้งาน แต่ถ้าเริ่มทำงานได้ก็จะไม่มีปัญหาเลย
Code:
#include <18F4550.h>
#fuses HS,USBDIV,PLL5,CPUDIV1,VREGEN,NOWDT,NOPROTECT,NOLVP,NODEBUG
//#fuses HSpll,BROWNOUT,NOWDT,NOPROTECT,NOLVP,USBDIV,VREGEN,NODEBUG,CPUDIV1,PLL5
//#fuses HS,PUT,BROWNOUT,NOWDT,NOPROTECT,NOLVP

#define CLOCK_SP 20000000
#use delay (clock=CLOCK_SP)

#define use_portd_lcd         // define for use portb lcd
#include "lcd.c"              // use module function
#include <math.h>


#define STRING_SIZE 17
#define msg0   "LCD Module Show "
#define msg1   " 16x2 character "
#define msg2   "Test Running ..."
#define msg3   " Left & Right   "
#define msg4   "Write Character "
#define msg5   "  on sequence   "
#define msg6   "Hello World AST."

//** LCD.C : Driver for common LCD modules *******************************
// As defined in the following structure the pin connection is as follows:
//   B0 = E(enable), B1 = RS, B2 = R/W
//   B4 = D4, B5 = D5, B6 = D6
//   B7 = D7
//   LCD pins D0-D3 are not used and PIC B3 is not used.


/***********************************************************************
 *   Functions prototypes
 ***********************************************************************/
void LCD_Command(int cm);
void LCD_ShiftLeft(void);
void LCD_ShiftRight(void);
void LCD_MoveRight(char p);
void LCD_MoveLeft(char p);
void strcpy(char *s1, char *s2);
void LCD_String(char *s, int dly);
void LCD_Show(void);


/***********************************************************************
 * FUNCTION:     LCD_Command
 * DESCRIPTION:  LCD Command
 * PARAMETERS:   cm
 * RETURNED:     nothing
 ***********************************************************************/
void LCD_Command(int cm) {

   lcd_send_byte(0,cm);
}


/***********************************************************************
 * FUNCTION:     LCD_ShiftLeft
 * DESCRIPTION:  LCD ShiftLeft
 * PARAMETERS:   nothing
 * RETURNED:     nothing
 ***********************************************************************/
void LCD_ShiftLeft(void) {

   lcd_send_byte(0,0x18);
}


/***********************************************************************
 * FUNCTION:     LCD_ShiftRight
 * DESCRIPTION:  LCD ShiftRight
 * PARAMETERS:   nothing
 * RETURNED:     nothing
 ***********************************************************************/
void LCD_ShiftRight(void) {

   lcd_send_byte(0,0x1C);
}


/***********************************************************************
 * FUNCTION:     LCD_MoveRight
 * DESCRIPTION:  LCD MoveRight
 * PARAMETERS:   p
 * RETURNED:     nothing
 ***********************************************************************/
void LCD_MoveRight(char p) {

   char i;

   for(i=0; i<p; i++) {
      LCD_ShiftRight();
      delay_ms(100);
   }
}


/***********************************************************************
 * FUNCTION:     LCD_MoveLeft
 * DESCRIPTION:  LCD MoveLeft
 * PARAMETERS:   p
 * RETURNED:     nothing
 ***********************************************************************/
void LCD_MoveLeft(char p) {

   char i;

   for(i=0; i<p; i++) {
      LCD_ShiftLeft();
      delay_ms(100);
   }
}


/***********************************************************************
 * FUNCTION:     strcpy
 * DESCRIPTION:  string copy
 * PARAMETERS:   *s1, *s2
 * RETURNED:     nothing
 ***********************************************************************/
void strcpy(char *s1, char *s2) {

   while(*s1++ = *s2++);
   
}


/***********************************************************************
 * FUNCTION:     LCD_String
 * DESCRIPTION:  LCD String
 * PARAMETERS:   *s, dly
 * RETURNED:     nothing
 ***********************************************************************/
void LCD_String(char *s, int dly) {

   while(*s!=0) {
      lcd_putc(*s++);
      delay_ms(dly);
   }
}


/***********************************************************************
 * FUNCTION:     LCD_Show
 * DESCRIPTION:  LCD Show
 * PARAMETERS:   nothing
 * RETURNED:     nothing
 ***********************************************************************/
void LCD_Show(void) {

   int i;
   char str[17];

   LCD_Command(0x80);      // start 1st line
   strcpy(str, msg0);
   LCD_String(str,0);
   strcpy(str, msg1);
   LCD_String(str,0);
   LCD_Command(0xC0);      // start 2nd line
   strcpy(str, msg2);
   LCD_String(str,0);
   strcpy(str, msg3);
   LCD_String(str,0);

   delay_ms(1000);

   for(i=0; i<16; i++) {
      LCD_ShiftLeft();   // LCD Shift Left
        delay_ms(400);
   }

   delay_ms(500);

   LCD_Command(0x80);      // start 1st line
   strcpy(str, msg4);
   LCD_String(str,0);
   LCD_Command(0xC0);      // start 2nd line
   strcpy(str, msg5);
   LCD_String(str,0);

   for(i=0; i<16; i++) {
      LCD_ShiftRight();      // LCD Shift Right
        delay_ms(400);
   }

   delay_ms(500);
   LCD_Command(0x01);      // Clear LCD
   delay_ms(100);
   LCD_Command(0x02);      // cursor to home
   LCD_Command(0x0F);      // LCD On, & cursor   blink
   delay_ms(200);
   strcpy(str, msg6);
   LCD_String(str,1000);

   for(i=0; i<2; i++) {
      delay_ms(1000);
      LCD_Command(0x08);      // LCD Off & cursor off
      delay_ms(1000);
      LCD_Command(0x0E);      // LCD On, & cursor   on
   }

   delay_ms(500);
   LCD_Command(0x01);      // Clear LCD

}


/***********************************************************************
 * FUNCTION:    Main
 * DESCRIPTION: This is the main entry point for the program.
 * PARAMETERS:  nothing
 * RETURNED:    nothing
 ***********************************************************************/
void main(void) {

   lcd_init();       // LCD initialize

   while(TRUE){
      LCD_Show();
   };
}
โค้ดเป็นตัวอย่างจากหนังสือ inex ครับ แต่มา include 18f4550
มีใครเล่นเบอร์นี้แล้วเจอปัญหาแบบผมมั่ง
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #10 on: September 08, 2009, 05:57:32 PM »

- หากการทดลองทั่วไปเราสามารถกำหนดฟิวส์เป็น
#fuses XT  <=4MHz
#fuses HS  >  4MHz

- แต่ในการสื่อสารข้อมูลแบบ USB High speed ของ PIC18Fx550 จะต้องใช้ clock ที่มีความถี่สูง ซึ่งวงจรภายในสามารถสร้างความถี่ Phase Lock Loop (PLL) จากฐานเวลา ที่ใช้คริสตอลปกติครับ โดยการกำนดฟิวส์ เป็นแบบ HSPLL รวมทั้งกำหนดพารามิเตอร์ด้วยเช่น

#fuses HSPLL,USBDIV,PLL5,CPUDIV1,VREGEN +ฟิวส์ตัวอื่นๆ

- ผมทดสอบโปรแกรมที่ใด้มาจากวารสารเซมิฯ แล้วปกติครับ ลองดูวงจรอีกทีครับ โดยเฉพาะที่ขา MCLR

- อีกอย่างหนึ่งครับ ฟังดูแล้วคล้ายๆกับอาการ ของภาคจ่ายไฟ กับ OSC ไม่ทราบว่าต่อวงจรที่ใช้ทดลองอย่างไร บนบอร์เอนกประสงค์ หรือว่าบนโปรโตบอร์ด
- ทั้งสองกรณี จะต้องใส่ตัวเก็บประจุ 0.1U แบบมัลติเลเยอร์ หรือเซรามิค กับตัวเก็บประจุอิเล็คโตรไลท์ ประมาณ 4.7U ไว้ใกล้ๆ กับขา VDD ของ MCU ด้วย
- สายที่ต่อจากภาคจ่ายไฟไม่ควรจะมีขนาดเล็กเกินไป ต่อตรงมาที่ MCU เลย
- คริสตรัลไม่ควรต่อสายยาวเกินไปนัก ต่อไว้ให้ใกล้ MCU ที่สุด และควรต่อตัวเก็บประจุ 20-22PF ทั้งสองด้านลงกราวน์ อย่าคิดว่าแค่ลองเฉยๆ ไม่ต้องต่อ เพราะมันจะรวนมาก เมื่อใช้คริสตอล ที่ความถี่สูงๆ ยิ่งใช้ HSPLL ยิ่งแล้ว จะรวนมาก
- การต่อบนโปรโตบอร์ด หากการทดลองขั้นแรก สำเร็จแล้ว ต้องการจะใช้ทดลองอย่างอื่นต่อไป ให้จัดอุปกรณ์บนเบอร์ดใหม่ และรื้อสายมาต่อใหม่ ให้กระชับตัดให้สั้นที่สุด ไม่ต้องเสียดายสาย  อย่าปล่อยให้กระรุ่งกระริ้ง เดียวจะไม่คุมกับการเสียเวลา
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #11 on: September 09, 2009, 05:25:32 PM »

เป็นบอร์ดสำเร็จ ที่ผมทำขึ้น ก่อนจะได้ศึกษา PIC ตัวนี้ สั่งทำ แล้วลงอุปกรณ์
ใช้คริสตัน 20 M ต่อกับ C 22pF ทุกขา vcc มี c 0.1u แบบเซรามิค รีเซตใช้ R 4.7k pullup กับ C 0.1 uF แบบเซรามิค ลงกราวด์

ถ้ากำหนดแบบนี้ LCD ของผม ทำงานไม่มีปัญหา อะไรเลย
Code:
#fuses HS,PUT,BROWNOUT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
แต่ถ้าแบบนี้จะมีปัญหาทันที
Code:
HSpll,BROWNOUT,NOWDT,NOPROTECT,NOLVP,USBDIV,VREGEN,NODEBUG,CPUDIV1,PLL5
#use delay(clock=48000000)

จากการสังเกตดูใหม่จากโค้ดด้านบน จะพบว่า LCD ที่รวน จะไปแสดง msg อื่น และวิ่งตามปกติ แต่แสดงแค่ บรรทัดเดียว และการโชหายไป 1 การทำงานแรก  โดยรวมคือ ทำงานได้แต่ทำขาดไป
ส่วนการสื่อสาร USB ก็มีปัญหาแบบเดียวกัน แต่เมื่อเริ่มทำงานได้ ก็จะไม่มีปัญหาหรือผิดพลาดให้เห็น
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #12 on: September 11, 2009, 10:30:13 PM »

ตอนนี้ pic ใช้งานได้แล้วครับ กำลังดูการรับส่งอยู่ การส่งค่า จาก PC ไม่มีปัญหา
แต่การ ให้ PC รับค่าจาก PIC นี่สิ คิดไม่ออกเลย การส่งเป็นลักษณะ packet สมาชิกของ data ตัวที่ 1 เป็นโหมด ตัวที่ 2 เป็น สวิตช์ กำลัง ทำ ดิปสวิคช์ 8 ตัว ให้ค่าไป โชว์ ที่ PC ทำ Lebel แสดงแทน LED ผมจะจัด packetที่ส่งจาก PIC ให้อยู่ ลักษณะ ไหนดี ครับ เพราะจะรับ ค่าจากสวิตช์ทั้ง 8 ตัว
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #13 on: September 13, 2009, 11:12:46 PM »


ตอนนี้การรับค่าบน PC ใช้ application ตัวไหนครับใช่ C# ที่เป็นตัวอย่างในเซมิหรือเปล่า
ลองดูตัวอย่างการออกแบบ Package  ใน
http://www.thaimicrotron.com/webboard2/index.php?topic=206.msg644#msg644
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #14 on: September 20, 2009, 05:49:42 PM »

ครับ c# ยกมาจากเซมิ ตอนนี้กำลังเล่นอยู่ ติดตรงโค้ด c#นิดหน่อย ไม่เคยเขียน
ขอบคุณครับ
Logged
Pages: [1]   Go Up
Print
 
Jump to: