MCU ขับเคลื่อนการพิจารณาหน้าจอ LCD และการออกแบบอย่างไร

2023-07-17

การจำแนกประเภทและการประยุกต์ไมโครคอมพิวเตอร์ชิปตัวเดียว
ตามประเภทหน่วยความจำ MCU สามารถแบ่งได้เป็นสองประเภทโดยไม่มี ROM บนชิปและ ROM บนชิป สำหรับชิปที่ไม่มี ROM บนชิป จะต้องเชื่อมต่อกับ EPROM ภายนอก (โดยทั่วไปคือ 8031) ชิปที่มี ROM บนชิปจะถูกแบ่งออกเป็น EPROM บนชิป (โดยทั่วไปคือ 87C51), MASK บนชิปมาสก์ ROM (โดยทั่วไปคือ 87C51) ชิปคือ 8051), ประเภทแฟลชบนชิป (ชิปทั่วไปคือ 89C51) และประเภทอื่น ๆ
ตามวัตถุประสงค์สามารถแบ่งออกเป็นวัตถุประสงค์ทั่วไปและวัตถุประสงค์พิเศษ ตามความกว้างของบัสข้อมูลและความยาวของไบต์ข้อมูลที่สามารถประมวลผลได้ในคราวเดียว สามารถแบ่งออกเป็น MCU 8, 16 และ 32 บิต
ปัจจุบันตลาดแอปพลิเคชัน MCU ในประเทศมีการใช้กันอย่างแพร่หลายในด้านเครื่องใช้ไฟฟ้า รองลงมาคือด้านอุตสาหกรรมและตลาดอิเล็กทรอนิกส์ในยานยนต์ เครื่องใช้ไฟฟ้า ได้แก่ เครื่องใช้ในบ้าน โทรทัศน์ เครื่องเล่นเกม ระบบเครื่องเสียงและวิดีโอ และอื่นๆ สาขาอุตสาหกรรม ได้แก่ บ้านอัจฉริยะ ระบบอัตโนมัติ การใช้งานทางการแพทย์ และการผลิตและจำหน่ายพลังงานใหม่ สาขายานยนต์ ได้แก่ ระบบส่งกำลังของยานยนต์และระบบควบคุมความปลอดภัย ฯลฯ
เซินเจิ้น Hongjia Technology Co., Ltd. เชี่ยวชาญด้าน R&D การผลิตและการขายหน้าจอ LCD และหน้าจอสัมผัสขนาด 1.14 นิ้ว-10.1 นิ้ว ซึ่งสามารถปรับแต่งได้ และให้การสนับสนุนจอแสดงผล MCU รวมถึงอินเทอร์เฟซ SPI, อินเทอร์เฟซ MCU, อินเทอร์เฟซ RGB, อินเทอร์เฟซ MIPI ฯลฯ มีหลายขนาดและรุ่น สามารถจัดหาหน้าจอสัมผัสแบบต้านทานและหน้าจอสัมผัสแบบ capacitive ได้
ฟังก์ชั่นพื้นฐานของไมโครคอมพิวเตอร์ชิปตัวเดียว

สำหรับ MCU ส่วนใหญ่ ฟังก์ชันต่อไปนี้เป็นฟังก์ชันทั่วไปและเป็นพื้นฐานที่สุด สำหรับ MCU ที่แตกต่างกัน คำอธิบายอาจแตกต่างกัน แต่โดยพื้นฐานแล้วจะเหมือนกัน:

