rgb ws2812 2 Streifen an verschiedenen Ports in Tiny

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 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
    • 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 wrote:

      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