- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 17

Thema: SHIFTOUT mit AVR-Clock

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Kehnert
    Beiträge
    1.159
    Ohne Programmänderung hat bei meinem BASCOM-Simulator heute plötzlich
    die Timerfunktion funktioniert. Leider war die Wiederholgenauigkeit teilweise
    nicht akzeptabel. Heraugekommen sind jedenfalls Werte, welche eine viel
    zu hohe Taktzahl für alle bisher avisierten Lösungen zur Ansteuerung der
    RGB-DIGITs zur Folge haben (Jenseits von Gut und Böse). Ich verzichte aus
    Zeigründen daher auf einen Hardwaretest und die Nutzung (trotz anfänglicher
    Euphorie) der RGB-DGITs. Werde eine andere effektvolle Anzeigenform finden
    VG Micha
    Was brauche ich für Werkzeug - in dieser Reihenfolge seht ihr es:
    Vorschlaghammer, Notebook, BASCOM, Lötequipment, Rohrzange, Bolzenschneider ...

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Wenn du selber mit dem Timing nicht zurechtkommst, dann würde ich mir mal die Rainbow-Lib (RB_...) ab Bascom Version 2.0.8.0 ansehen. Die ist von einem cleveren Programmierer genau für die WS2812 Chips gemacht worden.
    Ist zwar eigentlich für RGB Stripes gedacht, wird aber mit deinen RGB Digits genau so funktionieren.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.242
    Ich hab mir jetzt mal einen anderen Beitrag mit den Anzeigen von Dir angeschaut.
    Hier geht es ja nicht um eine SPI, sondern um eine Codierung, bei denen ein 0 Bit und ein 1 Bit lediglich eine andere Pulsweite aufweisen.
    Das würde ich versuchen mit einem Timer zu realisieren.
    Bei einem 20MHz Prozessortakt würde ein Timer für ein Bit genau 25 Prozessortakte für ein komplettes Bit brauchen.
    Wenn man jetzt einen Timer mit einem CTC und dem Compare A Timer mit 24 proggt und das Comparematch B mit dem Wert für die 1 oder 0 versieht ( z.B. 17 ),
    werden gültige Pulslängen ausgegeben. Der Comparematch B müsste dazu im Fast PWM Modus arbeiten.
    Der Comparematch B Wert müsste im Comparematch Interrupt A upgedatet werden.
    Die Crux dabei ist, das die Updaterei innerhalb von ca. 7 Prozessortakten geschehen muss.
    Das ist auch in Assembler keine leichte Aufgabe.
    Alle Register sichern wie Bascom das üblicherweise macht wird wohl nicht möglich sein.
    Ich würde es mit einem inkrementierenden X Register und einer Tabelle mit einem Tabellenplatz ( = 8Bit ) pro auszugebenden Bit in Assembler probieren.
    Die benutzten Register dürfen dann aber von Bascom nicht mehr verwendet werden und exklusiv für die Biterzeugung des Displays arbeiten.

    Alternativ könnte man das Gleiche auch im Comparematch B Interrupt versuchen.
    Allerdings muss man dann peinlichst darauf achten, das das Comparematch B Register nicht zu früh geändert wird.
    Dann hätte man für die Updaterei 16 Prozessortakte.

    Die Aufgabe bleibt aber weiterhin sportlich.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Kehnert
    Beiträge
    1.159
    Danke erstmal für die vielen Hinweise. In der Tat, das Projekt
    habe ich noch nicht ganz aufgegeben. Ich werde mich mal
    "back to the roots" begeben und der AVR wird dann nur noch
    für die Bereitstellung der für eine 8-stellige Anzeige notwendigen
    24-Bit-Datenpakete für die Segmente sorgen müssen, neben
    seiner egentlichen Aufgaben. Der Rest wird hardwaremässig
    erledigt. Die Impulse (400nS für L und 850nS für H) werden dann
    nicht mehr von 2 MMVs (RC-Abgleich entfällt) erledigt, sondern
    mit einem synchronen Binärzahler mit umschaltbaren Datenmuster
    erzeugt. Entweder durch unterschiedliche Voreinstellung oder
    gesteuerte UND-Abgriffe mittels Gatter, beides durch Umschaltung
    von H/L. Diese Impulse werden einem 24-Bit-Schieberegister, welches
    mit dem 1/25 Takt des Binärzählers (50nS/1250nS) bedient wird
    entnommen. Dieses Schieberegister wird während der 50000nS-Pause
    parallel über 3-Byteports geladen. Anstelle des 20MHz-Oszillators
    für die Anzeigehardware, kann dann auch problemlos ein entprellter
    Handtaster für den Funktionstest genommen werden.
    VG Micha
    Was brauche ich für Werkzeug - in dieser Reihenfolge seht ihr es:
    Vorschlaghammer, Notebook, BASCOM, Lötequipment, Rohrzange, Bolzenschneider ...

Ähnliche Themen

  1. Probleme mit Shiftout
    Von rauf81 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 22.05.2011, 16:31
  2. SHIFTOUT mit externem Takt möglich?
    Von stefan_Z im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 27.11.2007, 12:10
  3. ShiftOut und ShiftIn in Assembler einbinden
    Von Ruppi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 31.12.2005, 17:37
  4. Verständnisfrage shiftout / HC595
    Von Jürgen200 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 10.01.2005, 13:25
  5. Shiftout geht nicht?
    Von x-ryder im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 01.12.2004, 16:05

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test