วันศุกร์ที่ 27 พฤศจิกายน พ.ศ. 2558

week 12 Lab 5

การทำงานและแนวคิดของโค้ด

       - ในโค้ดนี้การรับสถานะของสวิตซ์จะใช้ DigitalIn แบบ array เช่นเดียวกันกับการส่ง DigitalOut ไปเป็นสัญญาณเปิดปิด LED 
       - ในการควบคุมโหมดการทำงานของโค้ดนี้ จะใช้ค่าสถานะของสวิตซ์ 2 ตัว และตัวแปรอีกหนึ่งตัวจะเป็นตัวช่วยควบคุมให้โปรแกรมทำคำสั่งเพียงครั้งเดียวต่อการกดสวิตซ์ 1 ครั้ง
       - สำหรับโหมดที่ 1 ซึ่งเป็นการเขียนข้อมูลลงไปบน eeprom จะใช้ array 1 ตัวรับค่าสถานะของสวิตซ์ของบอร์ด NX100 จากนั้นจึงใช้การรันลูป 7 ครั้งเพื่อเขียนข้อมูลลงไปบน eeprom 7 ตำแหน่ง (เขียนทีละตำแหน่ง แต่ละตำแหน่งใช้ loop 1รอบ) โดยหากมีการบันทึกข้อมูลเพิ่มขึ้น address ที่ใช้บันทึกก็จะเลื่อนไปทีละ 7 ตำแหน่งเรื่อย ๆ ด้วย หรือก็คือ หากบันทึกข้อมูลแล้วจะทำการเลื่อน address ไปยังตำแหน่งที่ว่างตำแหน่งถัดไปเพื่อไม่ให้เกิดการซ้อนทับกันของข้อมูล
       - โหมดที่ 2 เป็นการอ่านข้อมูลจากใน eeprom 7 ตำแหน่ง โดยจะใช้การวนลูป 7 รอบเพื่อรับข้อมูลมาเก็บไว้ในตัวแปร array (รับข้อมูลจาก eeprom มาเก็บไว้ใน array ทีละตำแหน่ง) จากนั้นจึงใช้ค่าในตัวแปรนั้นไปควบคุมสถานะของหลอด LED แต่ละหลอด


***********************************


VDO แสดงการทำงานของโปรแกรม

       - โปรแกรมนี้เป็นการใช้บอร์ด nucleo ติดต่อกับ eeprom โดยโปรแกรมจะมีโหมดการทำงาน 2 โหมดซึ่งสามารถเลือกโหมดได้โดยสวิตซ์ทางซ้ายสุดบนบอร์ด NX100 โดยหากสวิตซ์อยู่ที่ logic 1 จะเป็นการบันทึกค่าสถานะของสวิตซ์อีก 7 ตัวที่เหลือลงไปบน address 7 ตัวแหน่งของ eeprom และหากสวิตซ์ตัวซ้ายสุดอยู่ที่ logic 0 จะเป็นการอ่านค่าที่บันทึกอยู่ให eeprom มาแสดงผ่านทางหลอด LED 7 หลอด โดยการทำงานแต่ละรอบจะต้องกดสวิตซ์ User_Button บนบอร์ด nucleo ก่อน


       
************************************

ไม่มีความคิดเห็น:

แสดงความคิดเห็น