sind folgende beiden Codezeilen gleichwertig? if((IRQ_MASK != RX_START_EN)) {} if(!RX_START_EN) {} mfg und danke!
Um zu sagen ob diese beiden Zeilen gleichwertig, oder wenigstens korrekt sind, benötige ich mehr Informationen. Ohne weitere Informationen, wie diese Masken aussehen, würde ich sogar raten, dass es "if(IRQ_MASK & RX_START_EN)" heißen müsste.
ooohh. Ich glaub du hast mich damit schon auf die richtige Fährte geführt. Das Bit RX_START_EN befindet sich im Register IRQ_MASK.
Großes Fragezeichen schrieb: > Das Bit RX_START_EN befindet sich im Register IRQ_MASK. Wenn RX_START_EN nur eine Bitnummer ist, dann solltest du dieses Macro verwenden, um eine 1 an die richtige Stelle zu schieben. Mit einem AND kann man dann einfach abfragen, ob das entsprechende Bit gesetzt ist if(IRQ_MASK & (1 << RX_START_EN)) Wenn RX_START_EN eine Bitmaske ist, dann entfällt natürlich das shiften. if(IRQ_MASK & RX_START_EN) Eine weitere Möglichkeit wäre auch, dass RX_START_EN ein Makro ist, welches direkt das richtige Bit extrahiert. In diesem Fall fällt sogar die Verknüfung it IRQ_MASK weg. if(RX_START_EN)
Tobi schrieb:
@TO
Langer Rede kurzer Sinn:
Mann muss sich ansehen wie RX_START_EN definiert ist. Die Schreibweise
mit alles Grossbuchstaben, deutet darauf hin, dass es sich dabei um ein
Makro handelt und das muss es in irgendeinem Header File geben.
Also dieses Makro suchen, ansehen. Dann weiß man mehr.
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.