dekadischer Zähler - Wobbelgenerator - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: dekadischer Zähler - Wobbelgenerator (/Thread-dekadischer-Zaehler-Wobbelgenerator) Seiten: 1 2 |
dekadischer Zähler - Wobbelgenerator - Blacky27 - 15.09.2010 20:08 Hallo, ich bin neu hier im Forum und bin mir nicht sicher ob meine Frage hier richtig ist. An der Schule arbeiten wir seit einem halben Jahr mit LabView und sind gerade dabei einen Wobbelgenerator zu programmieren. Für Profis wahrscheinlich "nicht der Rede Wert", für uns ist das alles Neuland. Er soll von einer Startfrequenz (0,1Hz, bzw. 1Hz) bis 1, bzw. 10 Zählen, anschließend in 1er Schritten bis 10, bzw. 10er Schritten bis 100 und so weiter, bis er 1000 erreicht hat. Also ein dekadischer Zähler. Ist sicherlich keine große Aufgabe, aber ohne großartige Kenntnisse in LabView doch etwas schwieriger. Unser Dozent hat uns folgenden Tipp gegeben: Innerhalb einer WHILE-Schleife muss sich eine FOR-Schleife befinden. Mmmmhhhhh..... Na toll!!! Ich bin mittlerweile soweit, dass ich die Frequenz in der FOR-Schleife 10 Schritte zählen kann. Von 0,1 bis 1 und von 1 bis 10. Nun müsste ich aber von 1 bis 10 in 1er Schritten weiterzählen, bzw. von 10 bis 100 in 10er Schritten. Da kommt jetzt mein Problem. Wie schaffe ich es, dass sich die "Zählschritte" um eine Dekade erhöhen? Wäre schön, wenn mir jemand helfen könnte. Wenn möglich in "einfachen" Schritten. MfG Blacky27 dekadischer Zähler - Wobbelgenerator - jhoormann - 16.09.2010 06:47 Hi, versuche es doch mal hiermit, hoffe ich habe es richtig verstanden, was du machen wolltest. Gruß Jan LV2009SP1 dekadischer Zähler - Wobbelgenerator - GerdW - 16.09.2010 08:17 Hallo Blacky, nachdem Jan schon die Lösung deiner Hausaufgabe verraten hat, hier noch eine Optimierung: [attachment=29437] (Das gleiche Prinzip bietet sich an, wenn man Stützpunkte für logarithmische Darstellungen braucht, hier nehme ich gern die Werte 1,2,3,5,7 pro Dekade...) @Jan: Konstante Operationen <strike>immer</strike> nach Möglichkeit außerhalb von Schleifen durchführen. Bei den hier zu erwartenden Datenmengen tut's auch AutoIndexing (statt vorher eine Array zu initialisieren und Werte zu ersetzen.) Außerdem könntest du dein Profil mit LV2009 ergänzen dekadischer Zähler - Wobbelgenerator - SeBa - 16.09.2010 09:02 Immer wieder gerne vergessen/ignoriert... das Ramp Pattern VI [attachment=29438] Gruß SeBa dekadischer Zähler - Wobbelgenerator - GerdW - 16.09.2010 09:10 Hallo SeBa, End=9 für diese Anwendung, sonst gibt's die 1er Werte hinterher doppelt und dazwischen krumme Werte. Manchmal halte ich einen DLL-Aufruf für einen Vektor [1..9] für übertrieben, außerdem kann der Compiler hier ConstantFolding betreiben... dekadischer Zähler - Wobbelgenerator - SeBa - 16.09.2010 09:13 Hallo Gerd, Ende ausschließen? = True... weil sonst krumme Werte dazwischen und 1er Werte irgendwie doppelt... Gruß SeBa dekadischer Zähler - Wobbelgenerator - GerdW - 16.09.2010 09:15 Hallo SeBa, ahh, arbeite wohl doch zu selten mit dieser Funktion... Bleibt noch das ConstantFolding dekadischer Zähler - Wobbelgenerator - SeBa - 16.09.2010 09:24 Ja... keine Ahnung. Kann der Compiler nicht auch raten (hehe) was aus dem DLL Aufruf rauskommt? Bevor wir das jetzt vertiefen, lass mich einfach sagen... ich wollte das Ramp Pattern nur mal erwähnt haben Gruß SeBa dekadischer Zähler - Wobbelgenerator - Blacky27 - 16.09.2010 17:58 Danke für die vielen Tipps und Hilfen!!! Aber..... von diesem Wissen sind wir noch seeeehr weit entfernt. Wir bewegen uns noch in den Kinderschuhen. Ich habe meine Datei im Anhang beigefügt. Beim Starten ist die Startfrequenz=1, die Zielfreqenz=1000, momentane Frequenz=0 Mit Zähler und Faktor habe ich nur experimentiert. Nochmal zum Ablauf. Ich habe das bestimmt zu kompliziert erklärt. Startfrequenz=1 --> in 1er Schritten bis 10 zählen --> in 10er Schritten bis 100 zählen --> in 100er Schritten bis 1000 zählen Startfrequenz=0,1 --> in 0,1er Schritten bis 1 zählen --> in 1er Schritten bis 10 zählen --> in 10er Schritten bis 100 zählen --> in 100er Schritten bis 1000 zählen Jetzt ist es vielleicht etwas deutlicher geworden. Also ganz einfach und easy.... wenn man es kann. MfG Blacky27 dekadischer Zähler - Wobbelgenerator - GerdW - 16.09.2010 21:29 Hallo Blacky, dein VI vereint so ziemlich alle Anfängerfehler, die man machen kann: - lokale Variablen benutzen, obwohl die Terminals ungenutzt bleiben (LabVIEW ist eine auf Datenfluss basierende Sprache, man benötigt keine Variablen!) - keine Shiftregister genutzt - Datenfluss missachten - RaceConditions (durch lokale Variablen) erzeugen - unpassende Datentypen (bei der Wait-Funktion), da Konstanten nicht per Rechtsklick erzeugt wurden - die Aufräumfunktion von LV2009 nicht benutzt Nutze unsere Beispiele und schau dich hier um! |