Config Rainbow. Const vs Dim

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

    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!

    • Config Rainbow. Const vs Dim

      Hallo, ich bräuchte mal eine Info zum Verständnis...

      Source Code

      1. Dim Ledzahl As Integer : Ledzahl = 3
      2. 'Const Ledzahl = 3
      3. Config Rainbow = 1 , Rb0_len = Ledzahl , Rb0_port = Portd , Rb0_pin = 4
      Wenn ich Dim Ledzahl statt Const Ledzahl nehme gibt es nur ein heilloses Geflacker. Warum ist das so? Eigentlich wollte ich das Programm flexibel halten was die Anzahl der LEDs angeht.

      Gruß, Martin
    • Eine Constante wird fest ins Programm gebrannt während eine Variable nur ein definierter Speicherplatz ist, also jedesmal von da geladen werden muß. Das sind verschiedene Befehle/Compilate.
      Auch wenn Bascom in sehr vielen Fällen intern die verschiedenen Möglichkeiten zur Verfügung hat ist es in dem Fall nicht vorgesehen.
      Ist Rainbow nicht eine lib? Vielleicht kann sie erweitert werden?
    • Pac-Man wrote:

      Eigentlich wollte ich das Programm flexibel halten was die Anzahl der LEDs angeht.
      Wo ist denn dann das Problem mit Const? Const ist doch auch flexibel nur das man es nicht über das Programm selber ändern kann.
      Config Rainbow erwartet bei der LED-Anzahl nun mal eine Konstante.
      Du willst also zu Laufzeit LEDs hinzufügen bzw. weglassen?
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • Ja, Raimbow ist eine Lib.

      Ich wollte die Anzahl über das Programm ändern, wie vom User gewünscht, anschließend einen Reset auslösen.

      Mir erschließt sich nur die Logik nicht. Rb0_len erwartet die Anzahl der LEDs. Die übergebe ich ja auch. Trotzdem ist es ein Unterschied ob ich sie als Byte, Word, Integer oder eben Konstante übergebe.
    • Leider finde ich die Stelle (in der lib ) nicht. Aber zum Verständniss Die Config würde Register 17 mit der Anzahl laden,
      dann würde da LDI R17, 15 stehen (wenn 15 der Inhalt Deiner Constanten wäre)
      Eine Variable hätte aber den Befehl LDS R17,{Varablenname} der dann den Wert aus der Speicherzelle der Varablen holen müsste. Der braucht doppelt so lange.

      Pac-Man wrote:

      das Programm ändern, wie vom User gewünscht, anschließend einen Reset auslösen.
      Es ist abenteuerlich, aber nicht unmöglich die Stelle(n) im Flash zu ändern, dann hat es beim Start den neuen Wert. Vorsicht die können bei jeder Programmänderung woanders liegen.