คำสั่ง Serial.print() ในส่วนของ setup() ไม่ทำงาน แต่ในส่วนของ loop() กลับทำงานได้ปกติ ก็งงอยู่พักใหญ่ไปค้นหาในอินเตอร์เน็ตก็มีคนเป็นเหมือนกัน แล้วได้คำตอบว่า
Leonardo เป็นบอร์ดที่ใช้ Chip Atmega32U4 ไม่เหมือน UNO R3 ดังนั้นจึงต้องสั่งให้โปรแกรมรอให้ Serial พร้อมทำงานก่อนลองดูตัวอย่างแรกก่อน
โปรแกรมในส่วนของ setup() จะมีคำสั่งพิมพ์เลข 10 ถอยหลังไปจนถึง 1 แล้วพิมพ์คำว่า Begin ระหว่างคำสั่งจะรอ 1 วินาที แต่เมื่อรันคำสั่งแล้วพบว่า กว่าจะเปิด Serial Monitor ได้โปรแกรมก็รันไปถึงการสั่งพิมพ์ เลข 6 แล้ว ดูเหมือนระบบจะทำงานเร็วขึ้น (?)
เริ่มพิมพ์ที่เลข 6 |
ตัวอย่างที่สอง
หลังจากนั้นเพิ่มคำสั่ง while (!Serial){} ไว้หลังบรรทัด Serial.begin(9600); แล้วเมื่อเปิด Serial Monitor โปรแกรมจะทำงานปกติ เริ่มตั้งแต่คำสั่งพิมพ์เลข 10 ไปเรื่อยๆ
เริ่มพิมพ์ที่ 10 เพราะมีคำสั่งตรวจสอบให้รอจนกว่า Serial จะพร้อมทำงาน |
ปัญหาหญ้าปากคอกนี่ก็ทำให้เหนื่อยได้เหมือนกัน เสร็จจากเขียนบล็อกแล้วก็ต้องขอตัวไปนอนก่อน เพราะโหมเขียนโปรแกรมมาหลายคืนแล้ว คืนนี้ของเป็นอีกสักวันหนึ่งที่จะได้นอนก่อนสี่ทุ่ม... ราตรีสวัสดิ์ครับ...
ไม่มีความคิดเห็น:
แสดงความคิดเห็น