<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="th">
	<id>http://158.108.32.49/wiki/index.php?action=history&amp;feed=atom&amp;title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C</id>
	<title>ตัวอย่างโปรแกรมสำหรับไมโครคอนโทรลเลอร์ - ประวัติรุ่นแก้ไข</title>
	<link rel="self" type="application/atom+xml" href="http://158.108.32.49/wiki/index.php?action=history&amp;feed=atom&amp;title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C"/>
	<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;action=history"/>
	<updated>2026-04-15T04:43:00Z</updated>
	<subtitle>ประวัติรุ่นแก้ไขของหน้านี้ในวิกิ</subtitle>
	<generator>MediaWiki 1.33.1</generator>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=59327&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 02:55, 14 มีนาคม 2565</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=59327&amp;oldid=prev"/>
		<updated>2022-03-14T02:55:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 02:55, 14 มีนาคม 2565&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot; &gt;แถว 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการเขียนโปรแกรมแบบมัลติทาสกิ้งที่ทำให้ LED กระพริบอิสระ พร้อมตรวจสอบสถานะสวิตช์ไปพร้อม ๆ กัน ภายในไฟล์มีซอร์สโค้ดของเฟิร์มแวร์ที่ให้พฤติกรรมการทำงานเดียวกัน แต่ใช้เทคนิคที่แตกต่างกัน 3 รูปแบบคือ (1) ใช้ if (2) ใช้ goto และ (3) ใช้ไลบรารี protothreads&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการเขียนโปรแกรมแบบมัลติทาสกิ้งที่ทำให้ LED กระพริบอิสระ พร้อมตรวจสอบสถานะสวิตช์ไปพร้อม ๆ กัน ภายในไฟล์มีซอร์สโค้ดของเฟิร์มแวร์ที่ให้พฤติกรรมการทำงานเดียวกัน แต่ใช้เทคนิคที่แตกต่างกัน 3 รูปแบบคือ (1) ใช้ if (2) ใช้ goto และ (3) ใช้ไลบรารี protothreads&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: [https://www.cpe.ku.ac.th/~cpj/204223/sim/blink-2leds-sw.html ดูซิมูเลชันแสดงการทำงาน]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: [https://www.cpe.ku.ac.th/~cpj/204223/sim/blink-2leds-sw.html ดูซิมูเลชันแสดงการทำงาน]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: บทความเพิ่มเติม: [[มัลติทาสกิ้งบนไมโครคอนโทรลเลอร์]] และ [[มัลติทาสกิ้งด้วยไลบรารี Protothreads]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58419&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 03:06, 3 พฤษภาคม 2562</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58419&amp;oldid=prev"/>
		<updated>2019-05-03T03:06:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 03:06, 3 พฤษภาคม 2562&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot; &gt;แถว 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์ (เวอร์ชัน Protothreads)&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard-pt.tgz keyboard-pt.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์ (เวอร์ชัน Protothreads)&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard-pt.tgz keyboard-pt.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานเหมือนกับโค้ด keyboard.tgz แต่ใช้ไลบรารี Protothreads ช่วยในการวนลูปอนันต์เพื่อส่งคีย์โค้ดทีละค่า&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานเหมือนกับโค้ด keyboard.tgz แต่ใช้ไลบรารี Protothreads ช่วยในการวนลูปอนันต์เพื่อส่งคีย์โค้ดทีละค่า&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์และเมาส์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/usb-ghost.zip usb-ghost.zip]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์และเมาส์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/usb-ghost.zip usb-ghost.zip] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.cpe.ku.ac.th/~cpj/204223/usb-ghost-arduino.zip usb-ghost-arduino.zip] (สำหรับ Arduino)&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ตัวอย่างการจำลองอุปกรณ์ให้เป็นทั้งเมาส์และคีย์บอร์ดในเวลาเดียวกัน ทำแสงบริเวณตัวรับแสงให้มืด (จนกระทั่ง LED สีแดงติด) เพื่อให้กดคีย์และเมาส์ขยับไปมาบนหน้าจอได้เอง อาศัยไลบรารี Protothreads ในการทำงานหลาย ๆ งาน&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ตัวอย่างการจำลองอุปกรณ์ให้เป็นทั้งเมาส์และคีย์บอร์ดในเวลาเดียวกัน ทำแสงบริเวณตัวรับแสงให้มืด (จนกระทั่ง LED สีแดงติด) เพื่อให้กดคีย์และเมาส์ขยับไปมาบนหน้าจอได้เอง อาศัยไลบรารี Protothreads ในการทำงานหลาย ๆ งาน&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58418&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 06:02, 26 เมษายน 2562</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58418&amp;oldid=prev"/>
		<updated>2019-04-26T06:02:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 06:02, 26 เมษายน 2562&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot; &gt;แถว 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ 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]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ 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]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์ (เวอร์ชัน Protothreads)&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard-pt.tgz keyboard-pt.tgz]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: ทำงานเหมือนกับโค้ด keyboard.tgz แต่ใช้ไลบรารี Protothreads ช่วยในการวนลูปอนันต์เพื่อส่งคีย์โค้ดทีละค่า&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์และเมาส์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/usb-ghost.zip usb-ghost.zip]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์และเมาส์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/usb-ghost.zip usb-ghost.zip]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ตัวอย่างการจำลองอุปกรณ์ให้เป็นทั้งเมาส์และคีย์บอร์ดในเวลาเดียวกัน ทำแสงบริเวณตัวรับแสงให้มืด (จนกระทั่ง LED สีแดงติด) เพื่อให้กดคีย์และเมาส์ขยับไปมาบนหน้าจอได้เอง&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ตัวอย่างการจำลองอุปกรณ์ให้เป็นทั้งเมาส์และคีย์บอร์ดในเวลาเดียวกัน ทำแสงบริเวณตัวรับแสงให้มืด (จนกระทั่ง LED สีแดงติด) เพื่อให้กดคีย์และเมาส์ขยับไปมาบนหน้าจอได้เอง &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;อาศัยไลบรารี Protothreads ในการทำงานหลาย ๆ งาน&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58417&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 15:04, 25 เมษายน 2562</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58417&amp;oldid=prev"/>
		<updated>2019-04-25T15:04:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 15:04, 25 เมษายน 2562&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;แถว 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมสาธิตการทำงานแบบมัลติทาสกิ้ง&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/multitask.zip multitask.zip]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมสาธิตการทำงานแบบมัลติทาสกิ้ง&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/multitask.zip multitask.zip]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการเขียนโปรแกรมแบบมัลติทาสกิ้งที่ทำให้ LED กระพริบอิสระ พร้อมตรวจสอบสถานะสวิตช์ไปพร้อม ๆ กัน ภายในไฟล์มีซอร์สโค้ดของเฟิร์มแวร์ที่ให้พฤติกรรมการทำงานเดียวกัน แต่ใช้เทคนิคที่แตกต่างกัน 3 รูปแบบคือ (1) ใช้ if (2) ใช้ goto และ (3) ใช้ไลบรารี protothreads&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการเขียนโปรแกรมแบบมัลติทาสกิ้งที่ทำให้ LED กระพริบอิสระ พร้อมตรวจสอบสถานะสวิตช์ไปพร้อม ๆ กัน ภายในไฟล์มีซอร์สโค้ดของเฟิร์มแวร์ที่ให้พฤติกรรมการทำงานเดียวกัน แต่ใช้เทคนิคที่แตกต่างกัน 3 รูปแบบคือ (1) ใช้ if (2) ใช้ goto และ (3) ใช้ไลบรารี protothreads&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: [https://www.cpe.ku.ac.th/~cpj/204223/sim/blink-2leds-sw.html ดูซิมูเลชันแสดงการทำงาน]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58416&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 15:03, 25 เมษายน 2562</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58416&amp;oldid=prev"/>
		<updated>2019-04-25T15:03:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 15:03, 25 เมษายน 2562&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;แถว 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: &amp;#039;&amp;#039;วิกินี้เป็นส่วนหนึ่งของรายวิชา [[01204223]]&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: &amp;#039;&amp;#039;วิกินี้เป็นส่วนหนึ่งของรายวิชา [[01204223]]&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมสาธิตการทำงานแบบมัลติทาสกิ้ง&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/multitask.zip multitask.zip]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมสาธิตการทำงานแบบมัลติทาสกิ้ง&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#039;&lt;/ins&gt;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/multitask.zip multitask.zip]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการเขียนโปรแกรมแบบมัลติทาสกิ้งที่ทำให้ LED กระพริบอิสระ พร้อมตรวจสอบสถานะสวิตช์ไปพร้อม ๆ กัน ภายในไฟล์มีซอร์สโค้ดของเฟิร์มแวร์ที่ให้พฤติกรรมการทำงานเดียวกัน แต่ใช้เทคนิคที่แตกต่างกัน 3 รูปแบบคือ (1) ใช้ if (2) ใช้ goto และ (3) ใช้ไลบรารี protothreads&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการเขียนโปรแกรมแบบมัลติทาสกิ้งที่ทำให้ LED กระพริบอิสระ พร้อมตรวจสอบสถานะสวิตช์ไปพร้อม ๆ กัน ภายในไฟล์มีซอร์สโค้ดของเฟิร์มแวร์ที่ให้พฤติกรรมการทำงานเดียวกัน แต่ใช้เทคนิคที่แตกต่างกัน 3 รูปแบบคือ (1) ใช้ if (2) ใช้ goto และ (3) ใช้ไลบรารี protothreads&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58415&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 15:01, 25 เมษายน 2562</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58415&amp;oldid=prev"/>
		<updated>2019-04-25T15:01:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 15:01, 25 เมษายน 2562&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;แถว 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: &amp;#039;&amp;#039;วิกินี้เป็นส่วนหนึ่งของรายวิชา [[01204223]]&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: &amp;#039;&amp;#039;วิกินี้เป็นส่วนหนึ่งของรายวิชา [[01204223]]&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมสาธิตการทำงานแบบมัลติทาสกิ้ง&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/multitask.zip multitask.zip]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: แสดงตัวอย่างการเขียนโปรแกรมแบบมัลติทาสกิ้งที่ทำให้ LED กระพริบอิสระ พร้อมตรวจสอบสถานะสวิตช์ไปพร้อม ๆ กัน ภายในไฟล์มีซอร์สโค้ดของเฟิร์มแวร์ที่ให้พฤติกรรมการทำงานเดียวกัน แต่ใช้เทคนิคที่แตกต่างกัน 3 รูปแบบคือ (1) ใช้ if (2) ใช้ goto และ (3) ใช้ไลบรารี protothreads&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58409&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 17:15, 18 เมษายน 2562</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=58409&amp;oldid=prev"/>
		<updated>2019-04-18T17:15:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 17:15, 18 เมษายน 2562&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;แถว 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ 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]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ 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]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์และเมาส์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/usb-ghost.zip usb-ghost.zip]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: ตัวอย่างการจำลองอุปกรณ์ให้เป็นทั้งเมาส์และคีย์บอร์ดในเวลาเดียวกัน ทำแสงบริเวณตัวรับแสงให้มืด (จนกระทั่ง LED สีแดงติด) เพื่อให้กดคีย์และเมาส์ขยับไปมาบนหน้าจอได้เอง&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=40179&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 15:52, 22 กันยายน 2556</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=40179&amp;oldid=prev"/>
		<updated>2013-09-22T15:52:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 15:52, 22 กันยายน 2556&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot; &gt;แถว 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ p r a c t i c u m SPACE ไปเรื่อย ๆ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ p r a c t i c u m SPACE ไปเรื่อย ๆ &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ตัวอย่างนี้สร้าง HID report ที่รองรับการส่งสถานะการกดคีย์ได้เพียงครั้งละหนึ่งคีย์เท่านั้น หากต้องการส่งสถานะการกดคีย์มากกว่าหนึ่งคีย์ให้ศึกษาจากตัวอย่าง [http://codeandlife.com/2012/06/18/usb-hid-keyboard-with-v-usb/ USB HID Keyboard with V-USB]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=39793&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 16:15, 12 กันยายน 2556</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=39793&amp;oldid=prev"/>
		<updated>2013-09-12T16:15:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 16:15, 12 กันยายน 2556&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;แถว 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์จอยสติ๊ก&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/joystick.tgz joystick.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: อาศัยไลบรารี V-USB เพื่อให้คอมพิวเตอร์มองเห็นบอร์ดไมโครคอนโทรลเลอร์เป็นอุปกรณ์ในกลุ่ม [http://en.wikipedia.org/wiki/USB_human_interface_device_class USB HID (Human Interface Device)] ซึ่งทำให้ใช้งานบนระบบปฏิบัติการทั่วไปเช่น Linux และ Windows ได้ทันทีโดยไม่ต้องเขียนไดรเวอร์เพิ่มเติม &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;โปรแกรมนี้จะรายงานว่าบอร์ดทำหน้าที่เป็นอุปกรณ์จอยสติ๊กที่มีปุ่มแบบดิจิทัล 1 ปุ่ม และแกนแบบแอนะล็อก 1 แกน โดยอ่านสถานะจากปุ่มและตัววัดแสงบนบอร์ดพ่วงตามลำดับ&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมจำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นแป้นพิมพ์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/keyboard.tgz keyboard.tgz]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;: ทำงานคล้ายคลึงกับโปรแกรมจำลองบอร์ดให้เป็นจอยสติ๊ก แต่รายงานให้โฮสท์เห็นเป็นแป้นพิมพ์ โดยมีการวนส่งคีย์ p r a c t i c u m SPACE ไปเรื่อย ๆ&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=39784&amp;oldid=prev</id>
		<title>Chaiporn เมื่อ 04:25, 11 กันยายน 2556</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C&amp;diff=39784&amp;oldid=prev"/>
		<updated>2013-09-11T04:25:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 04:25, 11 กันยายน 2556&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;แถว 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมไฟกระพริบโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด [http://www.cpe.ku.ac.th/~cpj/204223/timer-led.tgz timer-led.tgz]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: แสดงตัวอย่างการใช้งานวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ ซึ่งสามารถตั้งค่าให้ทำงานอิสระจากโปรแกรมหลัก เมื่อไทเมอร์จับเวลาถึงค่าที่ตั้งไว้ก็จะสร้างสัญญาณขัดจังหวะหรืออินเทอร์รัพท์ (interrupt) ที่มีผลให้โค้ดในโปรแกรมหลักกระโดดไปทำงานในรูทีนบริการอินเทอร์รัพท์ (interrupt service routine) ในตัวอย่างนี้รูทีนบริการอินเทอร์รัพท์บรรจุโค้ดให้ตั้งสถานะของ LED กลับไปกลับมา มีผลทำให้ LED กระพริบเป็นจังหวะที่สม่ำเสมอ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมสร้างความถี่เสียงโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด timer-sound.tgz]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;โปรแกรมสร้างความถี่เสียงโดยใช้ไทเมอร์&amp;#039;&amp;#039;&amp;#039; [ดาวน์โหลด &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.cpe.ku.ac.th/~cpj/204223/timer-sound.tgz &lt;/ins&gt;timer-sound.tgz&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: เนื่องจากวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ทำงานอย่างเป็นอิสระจากโปรแกรมหลัก จึงนิยมนำมาใช้สร้างสัญญาณความถี่ที่แม่นยำกว่าการเขียนโปรแกรมวนลูปสร้างสัญญาณ ตัวอย่างนี้แสดงการเปิดใช้งานไทเมอร์หมายเลข 0 โดยตั้งค่าให้การจับเวลาครบแต่ละรอบก่อให้เกิดการกลับไปมาของลอจิกที่ขา OC0A (Timer Output Compare Match A Output) ซึ่งเป็นขาเดียวกันกับขา PD6 เมื่อนำ[http://en.wikipedia.org/wiki/Buzzer#Piezoelectric ลำโพงเปียโซ]มาต่อกับขานี้ดังรูปด้านล่างก็จะทำให้เกิดความถี่เสียงขึ้นมา&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: เนื่องจากวงจรไทเมอร์ภายในตัวไมโครคอนโทรลเลอร์ทำงานอย่างเป็นอิสระจากโปรแกรมหลัก จึงนิยมนำมาใช้สร้างสัญญาณความถี่ที่แม่นยำกว่าการเขียนโปรแกรมวนลูปสร้างสัญญาณ ตัวอย่างนี้แสดงการเปิดใช้งานไทเมอร์หมายเลข 0 โดยตั้งค่าให้การจับเวลาครบแต่ละรอบก่อให้เกิดการกลับไปมาของลอจิกที่ขา OC0A (Timer Output Compare Match A Output) ซึ่งเป็นขาเดียวกันกับขา PD6 เมื่อนำ[http://en.wikipedia.org/wiki/Buzzer#Piezoelectric ลำโพงเปียโซ]มาต่อกับขานี้ดังรูปด้านล่างก็จะทำให้เกิดความถี่เสียงขึ้นมา&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:board-with-speaker.png|center|500px]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:board-with-speaker.png|center|500px]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaiporn</name></author>
		
	</entry>
</feed>