Also, ich hatte da mal absolut keine Idee mehr für ein wirklich nützliches Projekt und habe mich deshalb entschieden, mal sowas wie das "Buddelschiff" der µC-Programmierung zu bauen. Also einen Audio-Spektrum-Analyzer mit einem 8Pin-ATtiny. Aber natürlich den Bestmöglichen, der mit so einem ATtiny machbar ist, es sollte ja trotzdem noch eine Herausforderung sein, sonst macht die ganze Programmiererei ja keinen Spass. Und das (siehe Anhänge) ist dabei herausgekommen... Noch ein paar Anmerkungen dazu: Wer wirklich die Sache mit dem WS2812B-Display anstrebt, sollte unbedingt den Kühlungsaspekt gebührend berücksichtigen. Die Kühlung des Protoypen (4x Messing-U-Profil 6x6x82,5) reicht z.B. definitiv NICHT für einen Dauerbetrieb mit voller Helligkeit. Auch bezüglich des Energiebedarfs sollte man diese kleine Platine keinesfalls unterschätzen. Für einen zuverlässigen Betrieb im Rahmen dessen, was mit der Kühlung des Protoypen möglich ist, sollte es schon eine 5V/3A-Wandwarze sein. Ohne LEDs, also als "Koprozessor" ist die Sache hingegen vollkommen unkritisch, dann reichen ca. 50mW Versorgung. In Testprogramme.zip existiert ein Unterordner DisplayTest. Der enthält eine Firmware zur Funktionskontrolle für die schrittweise Bestückung/Inbetriebnahme des LED-Displays. Namenskonvention: AnzahlBins_AnzahlLED/Bin. Der Unterordner Firmware enthält fertige Firmwares zum schnellen Testen (z.B. zum Betrieb als Koprozessor), ohne sich mit dem Designer beschäftigen zu müssen. Namenskonvention: AnzahlBins_AnzahlLED/Bin_RS232an/aus. Der 12,5Hz-Bin, den es im Prototyp noch gibt, ist absolut verzichtbar, wenn es um die Visualisierung von Musik geht. Da passiert bei üblicher Musik eh' praktisch nix. Deswegen habe ich ihn im Eagle-Projekt auch gleich weggelassen. Übrigens: Im Video des Protoypen sieht es so aus, als wenn da doch etwas nennenswertes passiert. Das liegt aber nur daran, dass der für die Aufnahme als Zuspieler verwendete CD-Player aus unerfindlichen Gründen am LineOut fast 10dB zu "laut" ist. Wenn das Teil über den COM-Port angeschlossen und schon beim Systemstart aktiv ist, neigt Windows dazu, fälschlicherweise eine serielle Maus zu erkennen, irgendeinen "Microsoft Ballpoint". Da nur die Wenigsten tatsächlich noch serielle Mäuse einsetzen werden, ist die einfachste Lösung, den für die Erkennung zuständigen Dienst zu deaktivieren. Console als Administrator öffnen und folgendes Kommando absetzen: REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\sermouse" /V Start /T REG_DWORD /F /D 4 Beim nächsten Reboot sollte der Spuk dann vorbei sein. ############################################################### Ich möchte noch folgenden Leuten danken, die entweder einen Beitrag zur Firmware des Controllers oder der Designer-Anwendung geleistet haben: Ruud v. Gessel für seine AVR8ASM Sqrt32-Routine. Quelle: http://members.chello.nl/j.beentjes3/Ruud/sqrt32avr.htm "josh" für seine Untersuchungen zum Zeitverhalten der WS28xx. Quelle: https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/ Erik de Castro für den Resampler. Quelle: http://www.mega-nerd.com/SRC/ David Wohlferd, Eric Nowinski, Øystein Hansen, Ka-Wai Chan für ihre DirectShowLib. Quelle: http://directshownet.sourceforge.net/ Des weiteren habe ich zur Inbetriebnahme/Verifikation der Hardware/Firmware bzw. zur Erstellung der Dokumentation folgende Hilfsmittel benutzt, für die ich ihren jeweiligen Schöpfern hiermit ebenfalls danken möchte: https://www.audiocheck.net/download.php?filename=Audio/audiocheck.net_PinkNoise_15min.mp3 http://www.satsignal.eu/software/audio.html#SweepGen https://www.musicfox.com/download-kostenlos.php?file=musicfox_roadstar.mp3
Hübsch. Hätte nicht erwartet dass ein 85 dafür genügend RAM hat.
MaWin schrieb: > Hübsch. Hätte nicht erwartet dass ein 85 dafür genügend RAM hat. RAM war niemals das Problem. Das Problem war, die Sache in die Echtzeit zu bekommen. So ein Tiny kann ja nichtmal in Hardware multiplizieren. Angefangen habe ich mit ca. 220% Echtzeit... Das dann auf unter 100% zu drücken, war die eigentliche Herausforderung.
Nettes Projekt! Verstehe ich das jetzt richtig: Der FrontEnd Designer generiert den Programmcode? Als Quelltext (Assembler?) oder gleich ein Hex File?
c-hater schrieb: > RAM war niemals das Problem. Das Problem war, die Sache in die Echtzeit > zu bekommen. So ein Tiny kann ja nichtmal in Hardware multiplizieren. > Angefangen habe ich mit ca. 220% Echtzeit... Schön, dass keine Socke Deine genialen Ideen nachvollziehen kann. HEX-Files - wie lustig :-). Die sind genau so spannend, wie die Videos (nur eines mit Ton ...)
Schlimm wäre ja, wenn man Elm Chan's Handschrift erkennen würde :-)
E-Ing schrieb: > Nettes Projekt! Verstehe ich das jetzt richtig: Der FrontEnd Designer > generiert den Programmcode? Naja, nicht wirklich. Er ersetzt nur im originalen *.hex der jeweiligen "Basic design"-Variante drei Daten-Tabellen. Die Originalcodes sind dabei exakt die, die ich ich in "Testprogramme.zip" im Unterordner "Firmwares" veröffentlicht habe. > Als Quelltext (Assembler?) oder gleich ein > Hex File? Komische Frage. Du kanst nur "*.hex" speichern. Und du kannst problemlos mit einem Editor in die gespeicherten Dateien hinein schauen. Was also steckt da drin... ???
Beitrag #5862929 wurde von einem Moderator gelöscht.
Beitrag #5862932 wurde von einem Moderator gelöscht.
Beitrag #5862936 wurde von einem Moderator gelöscht.
Beitrag #5862944 wurde von einem Moderator gelöscht.
Beitrag #5862945 wurde von einem Moderator gelöscht.
c-hater schrieb: > Komische Frage. Du kannst nur "*.hex" speichern. Ich hatte das Programm nicht ausprobiert, da ich (heute) kein Windows zu Hand habe. Erklärt das die Frage? Natürlich sind jetzt viele scharf auf den Quelltext. Möchtest du ihn veröffentlichen?
Beitrag #5862967 wurde von einem Moderator gelöscht.
Beitrag #5862974 wurde von einem Moderator gelöscht.
OssiFant schrieb im Beitrag #5862945: > c-hater schrieb im Beitrag #5862944: >> Was ich an fremden Leistungen tatsächlich benutzt habe, habe ich >> ordentlich dokumentiert, > > Wo - im Hex-File? Im OP gleich hier. Nur ein bissel Scrollen nach oben im Browser und einen Maus-Klick entfernt... Ja, Danksagungen sind (wie üblich) erst am Ende des Postings. Sorry for inconvinience. Die Fratzenbuch-Generation kann wohl nicht SO weit scrollen. Dafür reicht deren Aufmerksamkeits-Spanne wohl nicht...
c-hater schrieb: > Im OP gleich hier. Nur ein bissel Scrollen nach oben im Browser und > einen Maus-Klick entfernt... OssiFant schrieb im Beitrag #5862967: > Nun ich kann im "Überblick" auch auf Newton, Einstein, Rutherford ... > keine Ahnung wen hinweisen - und mich bekannter Algorithmen/Codestrecken > bedienen. So lange mein Code nicht einsehbar ist kann ich alles > behaupten.
c-hater schrieb: > Ja, Danksagungen sind (wie üblich) erst am Ende des Postings. Sorry for > inconvinience. Die Fratzenbuch-Generation kann wohl nicht SO weit > scrollen. Dafür reicht deren Aufmerksamkeits-Spanne wohl nicht... Nun - mit Fratzebuch (nicht Fratzenbuch) habe ich nur peripher (US -Verwandte) zu tun. Ansonsten meide ich solche "Verbindungen". Meine "Aufmerksamkeits-Spanne" reicht für Deine "Aktionen" sicher aus :-)
OssiFant schrieb im Beitrag #5862967: > Nun ich kann im "Überblick" auch auf Newton, Einstein, Rutherford ... > keine Ahnung wen hinweisen Kann man, wenn man ein Lügner ist. Bin ich aber nicht. Deswegen erscheinen dort genau die Namen genau der Personen, deren Algorithmen ich tatsächlich verwendet habe. Im übrigen: Du hast das Hex-File und das Executable der Windows-(.net!)-Anwendung. Beides läßt sich mit wenigen Handgriffen in durchaus leserlichen Code verwandeln. Natürlich nur von Nicht-Vollidioten. Dementsprechend: Nur Vollidioten können auf die Idee kommen, dass ich angesichts dieser Tatsachen geneigt wäre, meinen Ruf durch leicht zu entlarvende Lügen zu gefährden...
c-hater schrieb: > Im übrigen: Du hast das Hex-File und das Executable der > Windows-(.net!)-Anwendung. > Beides läßt sich mit wenigen Handgriffen in durchaus leserlichen Code > verwandeln. Lustig - zeig mal den aus dem Hex-Code erzeugten (leserlichen) Code mit Anmerkungen zur verwendeten Filterarchitektur etc. Wen willst Du hier veralbern? Lasse bitte den Thread schließen und gut. Copy-Kings haben wir hier genug.
c-hater schrieb: > Dementsprechend: Nur Vollidioten können auf die Idee kommen, dass ich > angesichts dieser Tatsachen geneigt wäre, meinen Ruf durch leicht zu > entlarvende Lügen zu gefährden... Das solltest Du Dir mal genauer durchlesen - insbesondere die Stelle mit dem "Ruf".
OssiFant schrieb: > Lustig - zeig mal den aus dem Hex-Code erzeugten (leserlichen) Code mit > Anmerkungen zur verwendeten Filterarchitektur etc. Nö, Anmerkungen gibt's darin natürlich nicht. Aber genug Stoff für jeden Nicht-Vollidioten, um vollkommen zweifelsfrei die verwendeten Algorithmen zu identifizieren. Inbesondere dann, wenn die Architektur des Software bereits bekannt ist, was hier ja zutrifft. Verdächtig wäre höchstens noch das, was danach über bleibt. Da wirst du aber keine FFT drin finden. Viel zu kurz, viel zu wenig RAM-Zugriffe und diese viel zu irregelär. Das wäre jedenfalls mir sofort klar, wenn es mein Job wäre, dieses reverse engineering zu machen. Allerdings: ich bin Profi... Jeder Nicht-Vollidiot kann übrigens sogar ganz ohne Quelltext oder Binary locker herausbekommen, dass das mit ElmChan's Code auf einem Tiny (ohne Hardware-Multiplikation!) niemals funktionieren könnte... Aber das nur nebenbei...
OssiFant schrieb: > Das solltest Du Dir mal genauer durchlesen - insbesondere die Stelle mit > dem "Ruf". Mein Ruf ist nicht, besonders nett zu sein, falls du das meinst. Mein Ruf ist aber auch: immer die Wahrheit zu sagen. Das bringt leider mit sich, das man immer irgendjemandem auf die Zehen tritt. Aber hier sehe ich Allgemeinwohl höher priorisiert als das Wohl Einzelner. Allein Fakten zählen. Auch wenn das für gewisse Einzelpersonen bedeuten mag, dass sie als Lügner, Provakateure oder schlicht auch nur als Dummköpfe entlarvt werden.
E-Ing schrieb: > Ich hatte das Programm nicht ausprobiert, da ich (heute) kein Windows zu > Hand habe. Erklärt das die Frage? Natürlich sind jetzt viele scharf auf > den Quelltext. Möchtest du ihn veröffentlichen? Ich habe geschwankt, ob ich das tue. Ich hatte mich vorläufig dagegen entschieden, aber die Option offen gehalten. Ossifant allerdings hat mich in meinen Bedenken gegenüber einer Veröffentlichung so sehr bestärkt, dass ich zumindest derzeit klar sagen würde: NEIN. Die Klugen werden ihre Wege finden, an den Code zu kommen (die Wege dahin sind aufgezeigt, es gib keine künstlichen Hindernisse) und den Dummen möchte ich nix schenken ausser dem Ansporn, klüger zu werden, d.h.: zu lernen.
Die häßliche Wahrheit wird sein, dass er das in C zusammengeschustert hat und sich wegen seines unterirdischen Programmierstils nicht traut, den Quelltext heraus zugeben…
Beitrag #5863079 wurde von einem Moderator gelöscht.
Beitrag #5863097 wurde von einem Moderator gelöscht.
Uhu U. schrieb: > Die häßliche Wahrheit wird sein, dass er das in C zusammengeschustert > hat und sich wegen seines unterirdischen Programmierstils nicht traut, > den Quelltext heraus zugeben… Wenn du das wirklich glaubst: Mach' es doch einfach in C! ;o) Ich garantiere: Der Quelltext wurde zu keiner Zeit in irgendeiner Form mit C kontaminiert. Das ist reiner urwüchsiger Assemblercode. Merkt man übrigens auch sehr leicht, wenn man sich das Binary anschaut. Weit und breit nix von dem Overhead eines C-Compilers zu sehen. Und er funktioniert (übrigens: zu einem nicht ganz unwesentlichen Teil gerade auch deswegen!) hervorragend... Tip: mal die ISRs anschauen. Die sind ja über ihre Vektoren sehr leicht zu finden und obendrein recht kurz. Mach' allein das mal in C... Damit meine ich: So, dass dann auch der Rest des Code noch funktioniert... LOL
OssiFant schrieb im Beitrag #5863079:
> Ach Du machst FFT ohne FFT
Nö. Ich mache einfach nur keine FFT.
Gortzel-Filter sind zwar, genau genommen, Spezialfälle einer FT (darauf
willst du wohl hinaus), aber eben keine FFT, wie man sie üblicherweise
versteht.
OssiFant schrieb: > c-hater schrieb: >> Tip: mal die ISRs anschauen. > > Gerne - wenn ich mal den Quellcode habe. Den hast du. Der Code ist 100% Assembler. D.h.: das Wesentliche steht genauso im Binary, wie es auch im Quelltext steht. Du hast nur nicht die Kommentare und die Symbole.
c-hater schrieb: > Ich garantiere: Der Quelltext wurde zu keiner Zeit in irgendeiner Form > mit C kontaminiert. Grins…
Also ich fände es auch gut, wenn der Quellcode hier verfügbar wäre. Ich kann die Bedenken verstehen, aber wenn du für deinen Quellcode angemeckert werden solltest, ist es wenigstens fachlich und nicht personenbezogen. Ehrlich gesagt erhoffe ich mir auch aus dem Code ein paar wiederverwendbare Zeilen Kopieren zu können. Assemblersourcen sind leider selten geworden, und als Bastler schäme ich mich auch nicht fremde Codeschnipsel zu kopieren und zu verwenden. Ansonsten Danke fürs veröffentlichen.
Fred F. schrieb: > Ehrlich gesagt erhoffe ich mir auch aus dem Code ein paar > wiederverwendbare Zeilen Kopieren zu können. Das kannst du weitestgehend vergessen. Das ist hochoptimierter Code. "Hochoptimiert" meint: bestmöglich auf genau den einen konkreten Verwendungszweck angepasst. Das ist hier nötig, damit es überhaupt möglich wird, dass die Sache insgesamt funktionieren kann. Dazu mussen nämlich alle nötigen Berechnungen zumindest im Mittel schneller erfolgen, als die Ereignisse passieren. Dazu kommen dann noch die Timings-Restriktionen durch konkurrierenden Rechenzeitbedarf, hier speziell die Ausgabe an die WS2812B-LEDs. Du kannst nicht erwarten, dass ein Code, der gerade so das theoretisch überhaupt machbare umsetzt, dann auch noch problemlos für andere Zwecke nutzbar ist.
Moin, Janee, is klaa. Hmmm...das hier: > Die Samples werden dafür pro > Oktave jeweils über einen Halbbandfilter (Butterworth Tiefpass > 3. Ordnung) gefiltert und dann 2:1 reduziert. Klingt ja aber schon so ein bisschen, wie das was ich hier mal gemacht hab' - ok ging jetzt bei mir auch ohne den Herrn Goertzel, dafuer noch mit Multiplizierer im Filter: Beitrag ""LED-Spectrumanalyzer"software ohne Fouriertransformation" Aber ist halt nicht so superdupergeheim, und ist kein so ganz reinrassiger Assembler (die Vorfahren waren nachweislich C) und nicht ganz so hochoptimert. Wobei ich derweilen glaub', man muesste sowas entsprechendes auch mit etwas simpleren Filtern auf einem attiny13a hinkriegen fuer z.b. eine 3 Kanal-Lichtorgel. RAM wird da wohl etwas knapp, aber naja... Gruss WK
Dergute W. schrieb: > Klingt ja aber schon so ein bisschen, wie das was ich hier mal gemacht > hab' - ok ging jetzt bei mir auch ohne den Herrn Goertzel, dafuer noch > mit Multiplizierer im Filter: > > Beitrag ""LED-Spectrumanalyzer"software ohne Fouriertransformation" Ja, das geht immerhin von einem Aspekt des Grundkonzepts her tatsächlich in dieselbe Richtung. Da ist also immerhin schon deutlich mehr Substanz drin als im völlig hirnlosen Schwachsinn des Ossifanten mit seiner ElmChan-Copy-Theorie... Aber, wie du schon selber herausgefunden hast: das Multplizieren ist einer der Knackpunkte. Einen anderen führst du im damaligen Thread auch noch selber an: die Lastverteilung der Rechenzeit. Nun, ich habe mit meinem Konzept offensichtlich beide Probleme hinreichend gut gelöst. Außerdem: Hast du mal die Kennlinie deiner Lösung aufgenommen? Und mit meiner verglichen? Fazit: Nur, weil etwas so ungefähr dasselbe machen soll, ist es noch lange nicht das Gleiche. ;o)
c-hater schrieb: > Da ist also immerhin schon deutlich mehr Substanz > drin als im völlig hirnlosen Schwachsinn des Ossifanten mit seiner > ElmChan-Copy-Theorie... Beweise das Gegenteil :-) - Du laberst doch nur ...
Die Frontend-Gui hat er bestimmt auch in Assembler programmiert - Hardcore eben ;-)
>>Die Frontend-Gui hat er bestimmt auch in Assembler programmiert - Hardcore eben
;-)
Das wäre ihm zu einfach gewesen. Das hat er mit den cpu microcodes
hinbekommen und optimiert bis zum geht nicht mehr.
Nettes Projekt. Wie wird das Audiosignal gesampelt, über den Komparator?
Moin, Mario schrieb: > Opensource geht anders... Ja, aber vor dir hat ja keiner was davon gesagt. Klar rechnet man auch nicht unbedingt in einem 5wingerclub damit, dass einer seinen Schluepper nicht ausziehen will, weil er so gschamig ist, aber wenn das dann so ist, dann ist das halt so. Und wenn er dann sagt, dass er den nicht ausziehen will, um die Leute nicht zu erschrecken, weil sein Gemaecht so riesig ist, dann muss man das wohl auch akzeptieren. Gruss WK
Dergute W. schrieb: ... > Klar rechnet man auch nicht unbedingt in einem 5wingerclub damit, dass > einer seinen Schluepper nicht ausziehen will, weil er so gschamig ist, > aber wenn das dann so ist, dann ist das halt so. > Und wenn er dann sagt, dass er den nicht ausziehen will, um die Leute > nicht zu erschrecken, weil sein Gemaecht so riesig ist, dann muss man > das wohl auch akzeptieren. ... ROTFLPMP Hast Du das Copyright für den Spruch? Darf man den weiterverwerten? ... Ich finde das Projekt interessant, allerdings ohne die Quelltexte in der Rubrik "Projekte & Code" nicht optimal platziert. Die Frage ist halt - was will der TO erreichen? Nur zeigen, was er kann, um an Aufträge zu kommen (mache ich z.B. so auf meiner Website)? Öffentlich gelobt werden? Einen Hackerwettbewerb auslösen? Vielleicht haben wir eine Chance auf die Quelltexte, wenn wir alle zusammen im Chor ganz lieb "bitte, bitte" rufen?
Ganz nettes Projekt. Allerdings hätte ich doch gerne für Frequenzen über 12,5+ kHz eine Anzeige. Aber es können durchaus >12,5+ ...30kHz zusammengefaßt werden in einen Bereich. Hintergrund ist die Eignung des Gerätes zur Erkennung von UltraschallMarderSchreckGeräten und ähnlichen Geräten.
Marcus H. schrieb: > Vielleicht haben wir eine Chance auf die Quelltexte, wenn wir alle > zusammen im Chor ganz lieb "bitte, bitte" rufen? Leute, regt euch doch nicht auf. Wozu auch? Das sollte aus dem Eröffnungspost doch ganz eindeutig hervorgehen: "Also, ich hatte da mal absolut keine Idee mehr für ein wirklich nützliches Projekt und habe mich deshalb entschieden, mal sowas wie das "Buddelschiff" der µC-Programmierung zu bauen." Klaro? Es ist ne nette Spielerei, wo durchaus auch einiges an Gehirnschmalz drinsteckt und wer will, kann es für sich benutzen. Die Hexfiles sind ja vorhanden. Es war von Anfang an eben NICHT als allgemeine Lösung für die weitere Verwendung anderenorts gedacht, sondern eben als nette Spielerei. Und das ist ihm auch gut gelungen. Erwartet ihr von jedem ne Lernbetty, um dann über selbige herziehen zu können? Noch ein Wort an den Ossifanten: Du bist derjenige, der hier herumlabert und versucht, Streß zu machen. Laß das besser bleiben. W.S.
Dieter schrieb: > Ganz nettes Projekt. Allerdings hätte ich doch gerne für Frequenzen über > 12,5+ kHz eine Anzeige. Hast du. Du musst nur Kennlinien lesen lernen, dann siehst du das auch... > Aber es können durchaus >12,5+ ...30kHz Nö, können es nicht sein. Da die Samplefrequenz 38,5kHz ist, liegt die Grenzen dessen, was mit digitaler Signalverarbeitung mit eindeutiger Abbildung möglich ist, bei 19,25 kHz. Googlefutter zu deiner Aufschlauung: Shannon, Nyquist, Abtasttheorem. Tatsächlich führt das aber in der konkreten Schaltung dazu, dass du doch auch Sachen im US-Bereich sehen kannst. Die verzichtet nämlich wegen des angestrebten Minimalismus auf den normalerweise obligatorischen Anti-Alias-Filter vor dem Eingang des ADC. Also: du kannst zwar sehen, dass da irgendwas sein muss, aber du kannst das Signal nicht mehr eindeutig einem Frequenzbereich zuordnen. > Hintergrund ist die Eignung des > Gerätes zur Erkennung von UltraschallMarderSchreckGeräten und ähnlichen > Geräten. Dafür brauchst du dann halt was, was mit deutlich mehr als knapp 40kHz samplen kann. Der Tiny kann das nicht. Mit der von mir gewählten Samplerate ist er am Limit. Das kann man leicht daran erkennen, dass auch völlig ohne Eingangssignal sich gelegentlich was im 12,8kHz-Bin tut. Das, was man da sieht, ist das gequälte Rauschen eines ADCs, der an der Grenze seiner Spezifikation betrieben wird. Und das führte dann zur Erfindung der "Sticky peaks". ;o)
Julian B. schrieb: > Wie wird das Audiosignal gesampelt, über den Komparator? Nö. Ganz normal über den ADC. Allerdings ganz am Rand seiner Spezifikation...
Moin, Dieter schrieb: > Allerdings hätte ich doch gerne für Frequenzen über > 12,5+ kHz eine Anzeige. Aber es können durchaus >12,5+ ...30kHz > zusammengefaßt werden in einen Bereich. Wie von c-hater schon angedeutet: Bau ein (analoges) Bandpassfilter mit z.b. Durchlass von 19KHz...38KHz davor, fertsch. Die einzelnen Frequenzen der Filter musst du halt noch umrechnen, fuer was die dann jeweils stehen. c-hater schrieb: > Das kann man leicht daran erkennen, dass > auch völlig ohne Eingangssignal sich gelegentlich was im 12,8kHz-Bin > tut. Das, was man da sieht, ist das gequälte Rauschen eines ADCs, der an > der Grenze seiner Spezifikation betrieben wird. Ich glaub' eher, dass "das was man da sieht" die Sauereien von Controller und LEDs auf Vcc (und damit auch Vref und von R1 und R2 um 6dB gedaempft aufm ADC in) sind. Ist aber erstmal eine reine Glaubensfrage. Gruss WK
Dergute W. schrieb: > Ich glaub' eher, dass "das was man da sieht" die Sauereien von > Controller und LEDs auf Vcc (und damit auch Vref und von R1 und R2 um > 6dB gedaempft aufm ADC in) sind. Ist aber erstmal eine reine > Glaubensfrage. LEDs kann ich ausschließen, auch die Versorgung. Ich habe natürlich auch einen Prä-Protoypen ganz ohne das LED-Geraffel. Ich bin doch nicht bekloppt, und bestücke 88 WS2812B von Hand auf Streifenleiter, bevor ich sicher weiss, dass die Sache überhaupt in der Praxis funktionieren wird... Zusätzlich hatte ich die Möglichkeit, dieses Teil aus einer hochpräzisen (wenn auch wenig leistungsfähigen) Laborquelle zu versorgen. Also: entweder stammt's vom von der MCU oder vom ADC. Ich tippe aber ganz stark auf den ADC, denn mit einer weiteren Verdoppelung des ADC-Taktes... Alles klar?
Dergute W. schrieb: > Bau ein (analoges) Bandpassfilter mit > z.b. Durchlass von 19KHz...38KHz davor, fertsch. Die einzelnen > Frequenzen der Filter musst du halt noch umrechnen, fuer was die dann > jeweils stehen. Wäre eine Möglichkeit. Besser wäre wohl ein Mischer, der das höhere Frequenzband in den NF-Bereich umsetzt. Ich habe nämlich keine Ahnung, wie weit der verwendete interne Verstärker mitspielt, der ja vor dem ADC liegt. Bis 20kHz ist er ja offensichtlich noch gut linear, aber irgendwann wird er beginnen zu schwächeln, das ist so sicher wie das Amen in der Kirche. Atmel/MC verrät leider keinerlei Details darüber, wann ungefähr das der Fall sein könnte. Aber so eine Anwendung (also eine nach deinem Vorschlag) wäre eine wunderbare Möglichkeit, das mal "auszuklingeln". Ich vermute, daß das Schwächeln irgendwo in diesem Frequenzbereich zwischen 20 und 40kHz anfangen wird. Aber, nicht falsch verstehen: das ist wirklich nur eine reine Vermutung. Bestenfalls ein "educated guess". Ich hab's nie gemessen.
c-hater schrieb: > Bis 20kHz ist er ja offensichtlich noch gut linear, aber > irgendwann wird er beginnen zu schwächeln, das ist so sicher wie das > Amen in der Kirche. Ja, davon ist auszugehen. Bei den µC-AD-Wandlern wird man kaum Anstrengungen machen, deutlich oberhalb von der max. möglichen Abtastfrequenz noch Bandbreite in den Eingangsteil zu designen. Bei dezidierten AD-Wandlern ist das manchmal anders. Der AD9042 z.B. (vor 25 Jahren mal eingesetzt - analoges TV-ZF) kann 100MHz Analog-BB und 41 MSPS.
@C-Hater Falls Du gewillt bist zu antworten (ggf. sogar ohne verbale Entgleisungen :-): Du rechnest ca. 3850 Samples pro Kanal? Du rechnest einen Kanal nach dem anderen (also aktuell 10)? Hintergrund: Ich werde das mal in C umsetzen - nutze dann aber auch eine 16-Bit-Mul-Routine analog Deiner SQR-Routine aus "Fremdfertigung" :-). Da ist GCC wirklich zu langsam (im Standard).
W.S. schrieb: > Noch ein Wort an den Ossifanten: Du bist derjenige, der hier herumlabert > und versucht, Streß zu machen. Laß das besser bleiben. Ja. In Deinem Fall.
OssiFant schrieb: > Du rechnest ca. 3850 Samples pro Kanal? Nein. > Du rechnest einen Kanal nach dem anderen (also aktuell 10)? Nein. > Hintergrund: Ich werde das mal in C umsetzen Wollen wir wetten? Ich sage: das wirst du nicht.
c-hater schrieb: >> Du rechnest ca. 3850 Samples pro Kanal? > > Nein. Damit hast Du Recht - es braucht mindestens die doppelte Sample-Rate um die 12,5 Hz erkennen zu können. Aber das kann man für die oberen Frequenzbänder dynamisch reduzieren. c-hater schrieb: >> Du rechnest einen Kanal nach dem anderen (also aktuell 10)? > > Nein. O.K., dann 2 - vielleicht 3 Kanäle pro Sample :-). Um den Koeffizienten wirst auch Du nicht herumkommen und vermutlich Q15 nutzen.
Um mal kurz online (habe gerde nicht die Möglichkeit, irgendetwas zu installieren) über den Code schauen zu können, bräuchte ich statt Intel Hex reines Binary. Online Disassebler gibt es ja einige, nur Hex Converter habe ich jetzt auf die Schnelle nicht gefunden.
c-hater schrieb: > Wollen wir wetten? Ich sage: das wirst du nicht Werde ich doch - der Weg ist halt "steinig" :-) Prima Gehirn-Jogging. Was wettest Du?
c-hater schrieb: > Wollen wir wetten? Ich warte immer noch auf Dein Wett-Angebot. Dafür würde ich mich sogar anmelden :-) Ich schlage https://www.gourmondo.de/champagner-schaumwein/moet-chandon/champagner-brut-imperial-6-flaschen-vorteilspaket-2000003609?et_cid=10&et_lid=11&et_sub=SMGC10&gclid=Cj0KCQjwi43oBRDBARIsAExSRQEHOoNyW-J3QC0ei8nfxu-8ec7cfbLcPboFFWA2GScqepT-aC-qJa4aAuUAEALw_wcB vor. Immerhin 15,50 € gespart :-) Wie lange hast Du gebraucht? Schreib jetzt nicht "2 Stunden" - glaubt Dir sowieso niemand. Ich brauche noch ein Weilchen, weil ich nebenbei auch noch arbeite. Mach mal einen Vorschlag.
Du bist doch sicher, dass ich verliere. Dann kann es Dir die "berühmte Kiste Champagner" (noch eine der günstigsten) doch wert sein - oder?
OssiFant schrieb: > Ich warte immer noch auf Dein Wett-Angebot. Das war eher rhetorisch gemeint. Vergiß die Wette. > Du bist doch sicher, dass ich verliere. Das auf jeden Fall. Liegt einfach daran, dass du mich des Plagiats von ElmCan's FFT-Code bezichtigt hast, wobei jeder, der auch nur andeutungsweise was von der Sache versteht, problemlos erkennen kann, dass das unmöglich die Basis meiner Lösung sein kann. Jemand, der so wenig Ahnung hat, ist garantiert nicht in der Lage, meine Lösung auch nur nachzubauen, schon garnicht in C... Alles, was du kannst, ist: Copy&Paste. Ist nur Scheiße, wenn man keine Vorlage dafür hat, stimmt's... ;o)
c-hater schrieb: > Alles, was du kannst, ist: Copy&Paste. Ist nur Scheiße, wenn man keine > Vorlage dafür hat, stimmt's... ;o) Wenn Du so sicher bist: Einverstanden?
c-hater schrieb: > Das war eher rhetorisch gemeint. Vergiß die Wette. Nein - ich sehe da einen gewissen Anreiz. Machst Du einen Rückzieher?
c-hater schrieb: > Jemand, der so wenig Ahnung hat, ist garantiert nicht in der Lage, meine > Lösung auch nur nachzubauen, schon garnicht in C... Deine Lösung ist mir Wurscht - außer, dass auch ich auf Görtzel aufbauen werde. Die von Dir verwendeten ISR's habe ich mir angeschaut - nichts, was mich beeindrucken würde.
Den Rest Deines Codes schaue ich mir nicht weiter an - das ist mir zu mühselig. Mag er in Frieden ruhen :-). Das ist sowieso nicht meine Welt - und auch nicht erforderlich.
OssiFant schrieb: > Deine Lösung ist mir Wurscht - außer, dass auch ich auf Görtzel aufbauen > werde. Du gibst hier gerade zu, dass du mich fälschlicherweise öffentlich des Plagiats des ElmChan-Codes bezichtigt hast. Mit deinen bisherigen Einlassungen hättest du dich wahrscheinlich noch auf Unwissen rausreden können, das ist jetzt vorbei. D.h.: Du hast gerade zugegeben, ein Lügner, Verleumder und Provokateur zu sein. ein ziemlich unfähiger noch dazu, aber darüber sehe ich mal gnädig hinweg...
c-hater schrieb: > Du hast gerade zugegeben, ein Lügner, Verleumder und Provokateur > zu sein. Ich habe gar nichts zugegeben - und warte immer noch auf Dein Wettangebot. Wenn Du nichts offen legst musst Du halt mit Mutmaßungen leben :-) Ich habe nichts von Plagiat geschrieben - nur von Nutzung. Ich brauche mich auch nicht herauszureden - warum auch? Also - wie steht es mit der Wette?
c-hater schrieb: > ein ziemlich unfähiger noch dazu, aber darüber sehe ich mal > gnädig hinweg... Wie fähig oder unfähig kannst Du ja leicht feststellen :-) Auf Deine "Gnade" kann ich gut verzichten. Also reg Dich ab und schlag ein.
@ OssiFant, die Rubrik hier ist Projekte und Code, wenn du stänkern willst geh bitte in die Rubriken A&B; Offtopic oder devnull. Die sind extra für Leute die auf Krawall gebürstet sind. Und wenn du den c-hater nicht mags, was dir auch gegönnt sei, schreib ihm ne PM.
Fred F. schrieb: > @ OssiFant, die Rubrik hier ist Projekte und Code, wenn du stänkern > willst geh bitte in die Rubriken A&B; Offtopic oder devnull. Die sind > extra für Leute die auf Krawall gebürstet sind. > Und wenn du den c-hater nicht mags, was dir auch gegönnt sei, schreib > ihm ne PM. Was geht Dich unsere Wette an? Ich bin nicht auf Krawall gebürstet und möchte die Wette gerne gewinnen (wenn sie denn zustande kommt). C-Hater schreibt, dass es in C nicht möglich ist - ich behaupte das Gegenteil. Hat das nichts mit Projekte und Code zu tun?
Fred F. schrieb: > @ OssiFant Falls Dich der Nickname stört kann ich gerne auf Wessifant oder Smörebröd umsteigen :-)
Fred F. schrieb: > Und wenn du den c-hater nicht mags, was dir auch gegönnt sei, schreib > ihm ne PM. Das ist eine Unterstellung - vieles von dem, was er schreibt hat Hand und Fuß. Nur verrennt er sich oft in seinen C-Hass :-)
OssiFant schrieb: > Fred F. schrieb: >> Und wenn du den c-hater nicht mags, was dir auch gegönnt sei, schreib >> ihm ne PM. > > Das ist eine Unterstellung - vieles von dem, was er schreibt hat Hand > und Fuß. Nur verrennt er sich oft in seinen C-Hass :-) Ich kann mit Cholerikern umgehen (auch solchen, die mich "...ein Lügner, Verleumder und Provokateur...oder Vollidiot ..." nennen). Irgendwann werden die wieder ruhig und man kann sich sachlich unterhalten.
Fred F. schrieb: > Ehrlich gesagt erhoffe ich mir auch aus dem Code ein paar > wiederverwendbare Zeilen Kopieren zu können. Hast Du Dir Görtzel mal angeschaut? Falls nicht schau mal hin. Und dann frage Dich, wie C-Hater wohl mit dem "Koeffizienten" für 10 - 11 Frequenzen umgeht (in ca. 416 Takten). O.K. er entzerrt das etwas, indem er niedrigere Frequenzen mit einer gerechneten geringeren Sample-Frequenz abtastet - aber auch das will bedacht sein.
OssiFant schrieb: > Hast Du Dir Görtzel mal angeschaut? Falls nicht schau mal hin. Wenn Du dazu etwas sagen / schreiben kannst freue ich mich auf Deine Rückmeldung.
Ich finde es einfach nicht gut, wenn Threads hier zugemüllt werden. Gerade hier in Projekte und Code. Dein Wunsch nach einem Gefecht kannst du per PM klären, meinetwegen auch in mc & Elektronik. Hier sucht man gerne mal eine aktuelle Version oder vergleichbares. Da stören solche Wortgefechte gewaltig. Daher möchte ich mich hier auch nicht weiter an der Produktion von sinnlosen Plaudereien beteiligen.
Fred F. schrieb: > Daher möchte ich mich hier auch nicht weiter an > der Produktion von sinnlosen Plaudereien beteiligen. Verstehe ich - wenn Du nichts beizutragen hast.
Fred F. schrieb: > Gerade hier in Projekte und Code. ... sollte es um konkrete Projekte und den dazu gehörigen Code gehen. Nicht um irgendwelche Hex-Dateien. Aber egal - auch dazu bzw. der Intention kann man sich Gedanken machen (oder auch nicht). Auch wenn C-Hater das meint bin ich nicht der "Copy-King" - da sollten sich hier Andere angesprochen fühlen. Du solltest Dich zurückhalten - oder hast Du schon etwas eigenes beigetragen?
Moin, Na, hier ist ja ein lustiger Saunaclub. Der eine hat so ein grosses und spezielles Gemaecht, dass er's nicht herzeigen mag, der andere mag Seines nur herzeigen gegen kistenweise alkoholische Getraenke... O tempora, o mores! SCNR, WK
Dergute W. schrieb: > Der eine hat so ein grosses und > spezielles Gemaecht, dass er's nicht herzeigen mag, der andere Da gibt's keinen "einen" und "anderen", die gehören beide zusammen und spielen Gegner um ein wenig Aufmerksamkeit zu erhaschen. Der Schreibstil des "Ossifant" entspricht in etwa dem des "c-hater"s und der "c-hater" wiederum erscheint hier regelmäßig mit betont aggressivem und ausfallendem Auftreten um - was sonst wohl - Aufmerksamkeit zu erhalten. Und nur darum geht's. Das ist alles nur Show.
Ich konnte die Implementierung des Hammingfensters noch mal etwas verbessern. Sehr groß ist der Unterschied nicht, aber immerhin sichtbar.
Moin, c-hater schrieb: > Sehr groß ist der Unterschied nicht, aber immerhin sichtbar. Wenn man mal das Bild aus dem ersten Beitrag und das Bild ueber Diesem voneinander abzieht, werden die Unterschiede sichtbarer. Gruss WK
Das Projekt zeigt mal wieder was mit kleinen 8Bittern effizient Assembler-programmiert alles möglich ist. Chapeau!
c-hater schrieb: > Sehr groß ist der Unterschied nicht, aber immerhin sichtbar. Sind das Messwerte von einem Sweep mit dem Attiny oder errechnete Werte?
Johann J. schrieb: > Sind das Messwerte von einem Sweep mit dem Attiny oder errechnete Werte? Es sind die Werte, die ein funktionsgleicher Nachbau des µC Codes auf dem PC liefert. So eine Art Simulator. Das ist deutlich weniger aufwendig als eine Messung am lebenden Objekt und geht auch viel schneller.
c-hater schrieb: > Es sind die Werte, die ein funktionsgleicher Nachbau des µC Codes auf > dem PC liefert. So eine Art Simulator. Ah - vielen Dank. Ich frage, weil ich einen Signalgenerator dran gehängt habe und eine etwas andere Charakteristik feststelle (gebe auf HTERM aus). Da muss ich wohl noch an meinem Aufbau arbeiten. Leider bekomme ich den Analyzer nicht dazu, Werte/Balken anzuzeigen. Das Programm habe ich dort heraus generiert und geflasht. Die serielle Ausgabe funktioniert - aber der Analyzer stellt sich taub. Woran kann das liegen? Wenn ich auch "HW(11 bins)..." klicke wird der darunter stehende Quer-Balken grün, aber es tut sich sonst nichts.
:
Bearbeitet durch User
Johann J. schrieb: > Leider bekomme ich den Analyzer nicht dazu, Werte/Balken anzuzeigen. Das > Programm habe ich dort heraus generiert und geflasht. Die serielle > Ausgabe funktioniert - aber der Analyzer stellt sich taub. Woran kann > das liegen? Wenn ich auch "HW(11 bins)..." klicke wird der darunter > stehende Quer-Balken grün, aber es tut sich sonst nichts. Wenn der Balken grün wird (und grün bleibt), dann bedeutetet das, dass erstens eine Startlücke erkannt wurde und zweitens, dass ein Datenstrom mit mindestens der geforderten Zahl Bytes (also Bins) regelmäßig eingeht, also ohne eine Lücke, die größer als die Framezeit ist. Sprich: Daten kommen rein wie erwartet, alles ist OK. Wenn sich trotzdem nix tut, kann das dann eigentlich nur noch genau drei Ursachen haben: 1) Es kommen nur Null-Bytes. 2) Du hast keine Farben festgelegt. 3) Du hast die Farbeinstellung nicht übernommen. Wobei 2) und 3) dasselbe bewirken, nämlich den Effekt der Ostfriesischen Nationalflagge (schwarzer Adler auf schwarzem Tuch). ;o)
c-hater schrieb: > Wobei 2) und 3) dasselbe bewirken, nämlich den Effekt der Ostfriesischen > Nationalflagge (schwarzer Adler auf schwarzem Tuch). ;o) Ich wusste schon immer von meiner geheimen Vorliebe für die Ostfriesen :-/ Ich sehe jetzt schon mal hübsche Farben - irgendwo habe ich wohl immer noch einen bug. Vielen Dank erstmal :-)
Beitrag #5896941 wurde von einem Moderator gelöscht.
c-hater schrieb: > Ich habe geschwankt, ob ich das tue. Ich hatte mich vorläufig dagegen > entschieden, aber die Option offen gehalten. Auf Grund der Diskussion hier: Beitrag "Ergebnisse einer FFT zusammen fassen" Habe ich mich entschieden, die Sache jetzt wenigstens in Teilen zu veröffentlichen. Hier erstmal der verwendete Halbbandfilter. Im Design habe ich die rechenzeitkritischen Sachen hervorgehoben, der Asm-Code zeigt meine Lösung dafür. Das Bild für die Implementierung zeigt, was neben dem Verlust durch den grundsätzlich schon recht "schwachen" Filter noch durch die 16Bit-fixed point-Implementierung verloren geht. Wirklich nicht gut, aber offensichtlich doch gut genug...
Apollo M. schrieb: > Wo kommt der Filterdesigner (HB_Design) her? Das Originalprogramm hatte ich mal irgendwo im Internet gefunden. Leider weiss ich nicht mehr wo und finde es jetzt auch nicht wieder. Bei dem gezeigten Programm handelt es sich allerdings um eine fehlerbereinigte und auf meine Bedürfnisse angepasste Neuimplementierung. Geschrieben in VB.net von mir selber.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.