Tag: ภาษาแอสเซมบลี

AVR ภาษาแอสเซมบลี #6 ปุ่มขัดจังหวะ interrupt

ภาษาแอสเซมบลี ปุ่มขัดจังหวะ interrupt อินเตอร์รัพท์ (Interrupt) คือการขัดจังหวะการทำงานของโปรแกรมปกติ เมื่อเกิดเหตุการณ์บางอย่างขึ้น ทำให้ซีพียูไปทำงานที่กำหนดไว้เมื่อเกิดอินเตอร์รัพท์ คำสั่ง Interrupt ใน ATtiny13 คือ การขัดจังหวะ คำสั่งนี้มีประโยชน์มาก โดยเมื่อ ATtiny13 ได้รับสัญญาณ Interrupt แจ้งเข้ามา จะหยุดพักงานที่ทำอยู่ แล้วกระโดดมาทำในคำสั่ง Interrupt ทำให้เราไม่ต้องใช้ if เช็คเงื่อนไขต่าง ๆ ซึ่งจะทำให้เสียเวลา และบางครั้งอาจติดทำคำสั่งอื่นอยู่ ทำให้ไม่ทำงานทันที…

AVR ภาษาแอสเซมบลี #5 ควบคุมความสว่าง LED ด้วย PWM

ภาษาแอสเซมบลี ควบคุมความสว่าง LED ด้วย PWM จนถึงตอนนี้เราใช้ไฟ LED กะพริบ ตอนนี้เรากะพริบต่อไป แต่ด้วยความถี่สูง ด้วยการกะพริบนั้นเราจะเปลี่ยนมาควบคุมความสว่างของหลอดไฟ LED และนี่เป็นลักษณะเชิงเส้นที่แน่นอน ความรู้เบื้องต้นเกี่ยวกับโหมด PWM ของตัวจับเวลา การมอดูเลตความกว้างพัลส์ PWM หมายถึงการมอดูเลตความกว้างของพัลส์ ในการทำเช่นนี้ตัวจับเวลาในการรีสตาร์ทตั้งค่าหรือล้างเอาต์พุต (OC0A และ / หรือ OC0B) หากการจับคู่เปรียบเทียบเกิดขึ้น (A หรือ B) ขั้วของเอาต์พุตจะเปลี่ยนไป…

AVR ภาษาแอสเซมบลี #4 ไฟกระพริบ ด้วย Timer

ภาษาแอสเซมบลี ไฟกระพริบ ด้วย Timer ในบทความนี้จะโบกมือลาให้กับการนับลูปที่ยาวและน่าเบื่อ เราปล่อยให้ตัวจับเวลาภายในทำหน้าที่ในการนับให้เป็นอิสระจากการดำเนินการของโปรแกรม ความรู้เบื้องต้นเกี่ยวกับฮาร์ดแวร์จับเวลา ตัวจับเวลาในตัว (exact: timer/counter, TC0) เป็นส่วนประกอบฮาร์ดแวร์ภายในที่ใช้บ่อยที่สุด ในฐานะที่เป็นองค์ประกอบที่หลากหลายจึงมีโหมดต่างๆมากมายขึ้นอยู่กับความต้องการของเรา เราจะใช้ตัวจับเวลาในการอธิบายในภายหลังดังนั้นในการอธิบายครั้งต่อไปเราจะใช้ตัวจับเวลานี้ในโหมดต่างๆเพื่อควบคุม LED อุปกรณ์ AVR ที่แตกต่างกันมีตัวนับจำนวนที่แตกต่างกัน สิ่งเหล่านี้มีชื่อว่า TC0, TC1 เป็นต้นเนื่องจากบางครั้งตัวจับเวลาสามารถเชื่อมต่อกับ port pins ได้ชื่อขาเหล่านั้นอ้างถึงหมายเลข TC โดย ATtiny13 มีตัวจับเวลาเพียงตัวเดียว แต่มีการใส่ศูนย์ในชื่อแม้ว่าจะไม่จำเป็นในกรณีนั้นก็ตาม ตัวจับเวลา…

