Suchergebnisse

Suchergebnisse 1-20 von insgesamt 250.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

Hinweis kann nach Kenntnisnahme deaktiviert werden!

  • Zitat von Wasi: „Laufen dann alle 8 Strips gleichzeitig, oder werden diese nacheinader durchgeschaltet? “ Gleichzeitig nicht, da der AVR ja immer nur einen Datenstrom zur selben Zeit rausschicken kann. Bei 8 Strips à 30 LEDs liegt der Datenversatz zwischen dem ersten und dem letzten Strip bei unter 10 ms (wenn ich mich nicht verrechnet habe). Ich weiß nicht, ob man das wirklich mit bloßem Auge erkennen kann. Nette Grüße Rob

  • Mit "RB_CHANGEPIN" wechselt Du den Pin, mit dem der Datenstrom zu den LEDs gesendet wird. Der Farbspeicher wird also (wie sonst auch) vorbereitet und dann an den ersten Strip gesendet. Anschließend geht die "Pin-Wechslerei" los: - Umschalten zum zweiten Pin und Daten senden - Weiter umschalten zum dritten Pin und Daten senden - usw, bis alle 8 Strips mit Daten versorgt wurden Das Ganze legt man idealerweise in eine weitere Sub (ist eine gute Gelegenheit etwas Übung darin zu bekommen). Was Dein K…

  • Ok, dann hier noch was für die Zukunft Deine bisher gezeigten/gewünschten Effekte sind "wachsende" und "schrumpfende" Leuchbänder. Die Effekte (egal ob Deine For-Next Schleifen oder meine Cases) laufen nahezu immer gleich ab, nur einige Werte (auch Parameter genannt) ändern sich. Diese Parameter wären: - Wo (bei welcher LED) fängt der Effekt an (bei Dir bisher ganz vorne oder ganz hinten) - Wo (bei welcher LED) hört der Effekt auf (bei Dir bisher ganz vorne oder ganz hinten) - Wie schnell läuft …

  • Ok, wenn alle Strips immer das selbe anzeigen sollen, brauchen wir nur einen einzigen Farbspeicher (für 30 LEDs) und können am Ende mit "RB_CHANGEPIN" arbeiten. Dafür reicht das SRAM leicht. Ich hab die Schaltung jetzt auch mit einen Atmega8 aufgebaut. Beide Programme (V004 und V005) laufen bei mir. Also WENN dein ATmega8 mit 8MHz läuft, Du alles richtig angeschlossen hast (Taster schaltet Masse) und für eine ausreichende Stromversorgung gesorgt hast (kein Programmer liefert genügend Strom, um d…

  • Ok, nochmal zurück zu den Basics der Rainbow-Lib: - Die Config Rainbow Zeile hast Du gemacht. Dort wird unter anderem die Anzahl der anzusteuernden LEDs und der Ausgabepin festgelegt. - Es ist NICHT nötig, den Pin nochmals als Ausgang zu definieren. - Bevor irgendwas mit den RB_xxxx Anweisungen gemacht werden kann, muss dem Programm mitgeteilt werden, welcher Strip/Farbspeicher bearbeiten werden soll. Du hast im Programm nur einen Kanal angelegt (Config Rainbow = 1), daher kannst Du auch NUR "Rb…

  • Richtig, die Config Rainbow Zeile sorgt zusammen mit dem Auswählen des Strips (z.B. RB_SelectChannel 0) dafür, dass der Pin zum Output wird (kann man sich im Simulator anschauen). Es muss nicht nochmal zusätzlich mit angegeben werden. Ich seh gerade, dass bei meinem ungetesteten Code das "RB_SelectChannel 0" fehlt, bitte noch ergänzen, sonst gehts vermutlich nicht. Bei Deinen Ergänzungen zu Prog_Modi 1 und 2 sind noch Logikfehler drin. - Das "Effekt = 0" brauchst Du in diesen Modes nicht, da das…

  • Im Code vom letzten Post haben sich ein paar Copy&Paste Fehler eingeschlichen (Farbauswahl in den Cases 8, 10, 12 und 14). Hier der ausgebesserte Code: bascomforum.de/index.php?attac…2fdeff79b8eb20566c5d6afbc Nette Grüße Rob

  • Zitat von papaandreas: „Es ist der Code von "Bassist", so wie oben. “ Und genauso wie bei dessen Code fehlen die Infos zu den Include-Dateien. Was genau steht in Deiner Timer.inc, sowie in den anderen Include-Dateien? Deine Fehlermeldung tritt beim ersten Zugriffsversuch auf Timer0 auf. Vielleicht ist Dein Timer gar nicht konfiguriert?

  • Ich habs befürchtet, wieder mit Wait-Anweisungen. Dein Programm arbeitet nach dem Prinzip: - Mach Aufgabe 1 - Warte - Mach Aufgabe 2 - Warte - usw Die meiste Zeit vergeudet Dein Programm mit warten und ist in dieser Zeit kaum handlungsfähig. Viel besser (und standart) ist es, Programme möglichts schnell durchlaufen zu lassen. So kann man besser auf evt Änderungen reagieren. Das macht man nach folgendem Prinzip: - Prüfen, ob Aufgabe 1 jetzt zu erledigen ist. Falls nein, dann weiter im Programm - …

  • Zitat von Wasi: „Der folgende Code ist teilweise für die Unterprogramme und daher momentan nicht relevant. “ Doch! Dein Programm muss schließlich als "Gesamtpaket" laufen. Vor allem, wenn der Wunsch besteht, jederzeit die Unterprogramme wechseln zu können. Zeig bitte mal einen Beispielcode für eins Deiner geplanten Unterprogramme (Prog_Modi_x). Wenn Deine Unterprogramme richtig aufgebaut sind (kurze Durchlaufzeiten), reicht sogar der Debounce-Befehl vollkommen aus, um (nahezu) jederzeit von eine…

  • Ich glaube, Du würfelst hier einiges durcheinander. Wofür genau legts Du den Taster1 an? Wenn Dein Taster an PD2 angeschlossen ist und Du den INT0 aktivierst (beim Atmega8 ist das auch PD2), wirst Du im Code niemals ein "If Taster1 = 0 then..." brauchen, denn ein Tastendruck löst ja bereits den Interrupt aus. Hier solltest Du Dich für eine der beiden Optionen entscheiden (Taster per Interrupt erfassen oder zur Laufzeit abfragen). Und was die Konfiguration des Interrupts angeht: Das aufmerksame L…

  • Zitat von Wasi: „Hab ich das nicht damit gemacht? “ Nein. Du hast im Code: Taster1 Alias Pind.2. Das ist soweit auch in Ordnung. Aber mit dem anschließenden Taster1 = 1 macht der Compiler lediglich ein Pind.2 = 1 Zum Einschalten des internen Pullup Widerstandes musst Du aber das Port-Register beschreiben, nicht das Pin-Register. Daher -> Portd.2 = 1 , idealerweise nachdem der Pin als Eingang definiert worden ist

  • Und um den Pullup am Pind.2 einzuschalten, benötigst Du anstelle von "Taster1 = 1" ein "Portd.2 = 1"

  • Hallo Dieter, die LED-Indexe bei der Verwendung der Rainbow.lib waren schon immer 0-basierend (also erste LED hatte Index 0, zweite LED Index 1 usw). Config Base = 0 hat darauf keinerlei Auswirkung. Dennoch wundert mich es, dass es einen Error erzeugt. Sobald eine Config Rainbow und Config Base = 0 Zeile in einem Programm stehen, kommt der Error. Scheint vielleicht nur ein kleiner Bug zu sein... Nette Grüße, Rob

  • Hallo Dieter, standartmäßig ist die Anzeige der Errors im Code Explorer nicht eingeschaltet. Oft werden die dort gezeigten Fehler vom Compiler noch toleriert, sodass man den Code trotzdem kompilieren kann. Das kann mit dem nächsten Update von Bascom aber schon ganz anders aussehen, daher sollte man immer versuchen, alle Errors zu beseitigen. Um die Errors zu sehen, muss: 1. Der Code Explorer eingeschaltet sein (View -> Code Explorer) und 2. anschließend im Code Explorer mittels Rechtsklick das H…

  • Hallo Dieter, Ersetze bitte die Zeile 154 BASCOM-Quellcode (1 Zeile)durch BASCOM-Quellcode (3 Zeilen)So verschwinden schon mal 16 der 17 angezeigten Errors im Code-Explorer. Den verbleibenden Fehler (Array index out of bounds) hab ich noch nicht gefunden... Nette Grüße Rob

  • Das PORTB-Register kannst Du beschreiben und auslesen (wie viele andere Register auch). Du liest hier keinen anstehenden Pegel ein, sondern das, was Du vorher irgendwo im Programm mal da reingeschrieben hast

  • Woher weißt Du, dass Du "in der Main" hängen bleibst? Ich hab versucht, mich in Deinen Code einzuarbeiten, er ist aber für mich zu unübersichtlich (gut, dass muss jetzt nichts heißen) und hat zu viele unlogische Konstrukte (oder ich seh den Sinn dahinter nur nicht). Zum Beispiel in Deinem "Case 99" (Zeile 813): BASCOM-Quellcode (16 Zeilen) - Variable A wird erhöht, wenn PINB.2 low ist (PINB.2 wird hier wohl low sein, denn das ist die Bedingung, um überhaut beim Label "Menue:" zu landen) - Dann p…

  • Bei längeren ungeschirmten Datenleitungen, die auch noch parallel zu den "Spannungsversorgungskabeln" verlaufen, wäre mir die serielle Übertragung ohne Checkssummenprüfung zu unsicher. Bin jetzt kein Elekriker/Elekroniker, aber unter Umständen werden vielleicht auch noch die Flanken verschliffen und es kommt schnell zu unerwünschten Effekten. Die Idee von Mitch64 mit der Puls-Längen-Messung wäre mit Pulseout und Pulsein recht einfach umzusetzen (oder "von Hand" programmiert mittels Timer). Mit d…

  • Zitat von mega: „Mit dem Drehencoder möchte ich die Ein- bzw. Ausschalttemperaturen verändern “ Bedenke, dass Du in diesem Fall die Ein- und Ausschalttemperaturen auch im EEPROM hinterlegen solltest, da andernfalls bei einem Stromausfall/Neustart alle geänderten Temperaturwerte wieder verloren wären. Netten Gruß, Rob