1. TImer (ตัวจับเวลา): แม้ว่า TImer จะมีหลายประเภท แต่ก็สามารถแบ่งได้เป็น 2 ประเภท: ประเภทแรกคือ TImer ที่มีช่วงเวลาคงที่ กล่าวคือ ระยะเวลาถูกกำหนดโดยระบบ และโปรแกรมผู้ใช้ไม่สามารถควบคุมได้ มีเพียงช่วงเวลาคงที่หลายช่วงเวลาเพื่อให้โปรแกรมผู้ใช้เลือก เช่น 32Hz, 16Hz, 8Hz เป็นต้น TImer ประเภทนี้พบได้ทั่วไปใน MCU 4 บิต ดังนั้นจึงสามารถใช้เพื่อนำฟังก์ชันที่เกี่ยวข้องไปใช้ เช่น นาฬิกาและเวลา .
อีกประเภทหนึ่งคือ Programmable Timer (โปรแกรมตั้งเวลาได้) ตามที่ชื่อบอกไว้ โปรแกรมของผู้ใช้สามารถควบคุมเวลาจับเวลาของ Timer ประเภทนี้ได้ วิธีการควบคุมประกอบด้วย: การเลือกแหล่งสัญญาณนาฬิกา การเลือกการแบ่งความถี่ (พรีสเกล) และการตั้งค่าตัวเลขสำเร็จรูป เป็นต้น MCU บางตัวมีทั้งสามรายการพร้อมกัน ในขณะที่บางตัวอาจมีหนึ่งหรือสองอัน แอปพลิเคชัน Timer ประเภทนี้มีความยืดหยุ่นสูงและการใช้งานจริงก็เปลี่ยนแปลงตลอดเวลา หนึ่งในแอปพลิเคชั่นที่พบบ่อยที่สุดคือการใช้เพื่อรับเอาต์พุต PWM
เนื่องจากสามารถเลือกแหล่งสัญญาณนาฬิกาได้อย่างอิสระ โดยทั่วไปตัวจับเวลาดังกล่าวจะรวมเข้ากับตัวนับเหตุการณ์
2. พอร์ต IO: MCU ใดๆ จะมีพอร์ต IO จำนวนหนึ่ง หากไม่มีพอร์ต IO MCU จะสูญเสียช่องทางการสื่อสารกับโลกภายนอก ตามการกำหนดค่าของพอร์ต IO สามารถแบ่งออกเป็นประเภทต่างๆ ได้ดังต่อไปนี้:
พอร์ตอินพุตหรือเอาต์พุตบริสุทธิ์: พอร์ต IO ประเภทนี้ถูกกำหนดโดยการออกแบบฮาร์ดแวร์ MCU สามารถเป็นอินพุตหรือเอาต์พุตได้เท่านั้น และไม่สามารถตั้งค่าด้วยซอฟต์แวร์แบบเรียลไทม์ได้
อ่านและเขียนพอร์ต IO โดยตรง: ตัวอย่างเช่น พอร์ต IO ของ MCS-51 เป็นของพอร์ต IO ประเภทนี้ เมื่อดำเนินการคำสั่งอ่านพอร์ต IO จะเป็นพอร์ตอินพุต เมื่อดำเนินการคำสั่งเขียนพอร์ต IO มันจะเป็นพอร์ตเอาต์พุตโดยอัตโนมัติ
การเขียนโปรแกรมโปรแกรมเพื่อกำหนดทิศทางอินพุตและเอาต์พุต: อินพุตหรือเอาต์พุตของพอร์ต IO ประเภทนี้ถูกกำหนดโดยโปรแกรมตามความต้องการที่แท้จริง แอปพลิเคชันค่อนข้างยืดหยุ่น และแอปพลิเคชันระดับบัสบางตัวสามารถรับรู้ได้ เช่น I2C บัส, แอลซีดีต่างๆ, บัสควบคุม LED Drivers ฯลฯ
ในการใช้พอร์ต IO ต้องคำนึงถึงจุดสำคัญ: สำหรับพอร์ตอินพุตจะต้องมีสัญญาณระดับที่ชัดเจนเพื่อให้แน่ใจว่าไม่สามารถลอยได้ (สามารถทำได้โดยการเพิ่ม pull-up หรือ pull- ตัวต้านทานลง); สำหรับพอร์ตเอาต์พุต เอาต์พุต ระดับสถานะจะต้องพิจารณาการเชื่อมต่อภายนอก และควรตรวจสอบให้แน่ใจว่าไม่มีแหล่งที่มาหรืออ่างล้างจานในสถานะสแตนด์บายหรือสแตติก
3. การขัดจังหวะภายนอก: การขัดจังหวะภายนอกยังเป็นฟังก์ชันพื้นฐานของ MCU ส่วนใหญ่ โดยทั่วไปจะใช้สำหรับการทริกเกอร์สัญญาณแบบเรียลไทม์ การสุ่มตัวอย่างข้อมูล และการตรวจจับสถานะ การขัดจังหวะมีหลายประเภท: ขอบที่เพิ่มขึ้น, ทริกเกอร์ขอบตก และทริกเกอร์ระดับ โดยทั่วไปการขัดจังหวะภายนอกจะดำเนินการผ่านพอร์ตอินพุต หากเป็นพอร์ต IO ฟังก์ชั่นขัดจังหวะจะเปิดใช้งานเมื่อตั้งค่าเป็นอินพุตเท่านั้น ถ้าเป็นพอร์ตเอาต์พุต ฟังก์ชั่นขัดจังหวะภายนอกจะถูกปิดโดยอัตโนมัติ (มีข้อยกเว้นบางประการในชุด ATiny ของ ATMEL พอร์ตเอาต์พุตยังสามารถเรียกใช้ฟังก์ชันขัดจังหวะได้) การประยุกต์ใช้การขัดจังหวะภายนอกมีดังนี้:
การตรวจจับสัญญาณทริกเกอร์ภายนอก: สัญญาณหนึ่งขึ้นอยู่กับข้อกำหนดแบบเรียลไทม์ เช่น การควบคุมวงจรเรียงกระแสที่ควบคุมด้วยซิลิคอน การตรวจจับสัญญาณระเบิด ฯลฯ และอีกสัญญาณหนึ่งคือความจำเป็นในการประหยัดพลังงาน
การวัดความถี่ของสัญญาณ: เพื่อให้แน่ใจว่าสัญญาณจะไม่พลาด การขัดจังหวะจากภายนอกจึงเป็นตัวเลือกที่เหมาะสมที่สุด
การถอดรหัสข้อมูล: ในด้านแอปพลิเคชันการควบคุมระยะไกล เพื่อลดต้นทุนการออกแบบ บ่อยครั้งที่จำเป็นต้องใช้ซอฟต์แวร์ในการถอดรหัสข้อมูลที่เข้ารหัสต่างๆ เช่น การถอดรหัสแมนเชสเตอร์และการเข้ารหัส PWM
การตรวจจับคีย์และการปลุกระบบ: สำหรับ MCU ที่เข้าสู่สถานะสลีป โดยทั่วไปจะต้องถูกปลุกผ่านการขัดจังหวะภายนอก รูปแบบพื้นฐานที่สุดคือคีย์ และการเปลี่ยนแปลงระดับจะถูกสร้างขึ้นโดยการกระทำของคีย์
4. อินเทอร์เฟซการสื่อสาร: อินเทอร์เฟซการสื่อสารที่ MCU ให้ไว้โดยทั่วไปประกอบด้วยอินเทอร์เฟซ SPI, UART, อินเทอร์เฟซ I2C ฯลฯ ซึ่งมีคำอธิบายดังนี้:
อินเทอร์เฟซ SPI: อินเทอร์เฟซประเภทนี้เป็นวิธีการสื่อสารขั้นพื้นฐานที่สุดที่ MCU ส่วนใหญ่มีให้ การส่งข้อมูลถูกควบคุมโดยนาฬิกาซิงโครนัส สัญญาณประกอบด้วย: SDI (อินพุตข้อมูลอนุกรม), SDO (เอาต์พุตข้อมูลอนุกรม), SCLK (นาฬิกาอนุกรม) และสัญญาณพร้อม; ในบางกรณีอาจไม่มีสัญญาณ Ready; อินเทอร์เฟซประเภทนี้สามารถทำงานได้ในโหมด Master หรือโหมด Slave คำที่นิยมใช้กันคือดูว่าใครเป็นผู้ส่งสัญญาณนาฬิกา ฝ่ายที่ส่งสัญญาณนาฬิกาคือ Master และฝ่ายตรงข้ามก็คือ Slaver
UART (การส่งผ่านแบบอะซิงโครนัสสากล): เป็นอินเทอร์เฟซการส่งข้อมูลแบบอะซิงโครนัสพื้นฐานที่สุด สายสัญญาณมีเพียง Rx และ Tx รูปแบบข้อมูลพื้นฐานคือ: บิตเริ่มต้น + บิตข้อมูล (7 บิต/8 บิต) + บิตพาริตี (คู่ คี่ หรือไม่มี) + บิตหยุด (1~2 บิต) เวลาที่ข้อมูลหนึ่งบิตใช้เรียกว่า อัตรารับส่งข้อมูล (อัตรารับส่งข้อมูล)
สำหรับ MCU ส่วนใหญ่ ความยาวของบิตข้อมูล วิธีตรวจสอบข้อมูล (ตรวจสอบคี่ ตรวจสอบคู่ หรือไม่ตรวจสอบ) ความยาวของบิตหยุด (บิตหยุด) และอัตรารับส่งข้อมูลสามารถตั้งค่าได้อย่างยืดหยุ่นผ่านการตั้งโปรแกรม แน่นอน. วิธีที่ใช้กันมากที่สุดของอินเทอร์เฟซประเภทนี้คือการสื่อสารกับพอร์ตอนุกรมของพีซี
อินเทอร์เฟซ I2C: I2C เป็นโปรโตคอลการรับส่งข้อมูลที่พัฒนาโดย Philips ซึ่งใช้งานโดยสัญญาณสองสัญญาณ: SDAT (อินพุตและเอาต์พุตข้อมูลอนุกรม) และ SCLK (นาฬิกาอนุกรม) ข้อได้เปรียบที่ใหญ่ที่สุดคือสามารถเชื่อมต่ออุปกรณ์หลายตัวเข้ากับบัสนี้ได้ ซึ่งสามารถระบุและเข้าถึงได้ผ่านที่อยู่ ข้อดีที่ใหญ่ที่สุดประการหนึ่งของบัส I2C คือสะดวกมากในการใช้ซอฟต์แวร์เพื่อรับรู้ผ่านพอร์ต IO และอัตราการส่งข้อมูลจะถูกควบคุมโดย SCLK อย่างสมบูรณ์ ในการควบคุมอาจเร็วหรือช้าซึ่งแตกต่างจากอินเทอร์เฟซ UART ซึ่งมีข้อกำหนดความเร็วที่เข้มงวด
5. Watchdog (ตัวจับเวลา Watchdog): Watchdog ยังเป็นการกำหนดค่าพื้นฐานของ MCU ส่วนใหญ่ (MCU 4 บิตบางตัวอาจไม่มีฟังก์ชันนี้) และ MCU Watchdog ส่วนใหญ่อนุญาตให้เฉพาะโปรแกรมรีเซ็ตและไม่สามารถรีเซ็ตได้ มันถูกปิด (บางอันจะถูกตั้งค่าไว้เมื่อมีการเบิร์นโปรแกรม เช่น MCU ซีรีส์ Microchip PIC) และ MCU บางตัวจะกำหนดว่าจะเปิดในลักษณะเฉพาะหรือไม่ เช่น ซีรีส์ KS57 ของ Samsung ตราบใดที่โปรแกรมเข้าถึงรีจิสเตอร์ Watchdog จะถูกเปิดโดยอัตโนมัติและไม่สามารถปิดได้อีก โดยทั่วไปแล้ว เวลารีเซ็ตของ Watchdog สามารถตั้งค่าได้ตามโปรแกรม แอปพลิเคชันพื้นฐานที่สุดของ Watchdog คือการให้ความสามารถในการกู้คืนตัวเองเพื่อให้ MCU หยุดทำงานเนื่องจากความล้มเหลวที่ไม่คาดคิด

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

