วันเสาร์ที่ 23 กรกฎาคม พ.ศ. 2559

มาทำให้ Arduino IDE ใช้ฟังก์ชัน printf แถมใช้ %f ได้ด้วย

      ก่อนอื่นขออธิบายก่อนนะครับว่า Arduino IDE นั้นไม่มีฟังก์ชัน printf นะครับ ในที่นี้ผมจะมาอธิบายการเพิ่มฟังก์ชัน printf ให้กับ Arduino IDE กันครับ มาเริ่มกันเลย!

สิ่งที่ต้องมี

  1. Arduino IDE เวอร์ชั่นไหนก็ได้ (ผมใช้ arduino-1.6.5-r2)
  2. โปรแกรมอะไรก็ได้ที่แก้ไขไฟล์ .txt ได้ฮ่าๆๆๆ
เริ่มกันเลย...

  • เริ่มจากเปิดโฟลเดอร์ของ Arduino IDE ครับจะมีโฟลเดอร์และไฟล์ดังรูปครับ
  • เข้าไปในโฟลเดอร์ "hardware\arduino\avr\cores\arduino" แล้วหาไฟล์ Print.cpp และ Print.h

  • เปิดไฟล์ Print.cpp และ Print.h แล้วเพิ่มโค้ดดังนี้ [หรือจะเอาไฟล์ที่ผมทำไว้ไปวางทับอันเดิมก็ได้ครับโดยโหลดจาก Print.cpp , Print.h]




  • เสร็จแล้วครับสำหรับการทำให้ Arduino IDE ใช้ฟังก์ชัน printf ได้ ทีนี้ทดลองใช้คำสั่งนี้กับไลบารี่ของ Serial, LCD หรือไลบารี่ตัวอื่นที่เรียนใช้งานคลาสของ Print ได้ครับ โดยผมมีคำสั่งตัวอย่างให้ดูดังนี้ครับ



  • เมื่อเราลองใช้คำสั่งดูแล้วจะเห็นว่าส่วนของ %f มันใช้งานไม่ได้นะครับ เนื่องจาก Arduino IDE ได้ตั้งค่าเอาไว้ให้ใช้คำสั่ง printf แบบที่กินพื้นที่น้อย ดังนั้นเราต้องไปปรับแต่งเล็กน้อยครับโดยเข้าไปที่โฟลเดอร์ "\hardware\arduino\avr" แล้วเปิดไฟล์ชื่อ platform.txt ให้เพิ่มคำสั่งในบรรทัดที่เริ่มต้นข้อความว่า "compiler.c.elf.flags" โดยเพิ่มเข้าไปดังรูปครับ จากนั้นปิดโปรแกรม Arduino IDE แล้วเปิดใหม่ ทีนี้เราก็จะสามารถใช้งาน %f ในฟังก์ชัน printf ได้แล้วครับ ^_^


เครดิต :

1 ความคิดเห็น: