Das wäre noch eine Überlegung, bin ich jetzt so noch nicht drauf gekommen, dass der include da was versauen könnte. Danke für den Tipp. Falls noch jemand Tipps hat immer her damit
Beiträge von Fightclub
-
-
Beim Lookup habe ich schon nachgeguckt, laut Hilfe hat der Parameter von Lookup den Wertebereich eines Word, daran sollte es also nicht liegen. Dass er da aus irgendeinem Grund das Multiplexing verzkloppt habe ich mir auch schon gedacht, ich kann mir nur nicht erklären wieso. Das Muster wurde auch schon überprüft, das scheint ok zu sein (ja, das wurde mit dem Editor erstellt, aber mehr schlecht als recht ;)). Die Vermutung mit dem zu großen Offset hatte ich auch schon, aber wenn man das mal durchrechnet sind das 50 Bilder, mal 20 Byte, macht 1000 Byte. Selbst bei 500 Bildern sind das 10000 Byte, was immernoch ein sechstel des Wertebereichs eines Word ist.
Noch jemand eine Idee? -
Hallo zusammen,
zuletzt wurde ich von jemandem angeschrieben, der hier im Forum von Pesis 3x3x3 Cube gelesen hat und sowas in 5x5x5 nachbauen wollte. Ich wurde gebeten die Software dafür zu schreiben. Im ersten Moment dachte ich mit ein paar Schleifenbedingungen ändern wäre die Sache gelaufen. Allerdings gibt es jetzt folgendes Problem: Die ersten ~50 Bilder laufen problemlos durch. Dann fängt der cube plötzlich an vollkommen rumzuspinnen. Er wechselt zu irgendwelchen abstrusen Mustern, wo manche LEDs heller leuchten als andere. Die Bilder bleiben dann auch deutlich länger als eigentlich eingestellt bestehen. Zuerst dachte ich an einen Variablenüberlauf in einer der Zählervariablen. In die Richtung habe ich auch schon einiges geändert, aber jetzt bin ich mit meinem Latein leider am Ende. Zusätzliches Problem: Der Cube steht nicht bei mir, daher kann ich auch nicht mal eben testen, wie sich das Problem beheben lässt.
Code und Musterdatei finden sich im Anhang, ein Video des ganzen findet ihr unter http://www.youtube.com/watch?v=v_P5UpPkinU.
Wenn jemand eine Idee hat wo der Fehler liegt, bitte her damit.Viele Grüße und schonmal vielen Dank
Fightclub -
@Foo: Das gilt aber auch nur für die größeren Atmega. Bei den kleinen ATTiny sind nämlich VCC und GND genau punktsymmetrisch rechts oben und links unten. Wenn man den falsch reinsteckt hat man den Salat.
Der Widerstand ist wirklich eine gute Idee, wobei ich nicht weiß wer eher schlapp macht. Der AVR, wenn er die 40mA max. Output Current per Pin rauswirft oder die LED wenn sie mit 40mA gebrutzelt wird. -
musst du ihn feste andrücken, am besten mit einer ic zange
Man kann auch für alles Geld ausgeben
oder einfach mit dem daumen, bis er bündig auf dem sockel aufliegt
Besser noch mit Daumen und Zeigefinger oder direkt mit dem Handballen, dann drückt man schön gleichmäßig
Welche Aufgaben haben eigentlich die drei kleineren IC's?
Da ich leider grade zu faul bin 3 Stockwerke runterzulaufen kleiner Tipp: Schau auf die Aufschrift des ICs und tipp sie bei http://www.datasheetcatalog.com ein und schau dir an was das fürn Teil ist
-
NikWin Wie mit der IC-Fassung? Fassung durch die Löcher stecken, alle Pins anlöten und Atmega von oben feste reindrücken.
-
Hi Spyder,
habe dir vor einigen Tagen mal ne PM geschrieben wegen der Sammelbestellung, allerdings nix mehr gehört, wenn du mir kurz bestätigen könntest dass ich auf der Liste stehe wäre das sehr nett
-
Bist du sicher, dass sie defekt ist? Eventuell hast du sie falsch rum gepolt. Habe extra nochmal durchgemessen wie rum die gepolt sind bevor ich sie eingelötet habe. War auch gut so, sonst hätte ich die roten falsch rum eingelötet
-
Kann ich die SMD-Leds auch einfach mit Lötzinn verlöten? müsste doch eigentlich gehen?
Klar, ich löte immer mit Zinn, gestern das Board zusammengelötet, ging 1a. Ein vernünftiger Kolben (habe einen Ersa mit Bleistiftspitze) und dünnes Zinn (z.b. 0,5mm) sind allerdings Pflicht.
-
Du könntest auch, wenn du Timer1 benutzt den OCR1A fürs anschalten und den OCR1B zum abschalten und anschließenden Reset des Timers (TCNT1 = 0) benutzen. Je größer der Abstand zwischen den beiden, desto länger is die LED an, je höher der Wert für OCR1A, desto länger die Aus-Zeit.
-
Fightclub: Das stimmt schon mit der logarithmischen Empfindlichkeit, eben genau daher braucht man ja die hohe Auflösung! - eine reine Korrekturkurve nützt hier leider gar nix, natürlich wird der Verlauf dann insgesamt linearer, aber er bleibt stufig, bzw. ist im unteren Bereich durch Rundungsfehler *noch abgestufter* - daher musst Du z.B. die 8 Bit Eingangswerte in 12 Bit Ausgang "übersetzen".... siehe dazu auch diese Versuche hier
Also eine injektive Abbildung aus dem 8bit-Wertebereich auf den 10-bit Wertebereich soll ein holpern vermeiden?
Objektiv kann das ja garnicht sein, subjektiv hab ich das natürlich nicht getestet. Aber ich tippe jetzt einfach mal ins Blaue, dass die Log-Tabelle das im Unteren Bereich fast noch surjektiv oder bijektiv abbildet und dann nach oben hin injektiv wird. Oh gott ich glaub ich mach mir da zu viel Gedanken
10 Bit ist keine so blöde Zahl, die reicht nämlich gerade, um die 8 Bit Eingang stufenlos umzurechnen
Naja, für *umrechnen* haben 10 Bit eigentlich keinen Vorteil, da der AVR aus allen Rechenoperationen mit mehr als 8bit eh mehrere Operationen macht.
Ach Pesi, krieg ich nochmal ne Mail?
-
Also 8bit PWM sollten eigentlich für ein stufenloses faden reichen. 16bit ist ziemlich übertrieben und 10bit irgendwie eine komische Zahl
Wenn dann eher 12Bit, dann hat man ein Byte und ein Nibble pro Wert.
Dass es im unteren Bereich "holprig" wird liegt nicht am PWM, sondern am menschlichen Auge. Der Helligkeitsunterschied ist bei PWM bei allen Stufen gleich, allerdings nimmt das menschliche Auge das nicht linear wahr, sondern eher logarithmisch, weswegen es am Anfang deutlich "holpriger" erscheint als im oberen Bereich. Um dem entgegenzusteuern gibt es aber einige Softwarelösungen im Netz die das ganze mit Hilfe einer Logarithmus-Tabelle ausgleichen. Einfach mal nach googlen, dann gehts auch mit 8bit subjektiv linear -
Wenn dein Obi milchiges Plexiglas hat wäre das eine Möglichkeit. Ansonsten im Internet bestellen, wobei dann die Versandkosten meist etwas höher sind. Für die Anwendung empfiehlt es sich übrigens nicht spezielles LED-Plexiglas (truLED) zu benutzen, da du dadurch eine Mischung zwischen den einzelnen Kammern hast, die ja nicht gewünscht sind.
-
Je nach Hersteller des 7805 wird Absolute Maximum Input Voltage sogar mit 20V angegeben (KEC), bei den meisten findet sich jedoch die Angabe 35V. Mit 40V würde ich das Ding also auf keinen Fall betreiben!
-
Meiner ist morgen fertig.
Meiner muss noch bis SA warten, ist aber heute auch angekommen. Morgen ist aber erstmal was anderes zu tun
-
Dito, die Schatten die du erwähnst sieht doch selbst meine Oma vor der Augen-OP aus 10m Entfernung
Zitatwenn ich ein trennwand ziehe, dann wird ein schatten entstehen
Du hast erraten wie die gemacht sind. Anders kriegst du auch nie die harte abgrenzung und die quadratische Fläche, die LED strahlt ja radial ab.
-
Hmmmm, also ich dachte das Bascom in der .Dat-Datei eines jedes µC die Register quasi übersetzt. Und wenns da falsch übersetzt ist dann gehts nicht.
Hast du denn mal geschaut obs TIMSK0 in Bascom nicht gibt?
anfange dann kann ich mich bald gleich hinsetzen und lernen wie man mit ASM proggt.
Dann lern lieber C
-
Bei normaler UART Kommunikation wird das ErrorFlag eigentlich eher selten benutzt. Du kannst FrameErrors abfangen, aber die meisten tun das wohl nicht. Ich glaube aber immernoch wie guenter, dass die Register im mega644 andere Namen haben, das hängt aber dann nicht mit Bascom zusammen, sondern ist ein generelles Problem in allen Sprachen.
-
k.A., ob das nur funktioniert, wenn in der aufgerufenen Routine dann Inline-Assembler steht und man die dort benutzten Register sichert, es bei Bascom aber nicht geht, weil das z.B. bei diesem Vergleich, schreiben in's Array etc. andere Register/RAM-Bereiche (den internen Kram eben) überschreibt, die dann anderswo wieder gebraucht werden..?!? - falls nicht, würde diese "Nosave"-Option hier halt auch gleich mal ca. 100 Takte sparen.... was immerhin ca. 5x so viel ist, wie die *komplette* DMX-Routine in Assembler..
Ich befürchte, dass der AVR selbst für Zuweisungen auf Registern rumreitet. Bei Additionen sogar ziemlich sicher, vorallem wenn die Var. mehr als 1 Byte haben. D.h. du wirst da kaum drum rumkommen. Leider...
Die Aus- und Eingänge habe ich natürlich auf die anderen beiden Controller angepasst. Irgendetwas muss an denen besonders sein das es nicht funktioniert. Das Ergebnis bei dem Mega644 und dem Mega644p ist genau das selbe, die LEDs flackern nur komisch rum sobald was am Rx der UART ankommt.
Was mir dazu spontan einfällt wäre, dass die Register eventuell nicht bei beiden Typen gleich heißen. Keine Garantie, aber überprüf mal zur Sicherheit ob die Register wirklich bei beidem vorhanden sind und die Bits im Register den gleichen Namen tragen.
-
die IC-Sockel sind hier wohl gar keine in dem Sinn (also nicht für ICs gedacht), man sieht da ja einen Kondi und zwei Widerstände drinstecken auf dem Foto - das ist quasi ne einfache Form eines selbstgebastelten Steckbretts...
Die Teile heißen aber trotzdem so
Siehe Reichelt:
http://www.reichelt.de/?;ACTIO…6b66317ae6aef75792aadd581ich schätz' mal, da kann man halt die Leitungen (Rx, Tx, Handshake-Signale) abgreifen,
Mit Tx und Rx wirst du aber nicht viel anfangen können, das ist ja nur das modulierte Datensignal
Als ich hab mal geguckt und statt des Adapters hätte es auch ein Verlängerungskabel getan
Wie? Sind also die Pins der Fassung einfach an Das Kabel angeschlossen?
Was ist denn das fürn Schrott