Avr222 8 Punkt Gleit Durchschnitt Filter


8-Bit-Mikrocontroller. Anwendungshinweis. AVR222: 8-Punkt Moving Average Filter Transkription 1 AVR222: 8-Punkt Moving Average Filter Features 31-Wort Subroutine Filter Daten Arrays bis zu 256 Bytes Runable Demo Programm Einleitung Der gleitende durchschnittliche Filter ist ein einfacher Low Pass FIR (Finite Impulse Response) Filter Üblicherweise zum Glätten eines Arrays von abgetasteten Daten verwendet. Diese Anwendung implementiert einen 8-Punkt-Filter, um die durchschnittliche Berechnung zu vereinfachen. Die Applikationsnotiz vermittelt eine hervorragende Darstellung, wie die leistungsfähigen Adressierungsmodi in der AVR-Architektur genutzt werden können. 8-Bit-Mikrocontroller-Applikation Hinweis Theorie Der gleitende Mittelwertfilter kann sich als Fenster einer bestimmten Größe (in diesem Fall acht) vorstellen, die sich entlang des Arrays bewegt, ein Element zu einem Zeitpunkt. Das mittlere Element des Fensters (in diesem Fall Element 4) wird durch den Mittelwert aller Elemente im Fenster ersetzt. Siehe Abbildung 1. Allerdings ist es wichtig, sich an den Wert der neuen Elemente zu erinnern und nicht den Ersatz zu machen, bis das Fenster verstrichen ist. Dies muss erfolgen, da alle Mittelwerte auf den ursprünglichen Daten im Array basieren. Abbildung 1: Das 8-Punkt-Mittelungsfenster CURRENT WINDOW NEW VALUE () 8 20 Wenn die Enden des Arrays gefiltert sind und Teile des Fensters außerhalb des Arrays liegen, muss die Mittelung auf weniger Elementen erfolgen, als wenn das gesamte Fenster innen ist Das Array Diese Implementierung lässt die Enden des Arrays ungefiltert, um Code zu speichern. Bei einem 8-Punkt-Filter bedeutet dies, dass bei der Filterung von Elementen die Elemente 1, 2, 3 und n-3, n-2, n-1, n unverändert bleiben, wenn die Filterung abgeschlossen ist. Für viele Anwendungen ist das kein Problem. Rev. 1 2 Implementierungsverwendungsalgorithmus Beschreibung Die Applikation definiert einen 8-Byte-Ringpuffer (R0 - R7), der immer die Daten im aktuellen Mittelungsfenster enthält. Die Filterroutine berechnet die Summe des Fensters und berechnet den Mittelwert, der im Array gespeichert ist. Den AVRs drei Zeigern sind folgende Funktionen zugeordnet: Z zeigt auf das zu ersetzende Arrayelement. Y-Punkte innerhalb des Ringpuffers, wenn die Summe des Pufferinhalts in einer Programmschleife berechnet wird. X ist der Ringzeiger, der die Position der neuen Werte an den Puffer hält. Um ein Array im SRAM zu filtern, gehen Sie wie folgt vor: 1. Laden Sie ZH mit der hohen Adresse des ersten Elements im Array. 2. Laden Sie ZL mit der niedrigen Adresse des ersten Elements im Array. 3. Laden Sie die Registervariable tsize mit der Anzahl der Elemente in der Tabelle. 4. rufen Sie mav8 an. Das folgende Verfahren beschreibt, wie der Sortierer auf dem AVR implementiert ist: Initialisierung 1. Löschen Sie die X - und Y-Zeiger (zeigen Sie auf R0). Füllen Sie den Ringpuffer zuerst: 1. Holen Sie sich den SRAM-Inhalt in Z und erhöhen Sie Z. 2. Speichern Sie im Register bei Y und erhöhen Sie Y. 3. Wenn Y nicht acht, erhalten Sie Schritt 2. Finde Durchschnitt 1. Löschen Sie die 16-Bit-Registervariable AH: AL (Mittelwert). 2. YL löschen (Punkt auf R0). 3. Holen Sie sich den Registerinhalt bei Y. 4. Add to AH: AL. 5. Wenn Y nicht acht ist, geh Schritt Step teilen AH: AL durch 8. Schreiben Sie zurück Durchschnitt und erhalten Sie Next Value to Puffer 1. Holen Sie sich SRAM Inhalt bei Z5 (Next value to buffer). 2. Speichern Sie, um bei X zu registrieren und X zu erhöhen. 3. Löschen Sie die höchsten fünf Bits von XL, um es auf den Anfang des Puffers zu zeigen, wenn das Ende übergeben wird. 4. Speichern Sie AL bei Z und erhöhen Sie Z. 5. Dekrement tsize. 6. Wenn tsize nicht Null ist (Ende des Arrays ist erreicht) goto Step 5. 2 AVR222 3 AVR222 Abbildung 2. mav8 Flußdiagramm MAV8 CLEAR X UND YZZ 1 BERECHNUNG DURCHSCHNITT FÜLLEN 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 SCHREIBEN SIE ZURÜCK DURCHSCHNITT UND ERHALTEN NÄCHSTER WERT ZUM RING BUFFER MAVTMP, XX AL, ZZ 1 TSIZE CLEAR X BITS 7,6,5,4,3 TSIZE TSIZE - 1 Y Rücklauf 3 4 Leistungstabelle 1. mav8 Register Benutzung Register Eingang Interner Ausgang R0-R7 Ringpuffer R8 mavtmp Temporärer Speicher R9 AL Durchschnitt Niedrig Byte R10 AH Durchschnittlich High Byte R16 Tsize Anzahl der Elemente tsize Schleifenzähler R26 XL R27 XH R28 YL R29 YH R30 Z Adresse des ersten Elements ZL R31 Z Adresse des ersten Elements ZH Tabelle 2. mav8 Leistungsdaten (1) Parameter Code Größe (Worte) Ausführungszeit (Zyklen) Wert 30 Rückkehr x (SIZE - 7) zurück Register Verwendung niedrig Registers Hochregister Zeiger Interrupts Verwendung Peripherie Verwendung Keine Keine: 11: 1: X, Y, Z Hinweis: 1. SIZE Anzahl der Bytes zum Filtern TestExample Programm avr222.asm enthält ein Testprogramm, das 60 Bytes zufälliger Daten aus dem Programmspeicher kopiert Zu SRAM und ruft mav8 an, um die Daten zu filtern. Das Testprogramm eignet sich hervorragend zum Laufen unter dem AVR Studio. 4 AVR222 6 Atmel Hauptquartier Hauptsitz 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) Europa Atmel Sarl Route des Arsenaux 41 Fall Postale 80 CH-1705 Freiburg Schweiz TEL (41) FAX (41) Asien Raum 1219 Chinachem Golden Plaza 77 Mody Road Tsimhatsui Ostkowloon Hongkong TEL (852) FAX (852) Japan 9F, Tonetsu Shinkawa Bldg Shinkawa Chuo-ku, Tokyo Japan TEL (81) FAX (81) Atmel Operations Speicher 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) FAX 1 (408) FAX 1 (408) FAX 1 (408) La Chantrerie BP Nantes Cedex 3, Frankreich TEL (33) FAX (33) ASICASSPSmart Karten Zone Industrielle Rousset Cedex , Frankreich TEL (33) FAX (33) East Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) Schottischer Unternehmen Technologiepark Maxwell Gebäude Ost Kilbride G75 0QR, Schottland TEL (44) FAX (44) RFAutomotive Theresienstrasse 2 Postfach Heilbronn, Deutschland TEL (49) FAX (49) Ost Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) BiometricsImagingHi-Rel MPU Hochgeschwindigkeits-WandlerRF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex, Frankreich TEL (33) FAX (33) Webseite Atmel Corporation Atmel Corporation übernimmt keine Gewährleistung Die Verwendung ihrer Produkte, mit Ausnahme derjenigen, die ausdrücklich in der Gewährleistung des Unternehmens enthalten sind, die in den Allgemeinen Geschäftsbedingungen von Atmel auf der Internetseite der Gesellschaft aufgeführt ist. Die Gesellschaft übernimmt keinerlei Verantwortung für Fehler, die in diesem Dokument auftreten können, behält sich das Recht vor, die hierin enthaltenen Geräte oder Spezifikationen jederzeit ohne vorherige Ankündigung zu ändern und verpflichtet sich nicht, die hierin enthaltenen Informationen zu aktualisieren. Keine Lizenzen an Patenten oder sonstigem geistigem Eigentum von Atmel werden von der Gesellschaft im Zusammenhang mit dem Verkauf von Atmel-Produkten ausdrücklich oder implizit gewährt. Atmel s Produkte sind nicht für den Einsatz als kritische Komponenten in lebenserhaltenden Geräten oder Systemen zugelassen. ATMEL, AVR und AVR Studio sind die eingetragenen Warenzeichen von Atmel. Andere Begriffe und Produktnamen können die Marken von anderen sein. Gedruckt auf Recyclingpapier. 0MAVR222: 8-Punkt gleitender Mittelfilter Was ist ein Mikrocontroller Ein Mikrocontroller oder MCU ist ein Computer-on-a-Chip. Es ist eine Art von Mikroprozessor gewidmet, um eine Aufgabe (im Gegensatz zu Allzweck-Mikroprozessor), eingebettet in ein anderes Gerät, um die Funktionen dieses Gerätes so den Namen Embedded Controller zu steuern. Was ist ein AVR Ein Spannungsregler ist eine elektronische Schaltung, die verwendet wird, um eine Pegelspannung in einer elektrischen Leitung zu halten. Es eliminiert Stromstöße, Spikes und Brownouts, die empfindliche Elektronik schädigen können. AVR steht für automatischen Spannungsregler und wird häufig verwendet, um auf Endbenutzerausrüstung zu verweisen.8-Bit Mikrocontroller. Anwendungshinweis. AVR222: 8-Punkt Moving Average Filter Transkription 1 AVR222: 8-Punkt Moving Average Filter Features 31-Wort Subroutine Filter Daten Arrays bis zu 256 Bytes Runable Demo Programm Einleitung Der gleitende durchschnittliche Filter ist ein einfacher Low Pass FIR (Finite Impulse Response) Filter Üblicherweise zum Glätten eines Arrays von abgetasteten Daten verwendet. Diese Anwendung implementiert einen 8-Punkt-Filter, um die durchschnittliche Berechnung zu vereinfachen. Die Applikationsnotiz vermittelt eine hervorragende Darstellung, wie die leistungsfähigen Adressierungsmodi in der AVR-Architektur genutzt werden können. 8-Bit-Mikrocontroller-Applikation Hinweis Theorie Der gleitende Mittelwertfilter kann sich als Fenster einer bestimmten Größe (in diesem Fall acht) vorstellen, die sich entlang des Arrays bewegt, ein Element zu einem Zeitpunkt. Das mittlere Element des Fensters (in diesem Fall Element 4) wird durch den Mittelwert aller Elemente im Fenster ersetzt. Siehe Abbildung 1. Allerdings ist es wichtig, sich an den Wert der neuen Elemente zu erinnern und nicht den Ersatz zu machen, bis das Fenster verstrichen ist. Dies muss erfolgen, da alle Mittelwerte auf den ursprünglichen Daten im Array basieren. Abbildung 1: Das 8-Punkt-Mittelungsfenster CURRENT WINDOW NEW VALUE () 8 20 Wenn die Enden des Arrays gefiltert sind und Teile des Fensters außerhalb des Arrays liegen, muss die Mittelung auf weniger Elementen erfolgen, als wenn das gesamte Fenster innen ist Das Array Diese Implementierung lässt die Enden des Arrays ungefiltert, um Code zu speichern. Bei einem 8-Punkt-Filter bedeutet dies, dass bei der Filterung von Elementen die Elemente 1, 2, 3 und n-3, n-2, n-1, n unverändert bleiben, wenn die Filterung abgeschlossen ist. Für viele Anwendungen ist das kein Problem. Rev. 1 2 Implementierungsverwendungsalgorithmus Beschreibung Die Applikation definiert einen 8-Byte-Ringpuffer (R0 - R7), der immer die Daten im aktuellen Mittelungsfenster enthält. Die Filterroutine berechnet die Summe des Fensters und berechnet den Mittelwert, der im Array gespeichert ist. Den AVRs drei Zeigern sind folgende Funktionen zugeordnet: Z zeigt auf das zu ersetzende Arrayelement. Y-Punkte innerhalb des Ringpuffers, wenn die Summe des Pufferinhalts in einer Programmschleife berechnet wird. X ist der Ringzeiger, der die Position der neuen Werte an den Puffer hält. Um ein Array im SRAM zu filtern, gehen Sie wie folgt vor: 1. Laden Sie ZH mit der hohen Adresse des ersten Elements im Array. 2. Laden Sie ZL mit der niedrigen Adresse des ersten Elements im Array. 3. Laden Sie die Registervariable tsize mit der Anzahl der Elemente in der Tabelle. 4. rufen Sie mav8 an. Das folgende Verfahren beschreibt, wie der Sortierer auf dem AVR implementiert ist: Initialisierung 1. Löschen Sie die X - und Y-Zeiger (zeigen Sie auf R0). Füllen Sie den Ringpuffer zuerst: 1. Holen Sie sich den SRAM-Inhalt in Z und erhöhen Sie Z. 2. Speichern Sie im Register bei Y und erhöhen Sie Y. 3. Wenn Y nicht acht, erhalten Sie Schritt 2. Finde Durchschnitt 1. Löschen Sie die 16-Bit-Registervariable AH: AL (Mittelwert). 2. YL löschen (Punkt auf R0). 3. Holen Sie sich den Registerinhalt bei Y. 4. Add to AH: AL. 5. Wenn Y nicht acht ist, geh Schritt Step teilen AH: AL durch 8. Schreiben Sie zurück Durchschnitt und erhalten Sie Next Value to Puffer 1. Holen Sie sich SRAM Inhalt bei Z5 (Next value to buffer). 2. Speichern Sie, um bei X zu registrieren und X zu erhöhen. 3. Löschen Sie die höchsten fünf Bits von XL, um es auf den Anfang des Puffers zu zeigen, wenn das Ende übergeben wird. 4. Speichern Sie AL bei Z und erhöhen Sie Z. 5. Dekrement tsize. 6. Wenn tsize nicht Null ist (Ende des Arrays ist erreicht) goto Step 5. 2 AVR222 3 AVR222 Abbildung 2. mav8 Flußdiagramm MAV8 CLEAR X UND YZZ 1 BERECHNUNG DURCHSCHNITT FÜLLEN 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 SCHREIBEN SIE ZURÜCK DURCHSCHNITT UND ERHALTEN NÄCHSTER WERT ZUM RING BUFFER MAVTMP, XX AL, ZZ 1 TSIZE CLEAR X BITS 7,6,5,4,3 TSIZE TSIZE - 1 Y Rücklauf 3 4 Leistungstabelle 1. mav8 Register Benutzung Register Eingang Interner Ausgang R0-R7 Ringpuffer R8 mavtmp Temporärer Speicher R9 AL Durchschnitt Niedrig Byte R10 AH Durchschnittlich High Byte R16 Tsize Anzahl der Elemente tsize Schleifenzähler R26 XL R27 XH R28 YL R29 YH R30 Z Adresse des ersten Elements ZL R31 Z Adresse des ersten Elements ZH Tabelle 2. mav8 Leistungsdaten (1) Parameter Code Größe (Worte) Ausführungszeit (Zyklen) Wert 30 Rückkehr x (SIZE - 7) zurück Register Verwendung niedrig Registers Hochregister Zeiger Interrupts Verwendung Peripherie Verwendung Keine Keine: 11: 1: X, Y, Z Hinweis: 1. SIZE Anzahl der Bytes zum Filtern TestExample Programm avr222.asm enthält ein Testprogramm, das 60 Bytes zufälliger Daten aus dem Programmspeicher kopiert Zu SRAM und ruft mav8 an, um die Daten zu filtern. Das Testprogramm eignet sich hervorragend zum Laufen unter dem AVR Studio. 4 AVR222 6 Atmel Hauptquartier Hauptsitz 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) Europa Atmel Sarl Route des Arsenaux 41 Fall Postale 80 CH-1705 Freiburg Schweiz TEL (41) FAX (41) Asien Zimmer 1219 Chinachem Golden Plaza 77 Mody Road Tsimhatsui Ostkowloon Hongkong TEL (852) FAX (852) Japan 9F, Tonetsu Shinkawa Bldg Shinkawa Chuo-ku, Tokyo Japan TEL (81) FAX (81) Atmel Operations Speicher 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) FAX 1 (408) FAX 1 (408) FAX 1 (408) La Chantrerie BP Nantes Cedex 3, Frankreich TEL (33) FAX (33) ASICASSPSmart Karten Zone Industrielle Rousset Cedex , Frankreich TEL (33) FAX (33) East Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) Schottischer Unternehmen Technologiepark Maxwell Gebäude Ost Kilbride G75 0QR, Schottland TEL (44) FAX (44) RFAutomotive Theresienstrasse 2 Postfach Heilbronn, Deutschland TEL (49) FAX (49) Ost Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) BiometricsImagingHi-Rel MPU Hochgeschwindigkeits-WandlerRF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex, Frankreich TEL (33) FAX (33) Webseite Atmel Corporation Atmel Corporation übernimmt keine Gewährleistung Die Verwendung ihrer Produkte, mit Ausnahme derjenigen, die ausdrücklich in der Gewährleistung des Unternehmens enthalten sind, die in den Allgemeinen Geschäftsbedingungen von Atmel auf der Internetseite der Gesellschaft aufgeführt ist. Die Gesellschaft übernimmt keinerlei Verantwortung für Fehler, die in diesem Dokument auftreten können, behält sich das Recht vor, die hierin enthaltenen Geräte oder Spezifikationen jederzeit ohne vorherige Ankündigung zu ändern und verpflichtet sich nicht, die hierin enthaltenen Informationen zu aktualisieren. Keine Lizenzen an Patenten oder sonstigem geistigem Eigentum von Atmel werden von der Gesellschaft im Zusammenhang mit dem Verkauf von Atmel-Produkten ausdrücklich oder implizit gewährt. Atmel s Produkte sind nicht für den Einsatz als kritische Komponenten in lebenserhaltenden Geräten oder Systemen zugelassen. ATMEL, AVR und AVR Studio sind die eingetragenen Warenzeichen von Atmel. Andere Begriffe und Produktnamen können die Marken von anderen sein. Gedruckt auf Recyclingpapier. 0M

Comments

Popular posts from this blog

Forex Nfa Regulierung

Binär Optionen Handelssystem Omni11

Forex Profit 400 Wochen