Suchergebnisse

Suchergebnisse 1-20 von insgesamt 257.

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!

  • Anzeige im Editor

    R2D2 Bastler - - Hauptforum BASCOM-AVR

    Beitrag

    Schau mal hier bascomforum.de/index.php?threa…usgegraute-schrftart-dar/

  • PWM Problem

    R2D2 Bastler - - Hauptforum BASCOM-AVR

    Beitrag

    Hast Du schon mal die Hardware getauscht (vielleicht AVR/Leiterplatte defekt?) oder die Peripherie (vor allem an PD6 -> Ventil für Anpressrolle) abgeklemmt? Soft-PWM bei einer gewünschten Frequenz von 250 Hz und einer 9-Bit Auflösung würden 128000 (!) ISR Aufrufe pro sec bedeuten (wenn ich mich nicht verrechnet habe).

  • Die Schalter sind in einem Widerstandsnetzwerk integriert (siehe Bild, Quelle: Arduino-Forum). Wenn Taste 5 (RIGHT) zu Programmbeginn gedrückt wird, wird der Analogeingang praktisch auf Masse gezogen. Dies ist das "Startsignal", um die Analogwerte der restlichen Taster einzulernen und abzuspeichern (Sub Taster_cal). bascomforum.de/index.php?attac…85ee52486788cde56f1b358f1 Nette Grüße, Rob

  • Fusebit ext. Quarz

    R2D2 Bastler - - Hauptforum BASCOM-AVR

    Beitrag

    Bin zwar kein Profi, antworte trotzdem. Welche Fusebits (CKSEL[3:0] + SUT[1:0]) wie eingestellt werden müssen, ist von AVR zu AVR unterschiedlich. Die Infos dazu befinden sich in den Datenblätter unter "System Clock and Clock Options". Auch sehr hilfreich kann der AVR Fuse Calculator (engbedded.com/fusecalc/) sein. Welchen Quarz genau möchtest Du an welchen AVR anschließen?

  • Adc Wert in % ausgeben

    R2D2 Bastler - - Hauptforum BASCOM-AVR

    Beitrag

    Ich hab in einem früheren Projekt mal eine "Map-Funktion" verwendent (von den "Arduinorianern" geklaut) Siehe arduino.cc/reference/de/language/functions/math/map/ Ist vielleicht für Deinen Anwendungfall etwas overpowered, funktionierte aber bei mir problemlos. Im folgenden Demo-Programm wird: - 890 zu 0 - 790 zu 100 - alle Werte dazwischen entsprechend berechnet - Werte unter 0 werden abgefangen (Ergebnis immer 0) - Werte über 100 werden berechnet und angezeigt (Ergebnisse wie z.B. 105 % möglich…

  • SSCOM kenn ich leider nicht, aber das folgende Programm funktioniert zumindest mit dem Bascom Terminal Emulator (Config Input1 Zeile geändert und ein paar "Prints" eingefügt, um das Ergebnis angezeigt zu bekommen). BASCOM-Quellcode (68 Zeilen)

  • In Deinem geposteten Code werden zu keiner Zeit Daten über Deine Ausgabepins (Dataout Alias PortC.0, Clk Alias PortC.2, Latch Alias PortC.1) gesendet. Der 74HC595 wird daher nicht bedient.

  • 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…85ee52486788cde56f1b358f1 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"