สำหรับการเขียนโปรแกรม MCU เฟรมเวิร์กพื้นฐานอาจกล่าวได้ว่าใกล้เคียงกัน โดยทั่วไปแบ่งออกเป็นสามส่วน: ส่วนการเริ่มต้น (นี่คือความแตกต่างที่ใหญ่ที่สุดระหว่างการเขียนโปรแกรม MCU และการเขียนโปรแกรม PC) ตัวลูปโปรแกรมหลัก และโปรแกรมประมวลผลขัดจังหวะ ซึ่งตามลำดับ อธิบายดังนี้:
1. การเริ่มต้น: สำหรับการออกแบบโปรแกรม MCU ทั้งหมด การเริ่มต้นเป็นขั้นตอนพื้นฐานและสำคัญที่สุด โดยทั่วไปรวมถึงขั้นตอนต่อไปนี้:
ปิดบังการขัดจังหวะทั้งหมดและเตรียมใช้งานตัวชี้สแต็ก: ส่วนการกำหนดค่าเริ่มต้นโดยทั่วไปไม่ต้องการให้เกิดการขัดจังหวะใดๆ
Clear the RAM area of the system and display Memory: Although sometimes it may not be completely necessary, from the perspective of reliability and consistency, especially to prevent accidental errors, it is recommended to develop good programming habits.
การเริ่มต้นพอร์ต IO: ตามความต้องการแอปพลิเคชันของโครงการ ให้ตั้งค่าโหมดอินพุตและเอาต์พุตของพอร์ต IO ที่เกี่ยวข้อง สำหรับพอร์ตอินพุต คุณต้องตั้งค่าความต้านทานแบบดึงขึ้นหรือดึงลง สำหรับพอร์ตเอาต์พุต คุณต้องตั้งค่าเอาต์พุตระดับเริ่มต้น เพื่อป้องกันข้อผิดพลาดที่ไม่จำเป็น
การตั้งค่าการขัดจังหวะ: สำหรับแหล่งที่มาของการขัดจังหวะทั้งหมดที่จำเป็นต้องใช้ในโปรเจ็กต์ ควรเปิดใช้งานแหล่งที่มาเหล่านั้นและควรตั้งค่าเงื่อนไขทริกเกอร์สำหรับการขัดจังหวะ ในขณะที่สำหรับการขัดจังหวะซ้ำซ้อนที่ไม่ได้ใช้ จะต้องปิดการตั้งค่าเหล่านั้น
การเริ่มต้นโมดูลฟังก์ชันอื่นๆ: สำหรับโมดูลฟังก์ชันต่อพ่วงทั้งหมดของ MCU ที่จำเป็นต้องใช้ การตั้งค่าที่เกี่ยวข้องจะต้องเป็นไปตามข้อกำหนดการใช้งานของโปรเจ็กต์ เช่น การสื่อสาร UART อัตรารับส่งข้อมูล ความยาวข้อมูล วิธีการตรวจสอบ และการหยุด จำเป็นต้องตั้งค่าบิต ความยาว ฯลฯ และสำหรับโปรแกรมเมอร์ไทเมอร์ คุณต้องตั้งค่าแหล่งสัญญาณนาฬิกา การแบ่งความถี่ และรีโหลดข้อมูล เป็นต้น
การเริ่มต้นพารามิเตอร์: หลังจากเสร็จสิ้นการเริ่มต้นฮาร์ดแวร์และทรัพยากร MCU แล้ว ขั้นตอนต่อไปคือการเริ่มต้นตัวแปรและข้อมูลบางส่วนที่ใช้ในโปรแกรม การเริ่มต้นส่วนนี้จำเป็นต้องได้รับการออกแบบตามโครงการเฉพาะและการจัดเตรียมโดยรวมของโปรแกรม สำหรับบางแอปพลิเคชันที่ใช้ EEPROM เพื่อบันทึกข้อมูลสำเร็จรูปของโปรเจ็กต์ แนะนำให้คัดลอกข้อมูลที่เกี่ยวข้องไปยัง RAM ของ MCU ในระหว่างการเริ่มต้นเพื่อปรับปรุงความเร็วในการเข้าถึงของโปรแกรมไปยังข้อมูลและลดการใช้พลังงานของระบบ (โดยหลักการแล้ว การเข้าถึง EEPROM ภายนอกจะเพิ่มการใช้พลังงานของแหล่งจ่ายไฟ)
2. ตัวลูปของโปรแกรมหลัก: MCU ส่วนใหญ่ทำงานอย่างต่อเนื่องเป็นเวลานาน ดังนั้นตัวโปรแกรมหลักจึงได้รับการออกแบบโดยทั่วไปในลักษณะวงจร สำหรับแอปพลิเคชันที่มีโหมดการทำงานหลายโหมด อาจมีการแปลงเนื้อหาลูป A หลายรายการระหว่างกันผ่านแฟล็กสถานะ สำหรับเนื้อหาของโปรแกรมหลัก โดยทั่วไปจะมีการจัดเรียงโมดูลต่อไปนี้:
โปรแกรมคำนวณ: โดยทั่วไป โปรแกรมคำนวณใช้เวลานาน ดังนั้นจึงต่อต้านการประมวลผลขัดจังหวะใดๆ โดยสิ้นเชิง โดยเฉพาะการดำเนินการคูณและการหาร
การประมวลผลโปรแกรมที่มีข้อกำหนดแบบเรียลไทม์ต่ำหรือไม่มีข้อกำหนดแบบเรียลไทม์

