ในขณะที่คุณระบุ EEPROM ภายในมีอายุการเขียน 100,000 รอบ นี่ไม่ใช่การเดา - สัดส่วนที่สำคัญของ ATmega328 จะมาถึงจำนวนนี้โดยไม่มีปัญหา ฉันได้ทดสอบโปรเซสเซอร์สามตัวมาก่อนและทั้งหมดถึง 150,000 รอบโดยไม่มีปัญหา
เป็นสิ่งสำคัญที่จะต้องทราบโหมดความล้มเหลวของ EEPROM โครงการ "EEPROM Destroyer" ส่วนใหญ่จะอ่าน / เขียนซ้ำ ๆ จนกว่าจะไม่มีการเขียนข้อมูลเลย ก่อนถึงจุดนี้ EEPROM จะยังคงได้รับความเสียหาย สิ่งนี้จะถูกแสดงออกมาโดยข้อมูลที่ไม่ถูกเก็บไว้ในช่วงเวลาที่เหมาะสม มันไม่ฉลาดที่จะพึ่งพาอะไรมากกว่า 100,000 รอบการเขียนด้วยเหตุผลนี้
EEPROM แตกต่างจาก RAM ใน ATmega การเขียนมันไม่ง่ายหรือรวดเร็ว แต่ถูกห่อหุ้มในห้องสมุด Arduino ที่เป็นมิตรซ่อนความซับซ้อนนี้จากผู้ใช้
ระดับแรกของการอ้อมคือห้องสมุด EEPROMซึ่งง่ายมาก] แค่เรียกฟังก์ชั่นอื่นอีกสองฟังก์ชั่นสำหรับการอ่านและเขียน สายนี้ eeprom_write_byte พบที่นี่
ฟังก์ชั่นนี้ใช้ชุดประกอบแบบอินไลน์ดังนั้นอาจไม่เข้าใจได้ง่าย มีความคิดเห็นที่เข้าใจได้ง่ายว่า:
ตั้งค่าโหมดการเขียนโปรแกรม: ลบและเขียน
คำแนะนำนี้เป็นหนึ่งในความซับซ้อนของการจัดการกับ EEPROM - หากต้องการเขียนถึงมันคุณต้องลบมันก่อน ซึ่งหมายความว่าถ้าคุณเรียก EEPROM.write () มันจะทำการเขียนรอบโดยไม่คำนึงถึงค่าที่คุณกำลังเขียน
ซึ่งหมายความว่าการเขียนซ้ำ 0xFF อาจมีผลเช่นเดียวกับการเขียน 0xFF, 0x00,0xFF, 0x00 เป็นต้น
มีวิธีแก้ไขปัญหานี้ - คุณสามารถลองโทร EEPROM.read () ก่อน EEPROM.write () เพื่อดูว่าค่านั้นเหมือนเดิมหรือไม่ แต่ใช้เวลาเพิ่มเติม
มีเทคนิคอื่น ๆ เพื่อหลีกเลี่ยงการสึกหรอ EEPROM มากเกินไป แต่การใช้งานจะขึ้นอยู่กับแอปพลิเคชันของคุณ