ดังนั้นผมจึงค้นหาวิธีจากการเขียนของคนนี้ มา เขาเขียนโดยทำการอ่านข้อมูลจาก Serial buffer จนกระทั่งเจอตัวอักษร ที่เขากำหนดไว้ และนำเอาไปเปรียบเทียบเป็น ตัวเลขโดยโค็ดที่ผมตัดมาเป็นตัว นี้ครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | int number; long timer; long timerBegin; long timerEnd; void setup() { // put your setup code here, to run once: Serial.begin(9600); } char inputString[5] ; // เก็บตัวแปร char void loop() { // put your main code here, to run repeatedly: if (Serial.available() > 0) { timerBegin = millis(); Serial.readBytesUntil(90,inputString,5); // 90 ในที่นี้คือ z มันค่าการอ่าน byte ออกมา,แล้วทำการนำค่าเอาไปเก็บไว้ใน InputString number = atoi(inputString);//แปลงค่า char เป็น number timerEnd = millis(); timer = timerEnd-timerBegin; Serial.print("number is : ");Serial.print(number);Serial.print(" time is : "); Serial.print(timer);Serial.println(" ms"); } } |
โดยหลักการทำงานของมันคือ ให้Serial port อ่านข้อมูลจาก buffer จนกระทั่งเจอตัวอักษรที่เรากำหนดไว้ในที่นี้ผมกำหนดเป็น Z แต่การดึงข้อมูลออกไปใช้งานอาจจะต้องมีการดัดแปลงแก้ไขโค็ดอีกนิดหน่อย ผลลัพที่ออกมา ได้ความเร็วในการทำงานแค่ 5 millisecond ครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น