8-Bit-Mikrocontroller-Applikation Hinweis AVR222 8-Punkt Moving Average Filter.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 Antwortfilter, der häufig zum Glätten eines Arrays von abgetasteten Daten verwendet wird Diese Anwendung implementiert einen 8-Punkt-Filter, um die durchschnittliche Berechnung zu vereinfachen. Der Anwendungshinweis gibt eine hervorragende Demonstration, wie die leistungsfähigen Adressierungsmodi in der AVR-Architektur verwendet werden können. 8-Bit-Mikrocontroller-Anwendungshinweis Theorie Der gleitende Durchschnittsfilter kann als ein Fenster einer bestimmten Größe vorgestellt werden, in diesem Fall acht, das sich entlang des Arrays bewegt, ein Element zu einem Zeitpunkt Das mittlere Element des Fensters in diesem Fall Element 4 wird durch den Durchschnitt aller Elemente in der Fenster 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 vergangen ist. Dies muss erfolgen, da alle Mittelwerte auf den Originaldaten im Array basieren. Abbildung 1 Die 8-Punkt-Mittelung Fenster 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 innerhalb des Arrays liegt. Diese Implementierung lässt die Enden des Arrays Ungefiltert zum Speichern von Code Für einen 8-Punkt-Filter bedeutet dies, dass bei der Filterung von Elementen 1, 2, 3 und n-3 n-2, n-1, n unverändert bleiben, wenn die Filterung abgeschlossen ist. Für viele Anwendungen , Das ist kein Problem Rev 1.2 Implementation Usage Algorithmus Beschreibung Die Applikation definiert einen 8-Byte-Ringpuffer R0-R7, der immer die Daten im aktuellen Mittelungsfenster hält. Die Filterroutine berechnet die Summe des Fensters und berechnet den Mittelwert, der gespeichert wird Zurück in das Array Die AVR s drei Zeiger sind die folgenden Funktionen zugeordnet Z Punkte auf das zu ersetzende Arrayelement Y Punkte innerhalb des Ringpuffers, wenn die Summe der Pufferinhalte in einer Programmschleife berechnet wird, X der Ringzeiger ist, der die Position der neuen Werte zum Puffer Um ein Array im SRAM zu filtern, verwenden Sie folgende Vorgehensweise 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 das Register Variable tsize mit der Anzahl der Elemente in der Tabelle 4 Aufruf mav8 Das folgende Verfahren beschreibt, wie der Sortierer auf der AVR implementiert wird Initialisierung 1 Löschen der X - und Y-Zeiger auf R0 füllen Ringpuffer Anfang 1 Erfahre den SRAM-Inhalt bei Z und inkrement Z 2 Im Register bei Y speichern und inkrementieren Y 3 Wenn Y nicht acht, geht zu Schritt 2 Finde Durchschnitt 1 Löschen Sie die 16-Bit-Registervariable AH AL Mittelwert 2 Löschen Sie YL-Punkt zu R0 3 Holen Sie sich den Registerinhalt bei Y 4 Add to AH AL 5 Wenn Y nicht acht, bekommst Schritt Divide AH AL von 8 Schreiben Sie zurück Durchschnitt und erhalten Sie Next Value to Puffer 1 Holen Sie sich SRAM Inhalt bei Z 5 Nächster Wert zu Puffer 2 Speichern, um bei X registrieren und inkrementieren X 3 Löschen Sie die höchsten fünf Bits von XL Um es auf den Start des Puffers zu stellen, wenn das Ende bestanden wird 4 Speicher AL bei Z und Inkrement Z 5 Dekrement tsize 6 Wenn tsize nicht null ist, wird das Ende des Arrays erreicht. Schritt 5 2 AVR222.3 AVR222 Abbildung 2 mav8 Flow Chart MAV8 CLEAR X UND YZZ 1 BERECHNUNG DURCHSCHNITT FÜHREN 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 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 Performance Tabelle 1 mav8 Register Benutzung Register Eingang Interner Ausgang R0-R7 Ringpuffer R8 mavtmp Temporärer Speicher R9 AL Durchschnitt Niedrig Byte R10 AH Durchschnitt High Byte R16 tsize Anzahl der Elemente tsize Loop Zä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 Wörter Ausführungszeit Zyklen Wert 30 return x SIZE - 7 return Register Usage Low Registers High Registers Zeiger Interrupts Verwendung Peripherie Verwendung Keine Keine 11 1 X, Y, Z Hinweis 1 SIZE Anzahl der Bytes zum Filtern Test Beispiel Programm enthält ein Testprogramm, das 60 Bytes zufälliger Daten aus dem Programmspeicher kopiert SRAM und ruft mav8 an, um die Daten zu filtern Das Testprogramm eignet sich hervorragend für den Betrieb unter dem AVR Studio 4 AVR222.6 Atmel Headquarters Corporate Headquarters 2325 Orchard Parkway San Jose, CA TEL 1 408 FAX 1 408 Europa Atmel Sarl Route des Arsenaux 41 Case Postale 80 CH-1705 Freiburg Schweiz TEL 41 FAX 41 Asien Raum 1219 Chinachem Golden Plaza 77 Mody Straße Tsimhatsui Ost Kowloon Hong Kong TEL 852 FAX 852 Japan 9F, Tonetsu Shinkawa Bldg Shinkawa Chuo-ku, Tokio Japan TEL 81 FAX 81 Atmel Operations Speicher 2325 Obstgarten Parkway San Jose, CA TEL 1 408 FAX 1 408 Mikrocontroller 2325 Orchard Parkway San Jose, CA TEL 1 408 FAX 1 408 La Chantrerie BP Nantes Cedex 3, Frankreich TEL 33 FAX 33 ASIC ASSP Smart Karten Zone Industrielle Rousset Cedex, Frankreich TEL 33 FAX 33 East Cheyenne Mtn Blvd Colorado Springs, CO TEL 1 719 FAX 1 719 Scottish Enterprise Technologiepark Maxwell Gebäude East Kilbride G75 0QR, Schottland TEL 44 FAX 44 RF Automotive Theresienstrasse 2 Postfach Heilbronn, Deutschland TEL 49 FAX 49 East Cheyenne Mtn Blvd Colorado Springs, CO TEL 1 719 FAX 1 719 Biometrie Imaging Hi-Rel MPU Hochgeschwindigkeits-Wandler RF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex, Frankreich TEL 33 FAX 33 Website Atmel Corporation Atmel Corporation übernimmt keine Gewähr für die Verwendung seiner Produkte, außer 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 keine Verantwortung für Fehler, die in diesem Dokument auftreten können, behält sich das Recht vor, die hier beschriebenen Daten oder Spezifikationen zu ändern Jederzeit ohne vorherige Ankündigung und verpflichtet sich nicht, die hierin enthaltenen Informationen zu aktualisieren. Keine Genehmigung für Patente oder sonstiges geistiges Eigentum von Atmel wird von der Gesellschaft im Zusammenhang mit dem Verkauf von Atmel-Produkten gewährt, ausdrücklich oder implizit Atmel s Produkte Nicht autorisiert für den Einsatz als kritische Komponenten in lebensunterstützenden Geräten oder Systemen 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. AVR222 8-Punkt-Gleitender Durchschnittfilter. 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 zu steuern Name Embedded Controller. Was ist ein AVR Ein Spannungsregler ist ein elektronischer Schaltkreis verwendet, um eine maximale Spannung in einer elektrischen Leitung zu halten Es eliminiert Stromstöße, Spikes und Brownouts, die Schäden an empfindlichen Elektronik verursachen können AVR steht für automatische Spannungsregler und Wird häufig verwendet, um auf Endbenutzerausrüstung zu verweisen.8-Bit-Mikrocontroller-Anwendung Anmerkung AVR222 8-Punkt Moving Average Filter.1 AVR222 8-Punkt Moving Average Filter Features 31-Wort Subroutine Filter Daten Arrays bis zu 256 Bytes Runable Demo Programm Einleitung Die Gleitender durchschnittlicher Filter ist ein einfacher Low-Pass-FIR-Finite-Impuls-Response-Filter, der üblicherweise zum Glätten eines Arrays von abgetasteten Daten verwendet wird. Diese Anwendung implementiert einen 8-Punkt-Filter, um die durchschnittliche Berechnung zu vereinfachen. Der Anwendungshinweis gibt eine hervorragende Demonstration, wie die leistungsfähigen Adressierungsmodi im AVR-Architektur kann verwendet werden 8-Bit-Mikrocontroller-Anwendung Hinweis Theorie Die gleitenden durchschnittlichen Filter kann als ein Fenster von einer bestimmten Größe in diesem Fall acht bewegt sich entlang der Array, ein Element zu einem Zeitpunkt Das mittlere Element des Fensters in diesem Fall Element vorgestellt werden 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 vergangen ist. Dies muss erfolgen, da alle Mittelwerte auf dem Original basieren Daten im Array 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 ist Innerhalb des Arrays Diese Implementierung lässt die Enden des Arrays ungefiltert, um den Code zu speichern. Für ein 8-Punkt-Filter bedeutet dies, dass, wenn n Elemente gefiltert werden, Elemente 1, 2, 3 und n-3, n-2, n-1 , N bleibt unverändert, wenn die Filterung abgeschlossen ist Für viele Anwendungen ist dies kein Problem Rev 1.2 Implementierung Usage Algorithmus Beschreibung Die Applikation definiert einen 8-Byte-Ringpuffer R0-R7, der immer die Daten im aktuellen Mittelungsfenster hält. Die Filterroutine berechnet die Summe Des Fensters und berechnet den Mittelwert, der im Array gespeichert ist. Den AVRs drei Zeigern sind die folgenden Funktionen zugeordnet Z Punkte auf das zu ersetzende Arrayelement Y Punkte im Ringpuffer, wenn die Summe der Pufferinhalte berechnet wird Eine Programmschleife X ist der Ringzeiger, der die Position der neuen Werte an den Puffer hält Um ein Array im SRAM zu filtern, verwenden Sie die folgende Prozedur 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 der Registervariablen tsize mit der Anzahl der Elemente in der Tabelle 4 Aufruf mav8 Das folgende Verfahren beschreibt, wie der Sortierer auf der AVR implementiert wird Initialisierung 1 Löschen Sie die X - und Y-Zeiger auf R0 Füllen Sie den Ringpuffer Zuerst 1 Den SRAM-Inhalt bei Z erhalten und inkrementieren Z 2 im Register bei Y speichern und inkrementieren Y 3 Wenn Y nicht acht, in Schritt 2 Finde Durchschnitt 1 Löschen Sie die 16-Bit-Registervariable AH AL Mittelwert 2 Löschen Sie den YL-Punkt auf R0 3 Holen Sie sich den Registerinhalt bei Y 4 Hinzufügen zu AH AL 5 Wenn Y nicht acht, goto Step Divide AH AL von 8 Schreiben Sie zurück Durchschnitt und erhalten Sie Next Value to Puffer 1 Holen Sie sich SRAM Inhalt bei Z 5 Nächster Wert zu Puffer 2 Speichern Sie bei X registrieren Und inkrementieren X 3 Löschen Sie die höchsten fünf Bits von XL, um es auf den Anfang des Puffers zu zeigen, wenn das Ende überschritten wird 4 Speichern Sie AL bei Z und erhöhen Sie Z 5 Dekrement tsize 6 Wenn tsize nicht null ist, wird das Array endet 5 2 AVR222.3 AVR222 Abbildung 2 mav8 Strömungsdiagramm MAV8 CLEAR X UND YZZ 1 BERECHNUNG DURCHSCHNITT FÜLL 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 Performance Tabelle 1 mav8 Register Benutzung Register Eingang Interner Ausgang R0-R7 Ringpuffer R8 Mavtmp Temporäre Speicherung 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 Wörter Ausführungszeit Zyklen Wert 30 Rückkehr x SIZE - 7 Rückmeldung Register Verwendung Niedrige Register Hohe Register Zeiger Interrupts Verwendung Peripherie Verwendung Keine Keine 11 1 X, Y, Z Anmerkung 1 GRÖSSE Anzahl der Bytes zum Filter Test Beispiel Programm enthält ein Testprogramm, das Kopiert 60 Bytes zufälliger Daten aus dem Programmspeicher in SRAM und ruft mav8 an, um die Daten zu filtern Das Testprogramm eignet sich gut für den Betrieb unter dem AVR Studio 4 AVR222.6 Atmel Headquarters Corporate Headquarters 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 Straße Tsimhatsui Ost Kowloon Hong Kong TEL 852 FAX 852 Japan 9F, Tonetsu Shinkawa Bldg Shinkawa Chuo-ku, Tokio Japan TEL 81 FAX 81 Atmel Operations Speicher 2325 Orchard Parkway San Jose, CA TEL 1 408 FAX 1 408 Mikrocontroller 2325 Orchard Parkway San Jose, CA TEL 1 408 FAX 1 408 La Chantrerie BP Nantes Cedex 3, Frankreich TEL 33 FAX 33 ASIC ASSP Smart Karten Zone Industrielle Rousset Cedex, Frankreich TEL 33 FAX 33 East Cheyenne Mtn Blvd Colorado Springs, CO TEL 1 719 FAX 1 719 Scottish Enterprise Technologiepark Maxwell Gebäude East Kilbride G75 0QR, Schottland TEL 44 FAX 44 RF Automotive Theresienstrasse 2 Postfach Heilbronn, Deutschland TEL 49 FAX 49 East Cheyenne Mtn Blvd Colorado Springs, CO TEL 1 719 FAX 1 719 Biometrie Imaging Hi-Rel MPU Hochgeschwindigkeits-Wandler RF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex, Frankreich TEL 33 FAX 33 Web-Site Atmel Corporation Atmel Corporation macht Keine Gewährleistung für die Verwendung seiner 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 keine 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 Lizenz für Patente oder sonstiges geistiges Eigentum von Atmel wird von der Gesellschaft im Zusammenhang mit dem Verkauf von Atmel Produkte, ausdrücklich oder implizit Atmel s Produkte sind nicht zur Verwendung 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.
Der Unterschied zwischen Optionen und Futures Seine herausfordernde genug, um die meisten gewöhnlichen Investoren zu bekommen, um ihr Geld in 401 (k) s zu kaufen, um einzelne Aktien zu kaufen. Nicht nur die Preise der letzteren schwanken mehr, sondern die Investition in einzelne Bestände bedeutet, sich von der kollektiven Weisheit und Bewegungen des Marktes zu entkoppeln. Wenn du 5 in einem Investmentfonds verlierst, hey, thems die Pausen. Lose 40 auf einem Lager, und itll stellen Sie Ihre Entscheidung, die Aktie in den ersten Platz zu kaufen, dann verkaufen in einer Panik, dann schäbig kaufen in einen Investmentfonds mit was übrig ist. Aber Millionen von Menschen investieren in einzelne Aktien erfolgreich und nehmen sich die Zeit, um die Abschlüsse zu durchsuchen. Wert erkennen und dann geduldig sein Für diejenigen, die in der Tat verstehen, wie man in Aktien den richtigen Weg zu investieren, ist es nur natürlich, mehr zu lernen. Und von Hebelwirkung zu profitieren. Wie üblich ist der...
Comments
Post a Comment