วันเสาร์ที่ 26 พฤศจิกายน พ.ศ. 2559

Esp8266 OLED sprintf[Buffer]

Esp8266 OLED 

เคยเจอไหมต้องการให้จอแสดงผลในรูปแบบตัวเลขจาก หลายๆตัวแปร แต่ต้องเขียนโค๊ตยาวๆหลายบรรทัด ยิ่งตัวแปรมากก็ต้องเขียน  .println มากบรรทัด

ดังนั้นจึงมีการอ้างอิงตัวแปร Buffer ขึ้นมาอีกหนึ่งตัวเพื่อใช้ในการเก็บค่าตัวแปร และใช้คำสั่ง  sprintf  ส่งค่าข้อมูลออก วิธีการนี้จะส่งผลให้ลดการทำงานของ CPU และ RAM ด้วย อีกทั้งลดคำสั่งการทำงานให้น้อยลง


เริ่มต้นการ Include และประกาศตัวแปร  
เพิ่มมาจากกระทู้ก่อนหน้านี้ คือ

char oled_buffer[40] = ""

ประการตัวแปรใช้ในการเก็บข้อความ String



เริ่มต้นโปรแกรม  ไม่มีอะไรมากแค่แสดงผลข้อความ




ส่วนของโปรแกรมหลัก
เขียนในรูปแบบของฟังก์ชั่นคืนค่าตัวแปร
โดยให้ตัวแปร Count ทำการนับตัวเลขบวกค่าไปเรื่อยๆ เมื่อครบ 1000 ให้กลับค่าไปเป็น 0

บรรทัดที 62 >> นำค่า varCount ซึ่งได้มาจากค่าตัวแปร Count(บรรทัดที่ 52) มาแสดงผล
                          %d  คือ การแสดงผลจากตัวแปร int นั้นเอง

บรรทัดที 63 >> ส่งค่าตัวแปร  oled_buffer  ไปแสดงผล



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



การเขียนโปรแกรมในรูปแบบการใช้ตัวแปร Buffer จะได้ผลก็ต่อเมื่อใช้ตัวแปรหลายๆตัวเพื่อมาแสดงผล เช่น แสดงค่าของ นาฬิกา ซึ่งมี 3 หลักด้วยกัน  hr:min:sec  หากเขียนโค๊ต print ที่ละบรรทัดก็จะหลายบรรทัด






https://www.facebook.com/dan.thummaratkmitl

ไม่มีความคิดเห็น:

แสดงความคิดเห็น