rgb ws2812 2 Streifen an verschiedenen Ports in Tiny

    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!

    • rgb ws2812 2 Streifen an verschiedenen Ports in Tiny

      Hallo
      Ich stehe mal wieder auf dem Schlauch...
      Ich habe einen RGB-STreifen mit den ws-2812 mit einem Ausgang an einem 4513 zum laufen bekommen. Nun war ich todesmutig und wollte einen 2. Ausgang für einen anderen Streifen paralell nutzten, da kommt aber in meiner Überlegung ein "ERROR":

      '************************************************ Fh 20210808 ******************************************


      $regfile = "ATtiny4313.DAT"
      $crystal = 8000000
      $hwstack = 40
      $swstack = 16
      $framesize = 32


      dim zeit as byte
      zeit = 50


      dim xzeit as word
      xzeit = 500


      Const Led_count = 24 'Anzahl der LEDs
      Const Led_count2 = 24 'Anzahl der LEDs


      Config Rainbow = 1 , Rb0_len = Led_count , Rb0_port = PortB , Rb0_pin = 7
      Config Rainbow = 2 , Rb1_len = Led_count2 , Rb1_port = PortD , Rb1_pin = 2


      'ergibt: Error: 25; Line: 68 Variable already dimensioned - so geht es also nicht wenn 2 Aufgänge genutzt werden sollen!
      'wie dann?



      'Dim Old_color(3) As Byte , Color(3) As Byte , Ledx As Byte , Old_led As Byte 'Oringinal
      'Dim Old_color(4) As Byte , Color(4) As Byte , Ledx As Byte , Old_led As Byte 'Test
      'Dim Old_color(5) As Byte , Color(5) As Byte , Ledx As Byte , Old_led As Byte 'Test
      Dim Old_color(6) As Byte , Color(6) As Byte , Ledx As Byte , Old_led As Byte 'Test


      R Alias Color(_base)
      G Alias Color(_base + 1)
      B Alias Color(_base + 2)
      RB Alias Color(_base + 3)
      RG Alias Color(_base + 4)
      RGB Alias Color(_base + 5)
      x1:


      Rb_selectchannel 0
      Old_color(1) = 15
      Old_color(2) = 15
      Old_color(3) = 15
      Old_color(4) = 15
      Old_color(5) = 15
      Old_color(6) = 15
      Old_led = 0
      .....

      Was habe ich wohl nicht bedacht? Oder geht das so nicht?
      Danke für Eure Zeit, Wissen und Hilfe
      frank
    • Ohne es jetzt wirklich zu wissen aber laut der Hilfe verstehe ich den Confog Rainbow als einmaligen Befehl.
      Da gibt man an wie viele Kanäle denn verwendet werden und in der Folge dann eben für jeden Kanal die Parameter.
      Versuche das mal so:
      CONFIG RAINBOW=2, RB0_LEN=Led_count, RB0_PORT=PortB, RB0_PIN=7, RB1_LEN=Led_count2, RB1_PORT=PortD, RB1_PIN=2
    • Hallo Zitronenfalter
      Danke für den Tip. Da ist der Fehler nun weg. Aber es scheint recht viel Speicher nötig zu sein.
      Nun ist "OUT of SRAM".
      Geht also mit dem 4313 nicht.
      Ich werde also einen anderen Chip nehmen und dann weiter testen und fummeln.
      frank
    • dd0ow schrieb:

      Aber es scheint recht viel Speicher nötig zu sein
      Ich denke mal für jede LED sind es drei Byte was dann bei deinen 48 Leds schon 144 Bytes sind.
      Der Chip selbst hat aber nur 256Byte RAM und du selbst sowie der Compiler braucht ja auch noch RAM für die anderen Variablen.
      Eventuell kannst du ja bei Stack und Framesize reduzieren die ja auch am RAM zerren.
    • Hallo
      Das ist aber knapp.
      ********************************
      $swstack = 3'16
      $framesize = 10'32

      dim zeit as byte
      zeit = 50

      dim xzeit as word
      xzeit = 500

      Const Led_count1 = 24 'Anzahl der LEDs
      Const Led_count2 = 23 'Anzahl der LEDs
      *******************************
      a werd ich mal sehen, ob die die Zeiten wirklich so brauche.
      Das ist wohl der bessere Lösungsansatz.
      frank