โปรแกรมส่งสัญญาณการแสดงผล: ส่วนใหญ่สำหรับการใช้งานที่มีไดรเวอร์ LED และ LCD ภายนอก
3. โปรแกรมประมวลผลขัดจังหวะ: โปรแกรมขัดจังหวะส่วนใหญ่จะใช้ในการประมวลผลงานและเหตุการณ์ที่มีความต้องการแบบเรียลไทม์สูง เช่น การตรวจจับสัญญาณกะทันหันภายนอก การตรวจจับและการประมวลผลปุ่ม การนับเวลา การสแกนจอแสดงผล LED เป็นต้น
โดยทั่วไป โปรแกรมขัดจังหวะควรรักษาโค้ดให้กระชับและสั้นที่สุด สำหรับฟังก์ชันที่ไม่จำเป็นต้องประมวลผลแบบเรียลไทม์ คุณสามารถตั้งค่าสถานะทริกเกอร์ในการขัดจังหวะ จากนั้นโปรแกรมหลักจะดำเนินการธุรกรรมเฉพาะ ซึ่งเป็นสิ่งสำคัญมาก โดยเฉพาะอย่างยิ่งสำหรับ MCU ที่ใช้พลังงานต่ำและความเร็วต่ำ จำเป็นต้องตรวจสอบให้แน่ใจว่ามีการตอบสนองต่ออินเตอร์รัปต์ทั้งหมดได้ทันท่วงที
4. สำหรับการจัดเรียงเนื้อหางานที่แตกต่างกัน MCU ที่ต่างกันจะมีวิธีการประมวลผลที่แตกต่างกัน:
ตัวอย่างเช่น สำหรับแอปพลิเคชัน MCU ความเร็วต่ำและพลังงานต่ำ (Fosc=32768Hz) เมื่อพิจารณาว่าโปรเจ็กต์ดังกล่าวเป็นอุปกรณ์มือถือทั้งหมดและใช้จอ LCD ธรรมดา การตอบสนองต่อปุ่มและจอแสดงผลต้องการประสิทธิภาพแบบเรียลไทม์สูง ดังนั้นโดยทั่วไปแล้วการขัดจังหวะแบบหมดเวลา ใช้ในการประมวลผลการทำงานของปุ่มและการแสดงข้อมูล และสำหรับ MCU ความเร็วสูง เช่น แอปพลิเคชัน Fosc>1MHz เนื่องจาก MCU มีเวลาเพียงพอที่จะดำเนินการกับส่วนเนื้อหาของลูปโปรแกรมหลักในขณะนี้ จึงสามารถถูกขัดจังหวะได้เฉพาะในการตั้งค่าแฟล็กทริกเกอร์ต่างๆ ที่สอดคล้องกันใน และใส่งานทั้งหมด ในส่วนของโปรแกรมหลักเพื่อดำเนินการ
5. ในการออกแบบโปรแกรมของ MCU อีกจุดหนึ่งที่ต้องให้ความสนใจเป็นพิเศษคือ:

