29.9.10

Back to (for) Future ย้อนเวลาหา C อีกครั้ง



ภาษาซี C languageห่างหายวงการไปนาน ช่วงนี้ผมยุ่งจริงๆ พยายามจะมาเขียนบทความอัพเดทบล๊อก แต่ก็หาเวลาไม่ค่อยได้ ช่วงเวลาที่หายไป ผมกำลังเมามันส์กับไมโครคอลโทรลเลอร์อยู่ แล้วกำลังสร้างบล๊อกเพิ่มด้วย ก็กะว่าจะเอาไว้เขียนเรื่องเกี่ยวกับไมโครคอลโทรลเลอร์หน่ะครับ รอติดตามก็แล้วกัน

พอพูดถึงเรื่องไมโครคอลโทรลเลอร์ ก็ต้องพูดถึง complier ที่ใช้ในการสสร้าง hex ไฟล์ เพื่อสั่งให้ไมโครคอลโทรลเลอร์ของเราทำงานตามฟังก์ชั่นที่เราต้องการ หากม่นับภาษาแอสแซมบลีแล้ว  ผมคิดว่าภาษาซี คือภาษาที่มความเร็วมากที่สุด ในการประมวลผล และนอกจากนี้ ภาษาซี ยังเป็นภาษาต้นแบบของแทบจะทุกภาษาที่เกิดขึ้นมาทีหลัง นับได้ว่าเป็นรากฐานของทุกภาษาเลยก็ว่าได้ หากเราเข้าใจภาษาซีแล้ว ก็แทบจะพูดได้ว่า คุณเข้าใจภาษาอื่นๆไปแล้ว เกินครึ่งหรือแทบจะทั้งหมด

ช่วงที่หายไป ผมก็กำลังศึกษาภาษาซี ของแต่ละค่าย จริงๆภาษาซีหลักๆ เค้าอ้างอิงตามมาตรฐาน ANSI C อยู่แล้ว แต่ว่าถ้าเป็นภาษาซี ที่เป็น complier แล้ว ของแต่ละค่ายก็จะแตกต่างกันออกไปนิดหน่อย แต่หลักๆแล้ว ก็ยังอ้างอิงกับ ANSI C อยู่ดี

C Complier

เป็นเรื่องน่าตลกที่ผมเขียนภาษา PHP ได้ก่อน ก่อนที่ผมจะเขียนภาษาซีได้เสียอีก ทั้งๆที่ ภาษา PHP นั้น ก็มีต้นกำเนิดมาจากภาษาซี เหมือนกัน แต่ PHP  นั้นอ่อนตัว ไม่ค่อยเข้มงวดเหมือนภาษาซี เช่น ไม่ต้องมีการประกาศตัวแปร ก่อนนำไปใช้งานเหมือนภาษาซี พอผมลองได้มาจับภาษาซีแล้ว ทำให้ผมรู้ตัวเลยทันทีว่า PHP ที่ผมเขียนนั้น มันช่างดูและเทะ อะไรอย่างนี้ บางจุดเรามักง่ายมากๆ Bug เพียบ  แต่นั้นก็เป็นไปตามประสาคนที่เรียนรู้ด้วยตัวเอง มันย่อมมีจุดบกพร่องอยู่ในตัวมันเสมอ

ถ้าคุณเป็นคนนึง ที่คิดจะหันมาเล่นทางไมโครคอลโทรลเลอร์ แล้วหล่ะกัน ผมขอแนะนำ จับภาษาซีให้แน่นๆ อย่างหยุดยั้งอยู่เพียงแค่การ printf ได้เท่านั้น ในโลกของไมโครคอลโทรลเลอร์มันมีอะไรที่มากกว่านั้น ไม่ว่าจะเป็นการกำหนดค่าตัวแปรให้เหมาะสมกับตัวเลขที่คำนวณได้ การใช้ Macro การใช้ pointer การจัดการกับข้อมูลที่เป็นตัวอักษร การใช้ตัวแปรแบบ enum และ struct  คุณต้องเอาให้คล่องเลย ไม่งั้นตันแน่ๆ ต้องย้อนกลับมาเหมือนผมแน่ๆ

และปัญหาอีกอย่างหนึ่งผมเกิดกับผม นั่นก็คือ ความรู้สึกอึดอัด เนื่องจาก memory ของ ไมโครคอลโทรลเลอร์ มันช่างน้อยเสียนี่กะไร จะมาเขียนโปรแกรมแบบสุ่มสี่ สุ่มห้า หรือตามใจฉันไม่ได้อีกแล้ว เพราะทุกบรรทัด คือ การใช้ memory ที่มีอยู่อย่างจำกัดบนตัวไมโครคอลโทรลเลอร์ ทำอย่างไร เราจะให้โปรแกรมเราบรรลุวัตถุประสงค์โดยที่ memory ไม่หมดไปเสียก่อน อันนี้ต้องคิดอยู่เสมอ

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

ชมวีดีโอสาธิตการประยุกต์ใช้ WEB programming กับไมโครคอลโทรลเลอร์ หรือรายละเอียดเพิ่มเติม คลิก

อ่านเพิ่มเติม...
 

เกี่ยวกับฉัน(ไหมเนี้ย)

รายการบล๊อกอื่นๆ

  • Gearset matching 2021 program - เป็นงานใหญ่ที่เพิ่งจบไป ที่ระยอง ปลวกแดง บริษัทผลิตชิ้นส่วนรถยนต์ คอนเซปต์ คือต้องการเก็บค่าหลังจากการทดสอบชิ้นส่วยรถยนต์ เพื่อเก็บไว้ในฐานข้อมูลให้แผนกถ...
  • Type-Fu : Typing practice game online - หากใครที่สนใจ หรือจะต้องทำงานเกี่ยวกับคอมพิวเตอร์ หนึ่งในความจำเป็นก็คือ จะต้องเรียนรู้ที่พิมพ์สัมผัสได้ เพราะการที่พิมพ์สัมผ้สได้ มันได้ประโยชน์หลายๆ อย...

Blog อื่นๆ ที่น่าติดตาม

เหล่าบรรดา Blogger