Ankündigung

Einklappen
Keine Ankündigung bisher.

Makro FlashSetAndSave will nicht kompilieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Makro FlashSetAndSave will nicht kompilieren

    Hallo zusammen,

    egal, ob ich FlashSetAndSaveS16 oder F16 nehme, es kommt der Parser mit einer Fehlermeldung. Der interessante Ausschnitt daraus:

    String zu lang. Bitte auch Sonderzeichen mit Speicherbedarf >1 Byte bedenken.

    Den Rest der Fehlermeldung (das ganze Makro) laß ich mal weg. Mein Code:

    Code:
    FlashSetAndSaveS16(1,AlarmStatus,0,1,0)
    
    [EibPC]
    AlarmStatus=0s16
    Hab's auch mit der F16 Variante probiert. Natürlich den Variablentyp auch entsprechend geändert -> gleicher Fehler. Erstaunlicherweise kann ich hier im ganzen Forum nichts zu FlashSetAndSave finden.

    Schönen Abend noch,

    Harry

    #2
    Zitat von FHarry Beitrag anzeigen
    Der interessante Ausschnitt daraus:
    interessant wäre glaube ich eher der ganze Teil davor.
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #3
      Zitat von FHarry Beitrag anzeigen
      Hallo zusammen,
      FlashSetAndSaveS16(1,AlarmStatus,0,1,0)
      Sollte nicht beim Makro auch alles s16 sein? Das erste Argument muss hingegen u16 sein, also
      Also eher in der Form
      Code:
      FlashSetAndSaveS16(1u16,AlarmStatus,-10s16,10s16,0s16)
      Das Makro würde ich mal von den Debugmeldungen entschlacken bzw. diese per define ausschalten. Zudem sollten die Zahlen per ^s16 gecastet werden.
      ich geb das mal weiter.
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        Nu denn Uwe,

        du wolltest es so:
        Laufzeitfehler in Zeile:Makro: "FlashSetAndSaveS16" in Zeile [1251] in C:/Program Files (x86)/EibStudio/Makros/Bibliotheken/EnertexCodingWettbewerb.lib
        if systemstart() then { Variable = stringcast( FlashString_S16, Variable, FlashIndex*2u16 ); if Variable < MinValue or Variable > MaxValue then Variable = Preset endif; if Flash_Debug then { write(address(Flash_DebugGA), $FlashStringread$c14); write(address(Flash_DebugGA), $IDX $c14+convert(FlashIndex, $$c14)+$,$c14+convert(Variable,$$c14)) } endif} endif ==> if systemstart() then { AlarmStatus = stringcast( FlashString_S16, AlarmStatus, 1u16*2u16 ); if AlarmStatus < 0s16 or AlarmStatus > 1s16 then AlarmStatus = 0s16 endif; if Flash_Debug then { write(address(Flash_DebugGA), $FlashStringread$c14); write(address(Flash_DebugGA), $IDX $c14+convert(1u16, $$c14)+$,$c14+convert(AlarmStatus,$$c14)) } endif} endif in der Datei "C:/Program Files (x86)/EibStudio/EibstudioData/tmpApp.txt" in der Datei "C:/Program Files (x86)/EibStudio/EibstudioData/tmpApp.txt"
        String zu lang. Bitte auch Sonderzeichen mit Speicherbedarf >1 Byte bedenken. in >$FlashStringread$< in >write(address(Flash_DebugGA)< in >{< in >if_then Flash_Debug< in >AlarmStatus=stringcast(FlashString_S16,AlarmStatu s,1u16*2u16)--Set;if_then AlarmStatus<0s16 or AlarmStatus>1s16 then AlarmStatus=0s16--Set endif ;< in >{< in >if_then systemstart()<
        ID:34
        EibParser wurde mit Fehler beendet.


        Dolle, Zeile 1251 ist eingentlich eine leere Zeile. Selbst wenn man des Informatikers Problem berücksichtigt (+1/-1) ist auch auf 1250 oder 1252 nix aussergewöhnliches.

        Also mal anders gefragt: Sind diese Flash-Makros überhaupt zum Laufen zu bekommen? Selbst mit casten geht da nix.

        Grüße,

        Harry

        Kommentar

        Lädt...
        X