nAbend, ich habe 2 bedeutende Bits auf PortC, die ich von allen anderen Ports trennen will. D.h. ich habe PortC: xxXX.xxxx, XX will ich alleine haben, und zwar nach rechts an den Anfang: 0000.00XX Der Rest Nullen. Da dachte ich so: uint8_t status(void) { uint8_t data; data = ((PINC>>4) & 0x03); // 0000.00XX return data; } Wenn ich dann aber irgend ein tempo damit beschreiben will: temp = status; meint der Compiler folgende Warnung: warning: assignment makes integer from pointer without a cast Was läuft da nicht richtig? Ist es die Verschiebung/Rotation << >> ?
Wenn du eine Funktion aufrufen willst, mußt du den Funktionsaufrufoperator benutzen. Dein
1 | temp = status; |
nimmt die Adresse der Funktion status und weist sie temp zu. Versuch mal:
1 | temp = status(); |
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.