แอ็พพลิเคชันไมโครคอนโทรลเลอร์ 8 บิตหมายเหตุ AVR222 ตัวกรองเฉลี่ย 8 จุด 1 AVR222 ตัวกรองข้อมูลเฉลี่ย 8 จุดแบบเคลื่อนย้ายข้อมูลตัวกรองข้อมูลย่อย 31 คำอาร์เรย์ข้อมูลได้ถึง 256 ไบต์การสาธิตโปรแกรม Runable บทนำตัวกรองค่าเฉลี่ยเคลื่อนที่เป็น Low Pass FIR แบบ จำกัด Impulse ตัวกรองการตอบสนองที่ใช้กันโดยทั่วไปสำหรับการทำให้แอพพลิเคชันเรียบขึ้นตัวอย่างแอ็พพลิเคชันนี้ใช้ตัวกรอง 8 จุดเพื่อลดความซับซ้อนของค่าเฉลี่ยแอ็พพลิเคชันโน้ตให้การสาธิตที่ยอดเยี่ยมว่าโหมดแอดเดรสที่มีประสิทธิภาพในสถาปัตยกรรม AVR สามารถใช้แอพพลิเคชันไมโครคอนโทรลเลอร์แบบ 8 บิตได้อย่างไร ทฤษฎีการกรองค่าเฉลี่ยเคลื่อนที่สามารถนึกภาพได้ว่าเป็นหน้าต่างหนึ่งขนาดในกรณีนี้แปดเคลื่อนที่ไปตามอาร์เรย์หนึ่งองค์ประกอบในแต่ละครั้งองค์ประกอบกลางของหน้าต่างในกรณีนี้องค์ประกอบ 4 จะถูกแทนที่ด้วยค่าเฉลี่ยขององค์ประกอบทั้งหมดใน หน้าต่างดูรูปที่ 1 อย่างไรก็ตามสิ่งสำคัญคือต้องจดจำค่าขององค์ประกอบใหม่ ๆ และไม่สามารถใช้ทดแทนได้จนกว่าหน้าต่างจะผ่านไปนี้ m ust จะต้องทำตั้งแต่ค่าเฉลี่ยทั้งหมดจะขึ้นอยู่กับข้อมูลต้นฉบับในอาร์เรย์รูปที่ 1 หน้าต่างเฉลี่ย 8 จุดหน้าต่างปัจจุบันค่าใหม่ 8 20 เมื่อปลายของอาร์เรย์ถูกกรองและส่วนของหน้าต่างอยู่นอกอาร์เรย์ค่าเฉลี่ย ต้องทำในองค์ประกอบน้อยกว่าเมื่อหน้าต่างทั้งหมดอยู่ในอาร์เรย์การดำเนินการนี้จะสิ้นสุดลงของอาร์เรย์ที่ไม่มีการกรองเพื่อบันทึกโค้ดสำหรับตัวกรอง 8 จุดหมายความว่าเมื่อองค์ประกอบ n ถูกกรององค์ประกอบ 1, 2, 3, และ n-3, n-2, n-1, n ยังคงไม่เปลี่ยนแปลงเมื่อทำการกรองเสร็จสมบูรณ์สำหรับแอ็พพลิเคชันจำนวนมากนี่ไม่ใช่ปัญหา Rev 1.2 อัลกอริธึมการใช้งานแอพพลิเคชันกำหนดเฟรมบัฟเฟอร์ขนาด 8 ไบต์ R0 - R7 ซึ่งถือครอง ข้อมูลในหน้าต่างค่าเฉลี่ยปัจจุบันตัวกรองจะคำนวณผลรวมของหน้าต่างและคำนวณค่าเฉลี่ยซึ่งจะถูกจัดเก็บไว้ในอาร์เรย์ AVR s สามตัวชี้ถูกกำหนดให้กับฟังก์ชันต่อไปนี้ Z ชี้ไปยังองค์ประกอบอาร์เรย์ที่จะถูกแทนที่ Y จุดภายใน แหวน บัฟเฟอร์เมื่อผลรวมของเนื้อหาบัฟเฟอร์ถูกคำนวณในลูปของโปรแกรม X คือตัวชี้วงแหวนซึ่งเก็บตำแหน่งของค่าใหม่ไปยังบัฟเฟอร์ในการกรองอาร์เรย์ใน SRAM ให้ใช้ขั้นตอนต่อไปนี้ 1 โหลด ZH ที่มีที่อยู่สูงเป็นอันดับแรก ในอาร์เรย์ 2 โหลด ZL ที่มีที่อยู่ต่ำของอิลิเมนต์ตัวแรกในอาร์เรย์ 3 โหลดตัวแปรทีลงทะเบียนกับจํานวนองค์ประกอบในตาราง 4 เรียก mav8 ขั้นตอนต่อไปนี้อธิบายวิธีการจัดเรียงตัวจัดเรียงในการเริ่มต้น AVR 1 ล้าง ตัวชี้ X และ Y ชี้ไปที่ R0 Fill Ring Buffer เริ่มต้น 1 รับเนื้อหา SRAM ที่ Z และเพิ่ม Z 2 เก็บในรีจีสทรีที่ Y และเพิ่ม Y 3 ถ้า Y ไม่ใช่แปดข้ามไปขั้นที่ 2 หาค่าเฉลี่ย 1 ล้างตัวแปร 16 บิตลงทะเบียน AH AL ค่าเฉลี่ย 2 ล้าง YL ชี้ไปที่ R0 3 รับเนื้อหาการลงทะเบียนที่ Y 4 เพิ่มเป็น AH AL 5 ถ้า Y ไม่ใช่แปดขั้นตอน Goto ตัด AH AL 8 เขียนค่าเฉลี่ยย้อนกลับและรับค่าถัดไปบัฟเฟอร์ 1 รับเนื้อหา SRAM ที่ Z 5 ถัดไปค่า buffer 2 Store เพื่อ regist er ที่ X และเพิ่มขึ้น X 3 ล้างห้าบิตสูงสุดของ XL เพื่อให้ชี้ไปที่จุดเริ่มต้นของบัฟเฟอร์ถ้าสิ้นสุดการผ่าน 4 เก็บ AL ที่ Z และ increment Z 5 ลดขนาด tsize 6 ถ้า tsize ไม่ใช่ศูนย์สิ้นสุดของอาร์เรย์คือ ขั้นตอนที่ 5 2 AVR222.3 AVR222 ภาพที่ 2 mav8 แผนภูมิการไหล MAV8 CLEAR X และ YZZ 1 ค่าเฉลี่ยการเติม FILL RING MAVTMP YY 1 YL 8 Y CLEAR AH AL, YL YY 1 AH AL AH AL MAVTMP YL 8 NY AH AL AH AL 8 WRITE BACK AVERAGE และรับค่าต่อไปนี้เป็น RING BUFFER MAVTMP, XX AL, ZZ 1 TSIZE CLEAR X BITS 7,6,5,4,3 TSIZE TSIZE - 1 Y กลับ 3.4 Performance ตารางที่ 1 mav8 การลงทะเบียนการลงทะเบียนการใช้งานการป้อนข้อมูลภายใน R0-R7 หน่วยความจำ R8 mavtmp เก็บชั่วคราว R9 AL เฉลี่ยต่ำไบต์ R10 AH เฉลี่ยสูงไบต์ R16 tsize จำนวนขององค์ประกอบ tsize Loop Counter R26 XL R27 XH R28 YL R29 YH R30 Z ที่อยู่ของ Element แรก ZL R31 Z ที่อยู่ของ Element แรก ZH ตารางที่ 2 mav8 ประสิทธิภาพ รูปที่ 1 รหัสพารามิเตอร์ขนาดคำเวลาดำเนินการรอบค่า 30 กลับ x ขนาด - 7 คืนการลงทะเบียนการใช้งานต่ำลงทะเบียน s สูงรีจิสเตอร์ตัวชี้การขัดจังหวะการใช้งานอุปกรณ์ต่อพ่วงการใช้งานไม่มีไม่มี 11 1 X, Y, Z หมายเหตุ 1 SIZE จำนวนไบต์ที่จะกรองตัวอย่างโปรแกรมทดสอบที่ทำสำเนาข้อมูลแบบสุ่ม 60 ไบต์จากหน่วยความจำโปรแกรมไปยัง SRAM และเรียก mav8 เพื่อกรอง ข้อมูลโปรแกรมทดสอบเหมาะสำหรับการทำงานภายใต้ AVR Studio 4 AVR222.6 สำนักงานใหญ่ Atmel สำนักงานใหญ่ของ บริษัท 2325 Orchard Parkway San Jose, CA โทร. 1 408 FAX 1 408 ยุโรป Atmel Sarl Route des Arsenaux 41 Case Postale 80 CH-1705 Fribourg Switzerland TEL 41 FAX 41 ห้องเอเชีย 1219 Chinachem Golden Plaza 77 ถนน Mody Tsimhatsui East Kowloon Hong Kong โทร. 852 FAX 852 Japan 9F อาคาร Tonetsu Shinkawa Shinkawa Chuo-ku โตเกียวประเทศญี่ปุ่นโทร. 81 FAX 81 Atmel หน่วยปฏิบัติการ 2325 Orchard Parkway San Jose, CA โทร. 1 408 FAX 1 408 ไมโครคอนโทรลเลอร์ 2325 Orchard Parkway San Jose, CA โทร. 1 408 FAX 1 408 La Chantrerie BP Nantes Cedex 3 โทร. 33 FAX 33 ASIC สมาร์ทการ์ดโซน Industrielle Rousset Cedex โทร. 33 FAX 33 Eas T Cheyenne Mtn Blvd Colorado Springs, CO โทร.: 1 719 FAX 1 719 สก็อตแลนด์ Enterprise Park เทคโนโลยี Park Maxwell East Kilbride G75 0QR, Scotland TEL 44 FAX 44 RF ยานยนต์ Theresienstrasse 2 Postfach Heilbronn, เยอรมนี TEL 49 FAX 49 East Cheyenne Mtn Blvd Colorado Springs, CO โทร. 1 719 FAX 1 719 Biometrics Imaging ตัวแปลงความเร็วสูง Hi-Rel MP RF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex ฝรั่งเศส TEL 33 FAX 33 เว็บไซต์ Atmel Corporation Atmel Corporation ไม่มีการรับประกันใด ๆ สำหรับการใช้ผลิตภัณฑ์ของ บริษัท อื่นนอกเหนือจากที่กล่าวมา ระบุไว้อย่างชัดเจนในการรับประกันมาตรฐานของ บริษัท ซึ่งมีรายละเอียดในข้อกำหนดและเงื่อนไขของ Atmel ที่เว็บไซต์ของ บริษัท บริษัท ไม่มีส่วนรับผิดชอบต่อข้อผิดพลาดใด ๆ ที่อาจปรากฏในเอกสารนี้ขอสงวนสิทธิ์ในการเปลี่ยนแปลงอุปกรณ์หรือข้อกำหนดที่ระบุไว้ในเอกสารนี้ที่ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบล่วงหน้าและไม่ได้ให้คำมั่นที่จะปรับปรุงข้อมูลที่มีอยู่ในนี้ไม่มีใบอนุญาตให้สิทธิบัตรหรือทรัพย์สินทางปัญญาอื่น ๆ ของ Atme l ได้รับโดย บริษัท ในส่วนที่เกี่ยวข้องกับการขายผลิตภัณฑ์ Atmel โดยชัดแจ้งหรือโดยนัยผลิตภัณฑ์ของ Atmel ไม่ได้รับอนุญาตให้ใช้เป็นส่วนประกอบที่สำคัญในอุปกรณ์และระบบสนับสนุนชีวิต Atmel, AVR และ AVR Studio เป็นเครื่องหมายการค้าจดทะเบียนของ Atmel Other เงื่อนไขและชื่อผลิตภัณฑ์อาจเป็นเครื่องหมายการค้าของผู้อื่นพิมพ์ลงบนกระดาษรีไซเคิล 0M. AVR222 ตัวกรองเฉลี่ย 8 จุดชนิดมีไมโครคอนโทรลเลอร์ไมโครคอนโทรลเลอร์หรือ MCU คือคอมพิวเตอร์บนชิพเป็นชนิดของไมโครโปรเซสเซอร์ที่ใช้เพื่อดำเนินการ หนึ่งงานในทางตรงกันข้ามกับไมโครโปรเซสเซอร์วัตถุประสงค์ทั่วไปที่ฝังอยู่ในอุปกรณ์อื่นเพื่อควบคุมคุณสมบัติของอุปกรณ์ดังกล่าวจึงตัวควบคุมฝังตัวอะไร AVR เป็นตัวควบคุมแรงดันไฟฟ้าเป็นวงจรอิเล็กทรอนิกส์ที่ใช้ในการรักษาระดับของแรงดันไฟฟ้าในสายไฟฟ้า ช่วยลดแรงดันไฟฟ้า spikes และ brownouts ซึ่งอาจก่อให้เกิดอันตรายต่ออุปกรณ์อิเล็กทรอนิกส์ที่มีความละเอียดสูง AVR หมายถึงตัวควบคุมแรงดันไฟฟ้าโดยอัตโนมัติและมักใช้เพื่ออ้างถึงอุปกรณ์ปลายทาง 8-b แอ็พพลิเคชันไมโครคอนโทรลเลอร์ AVR222 ตัวกรองเฉลี่ย 8 จุด AVR222 ตัวกรองข้อมูลเฉลี่ย 8 จุดเฉลี่ย 31 ตัวกรองข้อมูลย่อยของอาร์เรย์อาร์เรย์ข้อมูลได้ถึง 256 ไบต์การสาธิตโปรแกรม Runable บทนำตัวกรองค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองการตอบสนองแบบ FIR ต่ำสุดแบบ Low Pass FIR ใช้สำหรับกรองข้อมูลที่สุ่มตัวอย่างแอ็พพลิเคชันนี้ใช้ตัวกรอง 8 จุดเพื่อลดความซับซ้อนของค่าเฉลี่ยแอ็ตทริบิวต์ให้การสาธิตที่ยอดเยี่ยมว่าโหมดแอดเดรสที่มีประสิทธิภาพในสถาปัตยกรรม AVR สามารถใช้งานไมโครคอนโทรลเลอร์แบบ 8 บิตได้อย่างไร ตัวกรองเฉลี่ยเคลื่อนที่สามารถจินตนาการเป็นหน้าต่างขนาดบางอย่างในกรณีนี้แปดย้ายตามอาร์เรย์หนึ่งองค์ประกอบในเวลาองค์ประกอบกลางของหน้าต่างในกรณีนี้องค์ประกอบ 4 จะถูกแทนที่ด้วยค่าเฉลี่ยขององค์ประกอบทั้งหมดในหน้าต่างดู รูปที่ 1 อย่างไรก็ตามสิ่งสำคัญคือต้องจดจำค่าขององค์ประกอบใหม่ ๆ และไม่สามารถเปลี่ยนทดแทนได้จนกว่าหน้าต่างจะผ่านพ้นไป เนื่องจากค่าเฉลี่ยทั้งหมดจะขึ้นอยู่กับข้อมูลต้นฉบับในอาร์เรย์รูปที่ 1 หน้าต่างเฉลี่ย 8 จุดหน้าต่างปัจจุบันค่าใหม่ 8 20 เมื่อปลายของอาร์เรย์ถูกกรองและบางส่วนของหน้าต่างอยู่นอกอาร์เรย์ค่าเฉลี่ยต้อง จะทำในองค์ประกอบน้อยกว่าเมื่อหน้าต่างทั้งหมดอยู่ภายในอาร์เรย์การดำเนินการนี้จะสิ้นสุดลงจากอาร์เรย์ที่ไม่มีการกรองเพื่อบันทึกโค้ดสำหรับตัวกรอง 8 จุดหมายความว่าเมื่อองค์ประกอบ n ถูกกรององค์ประกอบ 1, 2, 3 และ n-2, n-1, n ยังคงไม่เปลี่ยนแปลงเมื่อการกรองเสร็จสมบูรณ์สำหรับแอ็พพลิเคชันจำนวนมากนี่ไม่ใช่ปัญหา Rev 1.2 อัลกอริธึมการใช้งานการดำเนินการคำอธิบายแอ็พพลิเคชันกำหนดบัฟเฟอร์วง 8 ไบต์ R0 - R7 ซึ่งเก็บข้อมูลไว้เสมอ ในหน้าต่างค่าเฉลี่ยปัจจุบันตัวกรองจะคำนวณผลรวมของหน้าต่างและคำนวณค่าเฉลี่ยซึ่งจะถูกจัดเก็บไว้ในอาเรย์ตัวชี้สามตัวของ AVR มีการกำหนดฟังก์ชันต่อไปนี้ Z ชี้ไปยังองค์ประกอบอาร์เรย์ที่จะถูกแทนที่จุด Y ภายในวงแหวน bu ffer เมื่อผลรวมของเนื้อหาบัฟเฟอร์ถูกคำนวณในลูปของโปรแกรม X คือตัวชี้วงแหวนซึ่งเก็บตำแหน่งของค่าใหม่ไปยังบัฟเฟอร์ในการกรองอาร์เรย์ใน SRAM ให้ใช้ขั้นตอนต่อไปนี้ 1 โหลด ZH ที่มีที่อยู่สูงของช่องแรก ในอาร์เรย์ 2 โหลด ZL ที่มีที่อยู่ต่ำของอิลิเมนต์ตัวแรกในอาร์เรย์ 3 โหลดตัวแปรทีลงทะเบียนกับจํานวนองค์ประกอบในตาราง 4 เรียก mav8 ขั้นตอนต่อไปนี้อธิบายวิธีการจัดเรียงตัวจัดเรียงในการเริ่มต้น AVR 1 ล้าง ตัวชี้ X และ Y ชี้ไปที่ R0 Fill Ring Buffer เริ่มต้น 1 รับเนื้อหา SRAM ที่ Z และเพิ่ม Z 2 เก็บในรีจีสทรีที่ Y และเพิ่ม Y 3 ถ้า Y ไม่ใช่แปดข้ามไปขั้นที่ 2 หาค่าเฉลี่ย 1 ล้างตัวแปร 16 บิตลงทะเบียน AH AL ค่าเฉลี่ย 2 ล้าง YL ชี้ไปที่ R0 3 รับเนื้อหาการลงทะเบียนที่ Y 4 เพิ่มเป็น AH AL 5 ถ้า Y ไม่ใช่แปดขั้นตอน Goto ตัด AH AL 8 เขียนค่าเฉลี่ยย้อนกลับและรับค่าถัดไปบัฟเฟอร์ 1 รับเนื้อหา SRAM ที่ Z 5 ค่าถัดไป buffer 2 Store เพื่อลงทะเบียน ที่ X และเพิ่มขึ้น X 3 ล้างห้าบิตสูงสุดของ XL เพื่อให้ชี้ไปที่จุดเริ่มต้นของบัฟเฟอร์ถ้าสิ้นสุดการผ่าน 4 เก็บ AL ที่ Z และ increment Z 5 การลดขนาด tsize 6 ถ้าไม่ได้สิ้นสุด tsize เป็นศูนย์ของอาร์เรย์ goto ขั้นตอนที่ 5 2 AVR222.3 AVR222 ภาพที่ 2 mav8 แผนภูมิการไหล MAV8 ล้างข้อมูล X และ YZZ 1 อัตราการเติมเงิน MAVTMP YY 1 YL 8 Y CLEAR AH AL, YL YY 1 AH AL AH AL MAVTMP YL 8 NY AH AL AH AL 8 WRITE กลับคืนมาค่าเฉลี่ยและได้รับค่าต่อไปนี้เป็น RING BUFFER MAVTMP, XX AL, ZZ 1 TSIZE CLEAR X BITS 7,6,5,4,3 TSIZE TSIZE - 1 Y กลับ 3.4 Performance ตารางที่ 1 mav8 Register ลงทะเบียนการใช้งาน Input Internal Output R0-R7 Ring เก็บชั่วคราว R8 mavtmp เก็บชั่วคราว R9 AL เฉลี่ยต่ำไบต์ R10 AH เฉลี่ยสูงไบต์ R16 tsize จำนวนขององค์ประกอบ tsize Loop Counter R26 XL R27 XH R28 YL R29 YH R30 Z ที่อยู่ของ Element แรก ZL R31 Z ที่อยู่ของ First Element ZH ตารางที่ 2 mav8 ตัวเลขประสิทธิภาพ 1 รหัสพารามิเตอร์ขนาดคำเวลาการดำเนินการรอบค่า 30 กลับ x ขนาด - 7 ตัวกลับ Register ลงทะเบียนใช้งานต่ำสุด H รีจีสเตอร์ Pointers Interrupts การใช้งานอุปกรณ์ต่อพ่วงการใช้งานไม่มีไม่มี 11 1 X, Y, Z หมายเหตุ 1 SIZE จำนวนไบต์ที่จะกรองตัวอย่างโปรแกรมทดสอบประกอบด้วยสำเนาข้อมูลขนาด 60 ไบต์จากหน่วยความจำโปรแกรมไปยัง SRAM และเรียก mav8 เพื่อกรอง ข้อมูลโปรแกรมทดสอบเหมาะสำหรับการทำงานภายใต้ AVR Studio 4 AVR222.6 สำนักงานใหญ่ Atmel สำนักงานใหญ่ของ บริษัท 2325 Orchard Parkway San Jose, CA โทร. 1 408 FAX 1 408 ยุโรป Atmel Sarl Route des Arsenaux 41 Case Postale 80 CH-1705 Fribourg Switzerland TEL. 41 FAX 41 เอเชียรูม 1219 Chinachem Golden Plaza 77 Mody ถนน Tsimhatsui East Kowloon Hong Kong โทร. 852 FAX 852 Japan 9F อาคาร Tonetsu Shinkawa Shinkawa Chuo-ku โตเกียวประเทศญี่ปุ่นโทร. 81 FAX 81 Atmel หน่วยปฏิบัติการ 2325 Orchard Parkway San Jose, CA โทร. 1 408 FAX 1 408 ไมโครคอนโทรลเลอร์ 2325 Orchard Parkway San Jose, CA โทร. 1 408 FAX 1 408 La Chantrerie BP Nantes Cedex 3 โทร. 33 FAX 33 ASIC ASSP สมาร์ทการ์ดโซน Industrielle Rousset Cedex โทร. 33 FAX 33 East C Heyenne Mtn Blvd Colorado Springs, CO โทร. 1 719 FAX 1 719 สก็อตแลนด์ Enterprise Park เทคโนโลยี Park Maxwell อาคาร East Kilbride G75 0QR, สกอตแลนด์โทร. 44 FAX 44 RF Automotive Theresienstrasse 2 Postfach Heilbronn, Germany TEL 49 FAX 49 East Cheyenne Mtn Blvd Colorado Springs, CO โทร. 1 719 แฟกซ์ 1 719 Biometrics Imaging ตัวแปลงสัญญาณความเร็วสูง MPU High-Speed RF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex ฝรั่งเศส TEL 33 FAX 33 เว็บไซต์ Atmel Corporation Atmel Corporation ไม่มีการรับประกันใด ๆ สำหรับการใช้ผลิตภัณฑ์ของ บริษัท นอกเหนือจากที่ระบุไว้อย่างชัดแจ้ง ที่มีอยู่ในการรับประกันมาตรฐานของ บริษัท ซึ่งมีรายละเอียดในข้อกำหนดและเงื่อนไขของ Atmel ที่อยู่บนเว็บไซต์ของ บริษัท บริษัท ไม่มีส่วนรับผิดชอบต่อข้อผิดพลาดใด ๆ ที่อาจปรากฏในเอกสารนี้ขอสงวนสิทธิ์ในการเปลี่ยนแปลงอุปกรณ์หรือข้อกำหนดที่ระบุไว้ในเอกสารฉบับนี้ที่ใดก็ได้ เวลาโดยไม่ต้องแจ้งให้ทราบล่วงหน้าและไม่ได้ทำให้ความมุ่งมั่นใด ๆ ที่จะปรับปรุงข้อมูลที่มีอยู่นี้ไม่มีใบอนุญาตให้สิทธิบัตรหรือทรัพย์สินทางปัญญาอื่น ๆ ของ Atmel a ที่ได้รับจาก บริษัท ในด้านการขายผลิตภัณฑ์ของ Atmel โดยชัดแจ้งหรือโดยนัยผลิตภัณฑ์ของ Atmel ไม่ได้รับอนุญาตให้ใช้เป็นส่วนประกอบที่สำคัญในอุปกรณ์และระบบสนับสนุนชีวิต Atmel, AVR และ AVR Studio เป็นเครื่องหมายการค้าจดทะเบียนของ Atmel ข้อกำหนดอื่น ๆ และชื่อผลิตภัณฑ์อาจเป็นเครื่องหมายการค้าของผู้อื่นพิมพ์บนกระดาษรีไซเคิล 0M
No comments:
Post a Comment