5
อัลกอริทึมที่มีประสิทธิภาพ / โครงสร้างข้อมูลในการคำนวณค่าเฉลี่ยเคลื่อนที่
ขณะนี้ฉันกำลังพัฒนาระบบ LCD กราฟิกเพื่อแสดงอุณหภูมิการไหลแรงดันไฟฟ้าพลังงานและพลังงานในระบบปั๊มความร้อน การใช้กราฟิก LCD หมายความว่าครึ่งหนึ่งของ SRAM ของฉันและประมาณ 75% ของแฟลชของฉันถูกใช้จนหมดโดยบัฟเฟอร์หน้าจอและสตริง ขณะนี้ฉันกำลังแสดงตัวเลขพลังงานต่ำสุด / เฉลี่ย / เฉลี่ยเวลาเที่ยงคืนเมื่อรูปประจำวันรีเซ็ตระบบจะตรวจสอบว่าปริมาณการใช้พลังงานสำหรับวันนั้นสูงกว่าหรือต่ำกว่าค่าต่ำสุดหรือค่าต่ำสุดก่อนหน้านี้และเก็บค่าไว้ ค่าเฉลี่ยจะคำนวณโดยหารปริมาณการใช้พลังงานสะสมด้วยจำนวนวัน ฉันต้องการแสดงค่าเฉลี่ยรายวันในสัปดาห์ที่แล้วและเดือนที่แล้ว (4 สัปดาห์สำหรับความเรียบง่าย) เช่นค่าเฉลี่ยเคลื่อนที่ ขณะนี้สิ่งนี้เกี่ยวข้องกับการบำรุงรักษาอาร์เรย์ของค่าในช่วง 28 วันที่ผ่านมาและการคำนวณค่าเฉลี่ยของทั้งอาร์เรย์สำหรับรายเดือนและ 7 วันล่าสุดสำหรับรายสัปดาห์ ตอนแรกฉันทำสิ่งนี้โดยใช้อาร์เรย์ลอย (เนื่องจากพลังงานอยู่ในรูปแบบ "12.12kWh") แต่ใช้ 28 * 4 ไบต์ = 112 ไบต์ (5.4% ของ SRAM) ฉันไม่รังเกียจที่จะมีเพียงจุดทศนิยมเดียวของความละเอียดดังนั้นฉันจึงเปลี่ยนเป็นการใช้ uint16_t และคูณตัวเลขด้วย 100 ซึ่งหมายความว่า 12.12 แทนด้วย 1212 และฉันหารด้วย 100 เพื่อการแสดงผล …