Hallo, ich benutze den CSS-Compiler mit MPLAB IDE und nen PIC16F877, diese Infos sind aber wahrscheinlich für mein Problem unerheblich, da es sich vermutlich um eine triviale Sache handelt. Ich habe mir folgendes definiert: #define ZU Pin_B2 #define RESET Pin_B0 Pin_B2 und Pin_Bo sind im Header <16F877.h> folgendermaßen definiert: #define Pin_B2 50 #define Pin_B0 48 Es handelt sich also bei ZU und RESET letztenendes um Konstanten. Ich möchte nun die Funktion blink() einbinden: void blink (int blinker, int schalter) { if (schalter == TRUE) //blinker einschalten { output_high(blinker); delay.... output_low(blinker); delay.... } else if (schalter == FALSE) //blinker ausschalten { output_low(blinker); } } Mit ihr soll es möglich sein, unterschiedliche Ausgänge blinken zu lassen, je nachdem mit welchen Ausgänge ich die Funktion aufrufe. In diesem Fall z.B.: blink(ZU,TRUE); blink(RESET,TRUE); Beim compilieren kommt es jedoch zu der Fehlermeldung: "Expression must evaluate to a constant" Und zwar in meiner Funktion an der Stelle: "output_high(blinker)" und den anderen.... Ich fand die Lösung eigentlich recht elegant, weiß jemand eine Lösung für mein Problem??
Daß wir hier keine Crosspostings mögen, hat sich bis zu Dir wohl noch nicht herumgesprochen, wie? Also, nochmal zum Mitmeisseln: Wir mögen hier keine Crosspostings.
Wieso arbeitest du nicht direkt über die Register? also zuerst die register definieren und danach die Bits setzen. Soll es nur fürs Port B funktionieren oder für alle anderen auch? Oder willst du das mit deiner Variante machen, dann müsstest du vorher noch ein if einbauen und danach 2 routinen schreiben. Einmal für ZU und einmal für RESET
PS.: es tut schon was zur sache welchen Compiler und welchen Controller du benutzt ;-)
@Schoaschi: Was immer Christian hier sich an Ärger noch zuziehen mag - das jedenfalls steht deutlich drin, direkt hinter dem Hallo. @Christian: Schlechter Stil, Crossposting ohne auf die Antworten im ursprünglichen Thread mit einem Wort einzugehen. Erweckt hier den Eindruck, dass Du Lösungen, die von deiner Vorgabe einigermassen abweichen, nicht akzeptierst. Was konstruktive Antworten sinnlos macht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.