ในขณะที่ผู้อ่านแฮ็กโฆษณาเป็นประจำรู้วิธีการกะพริบเป็นไฟ LED ด้วยไมโครคอนโทรลเลอร์และย้ายไปยังโครงการที่ท้าทายมากขึ้นเล็กน้อยเช่นการแก้สมการ Navier-stokes ในชุดประกอบ 6502 ซึ่งไม่ได้หมายความว่าไม่มี พื้นที่สำหรับมือใหม่ [Rik] ได้ตีพิมพ์บทช่วยสอนที่ยอดเยี่ยมเกี่ยวกับการใช้ DMA ในการเหยียดหยามสำหรับสิ่งที่เปล่งประกายของ Blinkier ทำไมทุกคนถึงต้องการเรียนรู้เกี่ยวกับเทคนิค DMA สำหรับสิ่งที่เปล่งประกายของ Blinkier แน่นอน
บทช่วยสอนนี้สมมติว่ามีความรู้เกี่ยวกับการมัลติเพล็กซ์ LED และ LED เมทริกซ์หรือโดยทั่วไปแล้วจะมีไฟ LED ที่เชื่อมต่อกันบนกริด XY วิธีที่ไร้เดียงสาในการขับขี่ LED 8 × 8 กริดกำลังติดตั้งแคโทดแปดตัวไปยังพิน GPIO บนไมโครคอนโทรลเลอร์ให้ติดตั้งแปดขั้วบวกไปยังพิน GPIO อีกชุดหนึ่งและการจัดหาและการจมปัจจุบันตามที่ต้องการ การนับพินสามารถลดลงได้ด้วยการลงทะเบียนกะและสามารถลดการหรี่แสงได้ด้วย PWM นี่สรุปหลักสูตร Arduino แปดสัปดาห์อย่างเข้มข้นของเรา
ต้องขอบคุณไมโครคอนโทรลเลอร์ที่ไม่ติดอยู่ในช่วงทศวรรษ 1980 เทคนิคใหม่สามารถใช้ในการขับเคลื่อนเมทริกซ์ LED เหล่านี้ ไมโครคอนโทรลเลอร์แขนที่ทรงพลังที่สุดส่วนใหญ่มาพร้อมกับ DMA ซึ่งเป็นอุปกรณ์ต่อพ่วงสำหรับการเข้าถึงหน่วยความจำโดยตรง แทนที่จะใช้งาน CPU ทำงานทั้งหมดควบคุม DMA สามารถสับเปลี่ยนบิตระหว่างหน่วยความจำและพินได้ นี่หมายถึงโครงการกะพริบและไฟ LED Glowier
วิธีการ [Rik] สำหรับ LED DMAING รวมถึงการตั้งค่าอาร์เรย์ OL ขนาดใหญ่ในรหัสการเริ่มต้นอย่างถูกต้องการเริ่มต้น dma peripheral และการเดินสายไฟ LED เมทริกซ์ไปยังพินบางส่วน เทคนิคนี้สามารถขยายไปสู่ภาพเคลื่อนไหวที่มีความสว่าง 64 ระดับบางสิ่งบางอย่างที่จะใช้พลังงานในการประมวลผลที่เหลือเชื่อ (สำหรับไมโครคอนโทรลเลอร์อย่างน้อย) ถ้ามันไม่ได้สำหรับตัวควบคุม DMA
การตั้งค่าที่ใช้ในการทดลองเหล่านี้เป็นคณะกรรมการนิวเคลียส STM32F103 พร้อมกับ OpenStM32 IDE [RIK] ได้เปิดตัวรหัสทั้งหมดที่ Github และแน่นอนว่าคุณได้รับการสนับสนุนให้เล่น
Leave a Reply