Beiträge von BadDeath

    Zitat

    Wirkungsgrad: 90 dB

    Da du ja "selbst Erfahrung im Boxenbau" besitzt, frage ich mich: Meinst du nun den Wirkungsgrad oder den maximalen Schalldruck? Der Wirkungsgrad ist einheitslos, da er einfach nur das Verhältnis aufgenommenen und umgewandelter Energie beschreibt und ist bei elektrodynamischen nur einige Prozent groß....


    Tut mir leid für den Off-Topic, nur da du dich hier als Profi darstellst, wollte ich noch mal nachfragen.

    Ja, 'Tschuldigung, es sollte 65536 heißen. Kannst aber auch gleich alles in Hexdezimal schreiben:


    Code
    R = Color And &HFF&
     G = (Color And &HFF00&) \ &H100&
     B = (Color And &HFF0000) \ &H10000

    Achja, VB6.... das war mein Einstieg ^^


    Mach es doch so, dass du einfach ein fertigen Farbkreis (Google) in eine Picturebox legst und dann beim Mousedown-Event die Pixelfarbe ausliest mit:

    Code
    Color = Pic.Point(x, y)
    R = Color Mod 256
    G = ((Color And &HFF00) / 256&) Mod 256&
    B = (Color And &HFF0000) / 6553


    Aber wäre es nicht besser auf VB.net umzusteigen? Man hat dann zwar die Abhängigkeit vom .net-Framework, aber 2.0 sollten ja nun die meisten haben und neuere braucht man dafür nicht... Dann hast du auch gleich deine Fenster im zeitgemäßen Aussehen (Buttons, Progressbars,..), ohne dich mit UserControls und Manifest-Dateinen rumzuägern ;)


    Oder aber gleich in Qt schreiben. Das ist ein GUI-Framework für C++ und läuft unter Win, Mac OS, Linux, Unix, Symbian, Windows CE, ......Google Earth, Skype, VLC, etc. wurden auch damit erstellt und die Community ist riesig.

    Ich würde gerne den halben Meter von thecrazyone + einen weiteren Meter = 1,5m. Adresse ist ja bekannt, müsstest mir dann nur noch deine Kontodaten geben ;)
    Gibts zu den 1,5m auch diese praktischen Stecker wie bei dem Sample?


    Verzeiht die späte Antwort.
    PS: Glückwunsch Pesi, dass es eigentlich doch ganz einfach geht. Ich werde das dann wohl doch danach erstmal in reinem C++ probieren und wenn nichts hilft muss ich mir wirklich ASM aneignen *graus* xD

    Klar, der kann auch gleich an Pesi gehen. Ich habe nicht mehr wirklich eine Idee, woran es bei mir liegen könnte... Wenn Pesi mit dem perfekt klarkommt, würde ich wohl auch was bestellen :D


    Ich habe es eben mit 3x Timings probiert: Der Strip an sich gibt ab und zu mal falsche Farben aus, aber auf dem Oszi sieht man nur High-Low-Pegel, die seeehr dünn sind, so max. 2mm. Wenn du willst, Pesi, geht der gleich morgen raus. Musst mir nur deine Adresse schicken.


    Dann ist das ja ein richtiger Wander-Strip ;)

    Nabend, da bin ich wieder. Tut mir leid, dass es solange gedauert hat.... Aber vergessen habe ich das nicht ^^


    So, ich habe momentan leihweise ein analoges 20MHz-Oszi (Hameg HM-203) da mit einem 1:1 Tastkopf (da der von einem anderen Oszi war musste ich den DIN-Stecker abschneiden und einen BNC-Stecker dran löten; sollte aber so ungefähr passen mit Schirmung und Eigenschaften).
    Allerdings bekomme ich kein brauchbares Bild hin?! Sind die 20 MHz zu wenig? Ich werde mal die Zeiten erhöhen und dann nochmal gucken.

    Aref darf nicht mit Vcc verbunden werden sondern mit einem 100nF Kondensator an GND.

    Warum denn das bitte? Aref ist die Referenz-Spannung für die ADCs. Wenn diese auf GND liegt, lässt es sich damit ganz schlecht Spannungen messen. Das hat er hier zwar nicht vor, aber trotzdem.... In der Regel wird da einfach VCC angelegt, um zb nen Poti auszuwerten, das praktischerweise zwischen VCC und GND hängt; mit dem Abnehmer an einem ADC.

    Bei der Gammastrahlung hättest du aber den Vorteil, dass das Essen auch irgendwann von alleine leuchtet und die den Kühlschrank sogar autark mit dem kleinen Reaktor betreiben könntest :thumbup:


    Und macht nicht grünes Licht glücklich? Egal, man kann ja auch Regenbogen-RGB-LEDs nehmen, dann hat man es immer bunt und es sieht immer anders aus, so dass man sich vllt doch an was ranwagt, was vorher bei anderen Farben eher ungesund aussah.

    Und danach wird das Gähnen verboten? Weil man ja damit meinen könnte, dass sein Umfeld und die Mitmenschen einen ja langweilen könnten?
    Warum sollte man bitte etwas völlig natürliches verbieten, was man oft einfach nicht mal drei Minuten bis zur nächsten Toilette unterdrücken kann? Und dann find erst mal eine, wenn man z.B. gerade in der S-Bahn o. Ä. sitzt....


    Dass man es, auch im eigenen Interesse, möglichst diskret machen sollte, darüber sind wir uns, denke ich, einig.

    Wieso sollten die Lebensmittel "bestrahlt" werden, wenn der Kühlschrank zu ist und dann womit? Licht oder Gamma-Strahlung? ;)
    Aber ich glaube da sollte lieber weißes Licht drin bleiben; jedenfalls kann ich mir das nicht so recht vorstellen, wie "lecker" das alles mit völlig falschen Farben aussähe. Stelle dir bloß mal ein Bund Möhren in blauem Licht vor, das sieht sicher etwas komisch aus und lässt doch gleich den Appetit schwinden, nicht?

    Zitat

    Ja, hier ist wohl die Bezeichnung etwas verwirrend - das ist eher ein "Latch"-Signal, also hier werden die Daten dann übernommen... er muss das aber erkennen, würde er nicht, könntest Du die Dinger gar nicht ansteuern (bzw. nur ein Mal), weil die Chips sonst in alle Ewigkeit die Bits weiter durch schieben würden...


    machst Du jetzt eigentlich immer noch nach dem Reset die Leitung wieder High, oder lässt Du sie auf Low..?

    Nein, ich setze sie einfach auf LOW und dann lasse ich die Zeit vergehen und dann fängt es erst wieder mit dem ersten Bit des neuen Durchlauf an.


    Zitat

    Ich meinte eben, ne Low-Phase einbauen, die deutlich länger als die aus dem Datenblatt, aber eben deutlich kürzer als der Reset ist - also irgendwas zwischen 4 und 16 µs

    Das ist ja komisch. Wenn ich die vorhin genannten Timings für den Highspeed-Modus nehme und 4µS-Reset, dann blinkt nichts, im Lowspeed-Modus aber schon. Allerdings kann man das auch vergessen, da die Farben dann flackern und wenn nur ein Pixel an ist, die anderen aber nicht, die dann doch wieder blinken.


    Naja, also wenn man die Pixel nicht ausmacht, gehts ja eigentlich schon recht gut :rolleyes:

    Hey, danke fürs Messen! 8o


    Ich habe nun (theoretisch) folgende Zeiten:


    TM1804 Highspeed:
    - "1" = 938 ns High; 562,5 ns Low
    - "0" = 375 ns High; 1125 ns Low


    TM1804 Lowspeed:
    - "1" = 1875 ns High; 625 ns Low
    - "0" = 375 ns High; 2125 ns Low


    Genauer bekomme ich das mit dem 16 MHz-Quarz nicht hin, was aber eigentlich auch reichen sollte. Trotzdem blinken die noch immer.... In zufälligen Farben und Helligkeiten, mal der Pixel, dann der Pixel, als völlig unvorhersehbar.... Das ist doch komisch?! Aber beide Geschwindigkeitsmodi lassen die Farben wie gewünscht leuchten.


    Komisch sind eben die Timings von dem Controller, die weichen ziemlich von denen aus dem Datenblatt ab.. Ich bin aber immer noch der Meinung, dass dein Streifen eigentlich im Highspeed-Modus läuft, da Pin 7 eben unverbunden ist, wenn ich die Ausrichtung des Chips richtig sehe:


    [gallery]2491[/gallery]
    PS: Schönes Oszi habt ihr da in der Uni (oder wo das war) ^^ Ich hätte eventuell erst nächste Woche Donnerstag an ein funktionierendes Oszi zu kommen, aber bis dahin brauchst du sicher wieder den Streifen, oder?

    So, da melde ich mich wieder.
    Das mit dem Bitshifting mache ich später, erstmal muss der Rest richtig gehen ;)


    Also ich habe nun nochmal die T0L- und T0H-Zeiten um je +-3 NOPs und auch mit +-2 und so, aber die blinken noch. Dann habe ich probiert zwischen den Bits Pausen zu machen, auch nix, nichtmal mit 6x NOP, was eigentlich lang genug sein müsste (411ns).
    Wir haben heute auf Arbeit noch ein altes Oszi (C1-94, von '85 aus der UdSSR xD), aber leider bringt das kein Bild mehr.. Die Glühkathode glüht aber noch und die Power-On-LED (musst mit die erste LED gewesen sein....) leuchtet auch noch. Nun ist nur die Frage, ob die Beschleunigungsspannung (laut Internet bei dem bei dem Oszi 2 kV) oder die Ablenkung fehlt; aber das ist ein anderes Thema.


    Und wie meinst du das mit dem "längeren aber kürzeren Reset-Puls"? Widerspricht sich das nicht ein wenig?
    Zu deiner Vermutung: Es scheint einzig die Länge von T0H entscheidend sein. Das hier geht auch, nur flackert ein Pixel dann mal nach 2 Sekunden oder so.


    Selbst das geht, obwohl das High-Bit KOMPLETT falsche Timings besitzt, theoretisch:

    Code
    void HighBit()
    {
      sbi(PORTD, pin);
      __asm__("cli\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t");
    
    
      cbi(PORTD,pin);
      __asm__("nop\n\t" "nop\n\t" "nop\n\t"  "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "sei\n\t");
    }


    Ich verstehe die Welt nich mehr... vorher kam nix zu stande wegen falscher Zeiten und nun stelle ich fest, dass die eigentlich völlig anders als im Datenblatt sein können?!


    Und die Farben werden auch ohne Reset-Puls übernehmen, muss ja, der ja bei seinem Auftreten die Bits eigentlich wieder aus dem Chip gelöscht werden sollten; eben restettet.


    PS: Wie meinst du das eigentlich mit einem ganzen Port? Willst du 8 Streifen parallel nutzen oder wie? Der TM1804 erwartet ja eben serielle Daten, wie auch sonst durch eine Leitung?


    PPS: Wenn es ganz schnell gehen soll: Bei mir gehts auch mit diesen Zeiten noch, bei kürzeren gehts dann aber nicht mehr:

    Ja, ich kann nun ohne Probleme alle 5 Pixel einzeln ansteuern. Nur wenn ich alle mit RGB(0,0,0) und die Mainloop ohne delay durchrattern lasse, blinken die Pixel leicht und willkürlich bunt umher...
    Nun habe ich auf Arbeit mein Notebook-Netzteil vergessen und kann nun nicht wirklich damit heute abend weiter machen :cursing: Aber werde dann erstmal den typischen Farbverlauf machen und dann mein eigentliches Vorhaben testen. (Darf ich den bitte bitte bitte noch über's WE haben?)


    Achso, und kennt jemand ne Idee das hier auch ein wenig schöner zu lösen:

    Puuhhh, ich scheine es doch geschafft zu haben!! Es sind wirklich die Zeiten aus dem Datenblatt (ich habe das von Titan Micro Electronics) zu halbieren. Das hatte ich gestern eigentlich auch schon gemacht, bildete ich mir ein, aber naja, nun gehts :thumbup:


    Für, die es interessiert:



    Nun geht allerdings die Reset-Funktion noch nicht, aber das denke ich bekomme ich auch noch hin, oder hat jemand schon ne Idee? Mit versch. Zeiten wie 12us, 20us, 30us und so habe ich es auch schon probiert.


    Und achja: Zumindest ist bei dem Strip (eigentlich der von 2bl) Rot und Grün vertauscht :rolleyes:


    Danke nochmal an Pesi und an 2bl!

    Ja, auch wenn ich nur Nullen sende, sind alle weiß. Ich habe es nun mit versch. Timings probiert, T0H länger/kürzer T0L länger/kürzer, T0 genauso wie T1 - aber es will einfach nicht. Man hat ja auch +-150ns Toleranz, also sollte ein NOP nun mit den 62,5ns soviel aus machen.


    Hätte ich ein Oszi, könnte ich ja mal gucken, wie lang die Bits nun wirklich sind, die der ATmega rausschickt. Aber diese kurzen Momente kann ich leider mit nix messen. Und nen Logik-Analysator habe ich erst recht nicht.



    Edit: Also ich habe mal eben geguckt und meiner Ansicht nach ist der Pin SET am TM1804 unverbunden, schwingt also frei?! Nach der Übersetzung des Datenblattes zu dem Pin heißt es "SET-Modus eingestellt ist auf VDD nehmen: Low-Speed-Modus; besetzen: High-Speed-Modus". Also wenn er auf LOW ist, ist der High-Speed-Modus? Somit müsste der nicht verbundene Zustand ja als LOW gelten und die Timings wären nach http://forums.auschristmasligh…a44ec3be460e9b679#msg5656 die Hälfte.


    Nun blinken alle Pixel irre schnell und bunt umher, wenn ich einfach nur Nullen durchschiebe. Sende ich bspw. RGB(0,255,0), kommt zu dem bunten Rumgeflackere noch ein statisches Weiß dazu. Bei nur Einsen ist wieder einfach alles nur weiß, das läuft wie gehabt ^^

    Dann muss ich mir wohl doch mal Assembler genauer ansehen - schaden kann es ja nicht... ;)


    Muss man für "cbi PORTD, 3\n\t" noch PORTD definieren? Der Comiler spuckte mir immer das hier aus:

    Zitat

    /tmp/cc3I8OVF.s: Assembler messages:
    /tmp/cc3I8OVF.s:619: Error: constant value required

    Nun habe ich es damit probiert: Sollte ja eigentlich auch schnell genug sein:


    Code
    void HighBit()
    {
      PORTD = B00001000;
      __asm__("cli\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t");
    
    
      PORTD = B00000000;
      __asm__( "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" "sei\n\t");
    }


    Nur bringe ich damit gerade mal alle Pixel auf weiß - aber ohne Flackern!! Ich komme dem Ziel näher, wenn auch in sehr kleinen Schritten.


    PS: Mittlerweile ist's Pin 3, also schon mal ein "Fehler", der ausgeschlossen werden kann.


    Aber ich danke bereits!