เพื่อป้องกันการเข้าถึงหรือการตั้งค่าตัวแปรหรือข้อมูลเดียวกันพร้อมกันในการขัดจังหวะและเนื้อหาของโปรแกรมหลัก วิธีการป้องกันที่มีประสิทธิผลคือการจัดเตรียมการประมวลผลข้อมูลดังกล่าวในโมดูล และพิจารณาว่าจะดำเนินการดำเนินการที่เกี่ยวข้องของข้อมูลหรือไม่ โดยการตัดสินแฟล็กทริกเกอร์ ในขณะที่อยู่ในเนื้อความของโปรแกรมอื่น (ส่วนใหญ่จะขัดจังหวะ) ข้อมูลที่ต้องประมวลผล สถานที่ประมวลผลจะตั้งค่าแฟล็กที่ถูกทริกเกอร์เท่านั้น - สิ่งนี้ทำให้แน่ใจได้ว่าการดำเนินการของข้อมูลนั้นสามารถคาดเดาได้และไม่ซ้ำกัน

ทักษะการพัฒนาไมโครคอนโทรลเลอร์

1. วิธีลดข้อผิดพลาดในโปรแกรม
สำหรับวิธีลดข้อบกพร่องของโปรแกรม คุณควรพิจารณาพารามิเตอร์การจัดการเกินช่วงต่อไปนี้ที่ควรพิจารณาระหว่างการทำงานของระบบก่อน
พารามิเตอร์ทางกายภาพ: พารามิเตอร์เหล่านี้ส่วนใหญ่เป็นพารามิเตอร์อินพุตของระบบ รวมถึงพารามิเตอร์การกระตุ้น พารามิเตอร์การทำงานระหว่างการได้มาและการประมวลผล และพารามิเตอร์ผลลัพธ์เมื่อสิ้นสุดการประมวลผล

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


