วันอังคารที่ 13 ตุลาคม พ.ศ. 2558

LAB01 (microcontroller interface)

1. แนวคิด และ วิธีการเขียน code

- สามารถควบคุม Delay เพิ่ม/ลด ได้จาก button ที่เป็น Debounce Switchs 2 ปุ่ม
- ควบคุมการติดของ LED จาก ซ้ายไปขวา และ ขวาไปซ้ายได้เอง จาก Switchเลื่อนตัวที่ 0
- แสดง Display(Output) เป็น LED 8 ดวง ทั้งหมด 3 pattern
- สามารถ Reset Delay กลับไปที่ค่าเริ่มต้นได้ จาก Switchเลื่อนตัวที่ 1
- มี Input ทั้งหมด 4ปุ่ม
- แบ่งการทำงานเป็น state เพื่อให้ควบคุมได้ง่ายขึ้น
- ไม่ต้องการสั่งให้ LED ทั้ง 8 ดวง ติดและดับ ทีละดวง

ปัญหาที่พบ

- เรื่อง DigitalIn/DigitalOut แบบ Array
DigitalIn Input[3]={D0,D1,D2};
DigitalOut LED[8]= {D3,D4,D5,D6,D7,D8,D9,D10};
แต่มี error เกิดขึ้นเพราะว่าไม่สามารถวน while(1){} จึงไปศึกษาจาก Handbook พบว่านิยมใช้
BusOut LED(D3,D4,D5,D6,D7,D8,D9,D10); มากกว่า
จึงนำมาใช้ในการสร้าง pattern ของ LEDs ทั้ง 8 ตัว
- การเปลี่ยน state จะทำได้ก็ต่อเมื่อหมดการทำงานของ state นั้นๆแล้วครับ ไม่สามารถเปลี่ยนกระทันหันในทีเดียวได้
- DigitalIn D0 D1 ไม่สามารถใช้งานได้ครับ อาจเนื่องจากเป็นportเฉพาะ
- การใช้คำสั่ง BusOut จำต้องคำนวณเลขให้ได้เพราะ Output ออกมาเป็นตัวเลขฐาน2  8 bit จึงยุ่งยากกว่าการสั่งแบบทั่วไป แต่สั้นกว่า
Example
         for (int j=0; j<256; j++)
                {
                LED = j;
                wait_ms(100);  
                }
นี่คือ pattern การ Output LED 8 ดวง เป็นตัวเลขฐาน2 ตั้งแต่ 0-255 แบบ 8 bit ครับ


2. VDO แสดงการทำงานของ Program




Step 1 : LED ไล่ติดจากขวาสุดไปซ้ายสุด/  ติดพร้อมกันหมดทุกดวง / ไล่ดับจากขวาสุดไปซ้ายสุด โดยที่ switch ตัวที่0 ยังเป็น logic 0 delay 150 ms

Step 2 : กด  Debouce Switch ตัวที่ 2 เพิ่มDelayขึ้น เป็น1000 ms การติด/ดับของ LED ช้าลง

Step 3 : กด Debouce Switch ตัวที่ 1 ลดDelayลงเหลือ 50 ms การติด/ดับของ LED เพิ่มขึ้น

Step 4 : กด  switch ตัวที่0 เป็น logic1 pattern LED จะติดไล่จากซ้ายสุดไปขวาสุด / ติดพร้อมกันหมดทุกดวง / ไล่ดับจากซ้ายสุดไปขวาสุด

Step 5 :  กด  switch ตัวที่1 เป็น Logic1 Reset Delay เป็น 150 ms

Step 6 : กดDebounce Switch ตัวที่ 1 และ ตัวที่ 2 พร้อมกัน LED จะติดเป็นเลขฐาน2 จาก 1-255 Output แบบ 8 bit

3.code ที่กลุ่มของเราเขียนขึ้นครับ

http://www.mediafire.com/download/3zzirijgl3biz9v/LAB01_microcontroller_interface.rar


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

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