ในบทความนี้จึงยกตัวอย่างการใช้ มาโคร ในส่วนการกำหนด #define ทำให้โปรแกรมดูสวยงาม และอ่านแล้วสื่อความหมายมากกว่าปกติ (แต่บางคนอาจจะงงได้ หากไม่เข้าใจหลักการ)
ตัวอย่างการเขียนมาโครในภาษา C |
#define ON HIGH
#define OFF LOW
#define _LED(x) digitalWrite(ledPin, x)
int pirPin = 2;
int ledPin = 9;
void setup(){
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
int pirVal = digitalRead(pirPin);
if(pirVal == LOW){ //was motion detected
_LED(ON);
delay(1000);
}else{
_LED(OFF);
}
}
จากโค้ดข้างบน 2 บรรทัดแรก คือ การกำหนดค่าตัวแปรคงที่ ON เก็บค่า HIGH และ OFF เก็บค่า LOW
บรรทัดต่อมา เป็นคำสั่ง มาโครโดยกำหนดชื่อเป็น _LED(x) รับค่าพารามิเตอร์ x และมีคำสั่งให้เขียนค่า x ลงไปใน ledPin ซึ่งเป็นตัวแปรที่จะกำหนดในบรรทัดด้านล่าง
คำสั่ง digitalWrite(ledPin, x) เป็นคำสั่งของมาโคร เพื่อให้ส่งเอาท์พุทไปขาที่ต่อ LED โดยนำเอาค่า x ที่รับมาอีกทีหนึ่งเป็นค่าส่งไปยังขา LED
โดยคำสั่ง _LED(ON) และ _LED(OFF) ก็เหมือนกับเขียนคำสั่ง
_LED(ON); // เหมือนกับ digitalWrite(ledPin, HIGH);
_LED(OFF); // เหมือนกับ digitalWrite(ledPin, LOW);
จากตัวอย่างข้างต้นจะเห็นได้ว่า โปรแกรมจะสื่อความหมายได้ง่าย แต่อย่างไรก็ตามหากคนที่ไม่เข้าใจเมื่อมาดูแล้วอาจจะสงสัยได้ ดังนั้นสิ่งที่สำคัญประการหนึ่งในการเขียนโปรแกรม คือ คู่มือสำหรับการเรียนรู้ของคนอื่นๆ ที่จะเข้ามาดูแลต่อ หรือช่วยกันทำงาน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น