B&R #ifdef und ST

Lazarus™

Level-2
Beiträge
455
Reaktionspunkte
57
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe folgenden Code und suche einen Tip, wie man das in ST nachbilden kann:

Code:
    #ifdef _AR010            
        Conf_AR000 = 0;
    #else /* no need to mount devices */
        Conf_AR000 = 1;
    #endif

Ich würde mich freuen, wenn jemand einen Tip für mich hat.
 
Hallo Lazarus,

schaue einmal in der Hilfe (bei mir AS 4.0.14) unter
"Programmierung" -> "Programme" -> "Präprozessor für IEC Programme"
nach. Das sollte dir weiterhelfen.

lg.
Michi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
was du zeigst ist ja PreProzessor, d.h. über die Compiler-Einstellung wird der if...then oder else Zweig compiliert und eingebunden. Während der Laufzeit gibts jedoch im System nur einen Zweig.

Wenn du nach der Entsprechung in ST suchst, verstehe ich das so dass du das während der Runtime entscheiden willst, oder ?

Im Init-UP folgender Code gibt dir in XXX die CPU-Bezeichnung zurück, das musst du dann einfach mit strcmp oder ähnlich nach deinen Wünschen bewerten ...


Code:
[FONT=Courier New][SIZE=1]
[/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]DiagCreateInfo_0.enable =[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]1

    DiagCreateInfo_0.infoKind[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]=[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]asdiagPLUGGED

    DiagCreateInfo_0[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff]FUB[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]DiagCreateInfo()

    

    DiagGetStrInfo_0.enable[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]=[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]1[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][COLOR=#008080][FONT=Courier New][SIZE=1][COLOR=#008080][FONT=Courier New][SIZE=1][COLOR=#008080] 

[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]    DiagGetStrInfo_0.ident[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]=[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]DiagCreateInfo_0.ident                            [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][COLOR=#008080][FONT=Courier New][SIZE=1][COLOR=#008080][FONT=Courier New][SIZE=1][COLOR=#008080]  

[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]    DiagGetStrInfo_0.index[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]=[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]0

    DiagGetStrInfo_0.infoCode[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]=[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]asdiagPLUGGED_MODULE

    DiagGetStrInfo_0.pBuffer[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]=[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff]ADR[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1](XXX)

    DiagGetStrInfo_0.bufferLen[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]=[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff]SIZEOF[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1](XXX)-1

    DiagGetStrInfo_0[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff][FONT=Courier New][SIZE=1][COLOR=#0000ff]FUB[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=1][FONT=Courier New][SIZE=1]DiagGetStrInfo()

[/SIZE][/FONT][/SIZE][/FONT]
 
Einfacher Variante von Bits'Bytes:
Bei jedem Zielsystem ModuleID Datenpunkt der CPU mit gleicher Variable verbinden und abhängig von der ID entscheiden, erspart dir den FUB ;)
 
Zurück
Oben