ผลต่างระหว่างรุ่นของ "ตัวอย่างโปรแกรมสำหรับไมโครคอนโทรลเลอร์"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 5: แถว 5:
 
* '''โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์''' [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]
 
* '''โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์''' [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]
 
: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ p r a c t i c u m SPACE ไปเรื่อย ๆ ตัวอย่างนี้สร้าง HID report ที่รองรับการส่งสถานะการกดคีย์ได้เพียงครั้งละหนึ่งคีย์เท่านั้น หากต้องการส่งสถานะการกดคีย์มากกว่าหนึ่งคีย์ให้ศึกษาจากตัวอย่าง [http://codeandlife.com/2012/06/18/usb-hid-keyboard-with-v-usb/ USB HID Keyboard with V-USB]
 
: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ p r a c t i c u m SPACE ไปเรื่อย ๆ ตัวอย่างนี้สร้าง HID report ที่รองรับการส่งสถานะการกดคีย์ได้เพียงครั้งละหนึ่งคีย์เท่านั้น หากต้องการส่งสถานะการกดคีย์มากกว่าหนึ่งคีย์ให้ศึกษาจากตัวอย่าง [http://codeandlife.com/2012/06/18/usb-hid-keyboard-with-v-usb/ USB HID Keyboard with V-USB]
 +
* '''โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์และเมาส์''' [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/usb-ghost.zip usb-ghost.zip]]
 +
: ตัวอย่างการจำลองอุปกรณ์ให้เป็นทั้งเมาส์และคีย์บอร์ดในเวลาเดียวกัน ทำแสงบริเวณตัวรับแสงให้มืด (จนกระทั่ง LED สีแดงติด) เพื่อให้กดคีย์และเมาส์ขยับไปมาบนหน้าจอได้เอง
 
* '''โปรแกรมไฟกระพริบโดยใช้ไทเมอร์''' [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]
 
* '''โปรแกรมไฟกระพริบโดยใช้ไทเมอร์''' [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]
 
: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ
 
: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ

รุ่นแก้ไขเมื่อ 17:15, 18 เมษายน 2562

วิกินี้เป็นส่วนหนึ่งของรายวิชา 01204223
  • โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก [ดาวน์โหลด joystick.tgz]
อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม USB HID (Human Interface Device) ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ
  • โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์ [ดาวน์โหลด keyboard.tgz]
ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ p r a c t i c u m SPACE ไปเรื่อย ๆ ตัวอย่างนี้สร้าง HID report ที่รองรับการส่งสถานะการกดคีย์ได้เพียงครั้งละหนึ่งคีย์เท่านั้น หากต้องการส่งสถานะการกดคีย์มากกว่าหนึ่งคีย์ให้ศึกษาจากตัวอย่าง USB HID Keyboard with V-USB
  • โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์และเมาส์ [ดาวน์โหลด usb-ghost.zip]
ตัวอย่างการจำลองอุปกรณ์ให้เป็นทั้งเมาส์และคีย์บอร์ดในเวลาเดียวกัน ทำแสงบริเวณตัวรับแสงให้มืด (จนกระทั่ง LED สีแดงติด) เพื่อให้กดคีย์และเมาส์ขยับไปมาบนหน้าจอได้เอง
  • โปรแกรมไฟกระพริบโดยใช้ไทเมอร์ [ดาวน์โหลด timer-led.tgz]
แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ
  • โปรแกรมสร้างความถี่เสียงโดยใช้ไทเมอร์ [ดาวน์โหลด timer-sound.tgz]
เนื่องจากวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ทำงานอย่างเป็นอิสระจากโปรแกรมหลัก จึงนิยมนำมาใช้สร้างสัญญาณความถี่ที่แม่นยำกว่าการเขียนโปรแกรมวนลูปสร้างสัญญาณ ตัวอย่างนี้แสดงการเปิดใช้งานไทเมอร์หมายเลข 0 โดยตั้งค่าให้การจับเวลาครบแต่ละรอบก่อให้เกิดการกลับไปมาของลอจิกที่ขา OC0A (Timer Output Compare Match A Output) ซึ่งเป็นขาเดียวกันกับขา PD6 เมื่อนำลำโพงเปียโซมาต่อกับขานี้ดังรูปด้านล่างก็จะทำให้เกิดความถี่เสียงขึ้นมา
Board-with-speaker.png