2. จะปรับปรุงประสิทธิภาพของโค้ดโปรแกรมภาษา C ได้อย่างไร
ถือเป็นแนวโน้มที่หลีกเลี่ยงไม่ได้ในการพัฒนาและการประยุกต์ใช้ไมโครคอมพิวเตอร์ตัวเดียวเพื่อใช้ภาษา C เพื่อออกแบบโปรแกรมไมโครคอมพิวเตอร์ตัวเดียว หากคุณต้องการได้รับประสิทธิภาพสูงสุดเมื่อเขียนโปรแกรมในภาษา C วิธีที่ดีที่สุดคือทำความคุ้นเคยกับคอมไพเลอร์ C ที่คุณใช้อยู่ ขั้นแรกให้ทดสอบจำนวนบรรทัดคำสั่งในภาษาแอสเซมบลีที่สอดคล้องกับภาษา C แต่ละภาษาที่คอมไพล์ เพื่อที่คุณจะได้ทราบถึงประสิทธิภาพได้อย่างชัดเจน เมื่อจะเขียนโปรแกรมในอนาคต ให้ใช้คำสั่งที่มีประสิทธิภาพการคอมไพล์สูงสุด คอมไพเลอร์ C แต่ละตัวจะมีความแตกต่างกัน ดังนั้นประสิทธิภาพในการคอมไพล์ก็จะแตกต่างกันด้วย ความยาวโค้ดและเวลาดำเนินการของคอมไพเลอร์ C ระบบฝังตัวที่ยอดเยี่ยมนั้นยาวกว่าระดับฟังก์ชันเดียวกันที่เขียนด้วยภาษาแอสเซมบลีเพียง 5-20%

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

3. วิธีแก้ปัญหาการป้องกันสัญญาณรบกวนของไมโครคอมพิวเตอร์ชิปตัวเดียว วิธีที่มีประสิทธิภาพที่สุดในการป้องกันสัญญาณรบกวนคือการลบแหล่งกำเนิดสัญญาณรบกวนและตัดเส้นทางสัญญาณรบกวนออก แต่มักจะทำได้ยากดังนั้นจึงขึ้นอยู่กับ ความสามารถในการป้องกันการรบกวนของไมโครคอมพิวเตอร์ชิปตัวเดียวนั้นแข็งแกร่งเพียงพอหรือไม่ ในขณะที่ปรับปรุงความสามารถในการป้องกันการรบกวนของระบบฮาร์ดแวร์ ซอฟต์แวร์ป้องกันการรบกวนนั้นโดดเด่นด้วยการออกแบบที่ยืดหยุ่น
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. By using this site, you agree to our use of cookies. Privacy Policy