AVR ภาษาแอสเซมบลี #3 Blink ไฟกระพริบ LED

AVR ภาษาแอสเซมบลี Blink ไฟกระพริบ LED บทความนี้ จะกล่าวถึงการทำให้ LED ที่อยู่เชื่อมต่ออยู่ที่ ขา PB0 ของ ATtiny13 ให้กระพริบได้ ด้วยการหน่วงเวลา หรือเว้นระยะ ในการ เปิดไฟ LED ซึ่งพื้นฐานของการสลับพอร์ตเอาต์พุตได้อธิบายไว้แล้วในบทความก่อนหน้านี้ว่า: sbi PORTB, PORTB0 ไฟ LED ติด แต่บทความนี้จะเพิ่ม cbi PORTB, PORTB0…

AVR ภาษาแอสเซมบลี #2 โปรแกรมแรก เปิดไฟ LED

AVR ภาษาแอสเซมบลี โปรแกรมแรก เปิดไฟ LED ไมโครคอนโทรลเลอร์ ATtiny13 ไมโครคอนโทรลเลอร์ ATtiny13 มี 8 ขา ซึ่งสามารถใช้เป็นขา GPIO (General Purpose Input / Output) ได้ 5 ขา ขาเหล่านี้มีชื่อว่า PB0 ถึง PB4 แต่ละ GPIO เหล่านั้นถูกควบคุมโดยสองบิตในที่เก็บข้อมูลภายในสองแห่ง สถานที่จัดเก็บเหล่านั้นมีชื่อว่า…

เขียนโปรแกรม GPIO ภาษา Assembly กับ Arduino Uno

GPIO ภาษาแอสเซมบลี (Assembly) กับ Arduino Uno GPIO (General Purpose Input / Output) คืออินเทอร์เฟซที่ควบคุมด้วยซอฟต์แวร์ซึ่งมักพบในไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ ICs หรือชิปเซ็ตอินเทอร์เฟซบางตัว โดยทั่วไปแล้ว GPIO จะเป็นขาหนึ่งตัวขึ้นไปบน IC ซึ่งไม่มีจุดประสงค์พิเศษในตัวมันเอง แต่ช่วยอำนวยความสะดวกให้กับนักออกแบบอุปกรณ์ในการสร้างอินเทอร์เฟซ / การเชื่อมต่อระหว่าง IC และส่วนประกอบอุปกรณ์ต่อพ่วงโดยการเขียนโปรแกรมการลงทะเบียนฮาร์ดแวร์บางตัว ด้วยเหตุนี้ภายในข้อ จำกัด ขา GPIO สามารถปรับแต่งเพื่อใช้เพื่อให้มีฟังก์ชันหรือวัตถุประสงค์เฉพาะบางอย่างภายในการออกแบบอุปกรณ์ฮาร์ดแวร์…

การเขียน ภาษา Assembly กับ Arduino Uno ATmega328P

การเขียน ภาษา Assembly กับ Arduino Uno ATmega328P ภาษา Assembly คือ ภาษาที่ใช้ในการเขียนโปรแกรมภาษาหนึ่ง ซึ่งจะทำงานโดยขึ้นกับรุ่นของไมโครโพรเซสเซอร์ หรือหน่วยประมวลผล (CPU) ของเครื่องคอมพิวเตอร์ การใช้ภาษาแอสเซมบลีจำเป็นต้องผ่านการแปลภาษาด้วยคอมไพเลอร์เฉพาะเรียกว่า แอสเซมเบลอร์ (Assembler) ภาษาแอสเซมบลี จัดอยู่ในภาษาระดับต่ำ และเป็นภาษาที่พัฒนาต่อมาจากภาษาเครื่องในปี ค.ศ. 1952 ภาษาแอสเซมบลีมีความใกล้เคียงกับภาษาเครื่องมาก คือ 1 คำสั่งของภาษาแอสเซมบลีจะเท่ากับ 1 คำสั่งของภาษาเครื่อง โดยที่ภาษาแอสเซมบลีจะเขียนคำสั่งเป็นตัวอักษรภาษาอังกฤษ…

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save