วันอาทิตย์ที่ 7 ตุลาคม พ.ศ. 2555

แนวทางการสร้างเมนูอย่างง่ายกับบอร์ด PopXT



   สวัสดีครับ หายไปนานจากบทความที่แล้ว เนื่องจากติดภารกิจสอบปลายภาคและตัดเกรดนักเรียน ก็เสร็จสิ้นแล้ว วันนี้เลยนำเอาตัวอย่างการสร้างเมนูอย่างง่าย ๆ สำหรับบอร์ด PopXT มานำเสนอเพื่อเป็นแนวทางในการพัฒนาโปรแกรมต่อยอดต่อไปนะครับ  ซึ่งตัวอย่างนี้จะใช้วิธีการกดปุ่ม sw_ok  เพียงปุ่มเดียว ในการเลื่อนเมนูและเลือกกดเมนูที่ต้องการ  เทคนิคที่ใช้คือ ตรวจสอบการกดปุ่ม โดยการจับเวลาการกดปุ่มถ้ากดนานเกิน 1200 มิลลิวินาทีให้ถือว่าเป็นการกดเพื่อเลือกเมนูนั้น ๆ แต่ถ้ากดปล่อยเวลาน้อยกว่า 1200 มิลลิวินาทีถือว่าเป็นการกดเพื่อเลื่อนเมนู
   โดยจะสร้างเงื่อนมาสองเงื่อนไขหลักในการตรวจสอบการกดปุ่ม sw_ok นะครับ คือ
1.ถ้ากดค้าง (pp=1) ก็ตรวจสอบอีกว่าตอนนี้อยู่เมนูที่เท่าไร
  โดยใช้เงื่อนไขใน switch(kk)  เพื่อให้ทำงานตามฟังก์ชันต่าง ๆ ที่อยู่ใน case
2.ถ้ากดปล่อยธรรมดา  (pp=0) ให้เพิ่มค่าให้ตัวแปร kk คือ เมนูที่เท่าไร แล้วทำการวนซ้ำขีดเส้นสี
  เพื่อแสดงการถูกเลือกหรือแสดงว่าเมนูอยู่ที่ลำดับเท่าไร
ส่วนของตัวแปรนะครับ สามารถคัดลอก(พิมพ์เอาเองนะครับ จะได้รู้ว่ามันเป็นมาอย่างไร อย่าขี่เกียจมันไม่ได้ช่วยให้เราพัฒนาขึ้นนะครับ)

     char title[]="ข้อความส่วนหัวของหน้าจอ"
     char m_menu[][20]={  "1.Sound ",
                                       "2.Servo",
                                       "3.Motor",
                                       "4.Port analog",
                                       "5.Calculator",
                                       "6.Exit"    };
    ตัวแปร m_menu[][20]  เป็นตัวแปรแบบ 2 มิติ  ตัวเลข [20] คือความกว้างของข้อความนะครับ เท่ากับ 20 ตัวอักขระ  สามารถกำหนดมากกว่าหรือน้อยกว่านี้แล้วแต่ขนาดความยาวของข้อความนั้น ๆและรายการที่อยู่ในตัวแปรอาเรย์นี้ก็สามารถเพิ่มเติมได้เลยนะครับ ในบรรทัดที่ 22 จะเป็นการคำนวณหาจำนวนอาเรย์หรือจำนวนเมนูทั้งหมดที่อยู่ในตัวแปรนี้ และเก็บไว้ในตัวแปร count_menu เป็นจำนวนของเมนูทั้งหมด

     ส่วนการนำตัวอย่างไปทดสอบ แก้ไขตัวแปร title , m_menu  และในเงื่อนไข switch(kk)  เพิ่มลบ case ใส่ฟังก์ชันที่ต้องการลงไปก็เสร็จพร้อมใช้งานครับ  

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

ตัวอย่างการใช้งาน(อันนี้เป็น UI แบบเก่าครับ อันใหม่ยังไม่ได้ถ่าย)
 ตัวอย่างการใช้งาน(อันนี้เป็น UI แบบใหม่ แต่เป็นการใช้ Knob เป็นตัวเลื่อนเมนู)
โค๊ดตัวอย่าง

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

  1. หน้าจะก็อปได้นะครับ ไม่อยากพิมยาวอะครับ

    ตอบลบ
  2. การเรียนรู้ ต้องอาศัยการฝึกฝน ความอดทนและทุ่มเท โค๊ดผมเป็นเพียงโค๊ดเล็ก ๆ สั้น ๆ เป็นเพียงพื้นฐานเท่านั้น ต่อมันคือบรรไดขั้นแรกที่จะก้าวขั้นสู่ระดับ advance ต่อไป แต่ถ้าคุณคิดว่าการขี้เกียจ เอาแต่ copy และก็ past มันก็สำเร็จเหมือนกันอันนี้ผมไม่เถียง แต่ถามกลับไปว่าคุณได้อะไร

    ตอบลบ
  3. อยากขอให้ บอกแนวทางการเขียนโค๊ดหุ่นยนต์เดินตามเส้นหน่อยครับ

    ตอบลบ
  4. ไม่ระบุชื่อ7 พฤษภาคม 2556 เวลา 18:25

    This treadmill is often a excellent financial commitment
    when you have very a little home.

    Also visit my web blog - bowflex adjustable dumbbells

    ตอบลบ
  5. ไม่ระบุชื่อ18 พฤษภาคม 2556 เวลา 19:42

    It is demanding to select the most beneficial property gymnasium and tools for your job.


    Here is my web blog; bowflex dumbbells 552

    ตอบลบ
  6. ไม่ระบุชื่อ22 พฤษภาคม 2556 เวลา 06:51

    It also has a calorie counter, a memory recall,
    and to top all of it, it is water-resistant, that is great specially that 1 perspires quite a bit all
    through exercise routines.

    Feel free to surf to my web blog :: http://www.getfitnstrong.com/adjustable-dumbbells/adjustable-dumbbells/

    ตอบลบ

...