Kann mir jemand erklären, warum zwei "uint32__t" hintereinadner geschrieben werden?!? z.B. so: PORTA_PCR19 &= (uint32_t)~(uint32_t)((PORT_PCR_ISF_MASK | PORT_PCR_MUX(0x07))); Ist das nicht doppelt?!? Oder bezieht sich das erste uint32_t auf PORTA_PCR19 und das ~uint32_t auf den Ausdruck ((PORT_PCR_ISF_MASK | PORT_PCR_MUX(0x07)))?!? Oder wie muss ich das verstehen? P.S.: Das ist ein Auszug aus einem Beispiel von einem MK20DX256VMC7.
Chris schrieb: > Das ist ein Auszug aus einem Beispiel von einem MK20DX256VMC7. MK20DX256VMC7.was bitte? Der tatsächliche Inhalt der betr. Zeile dürfte etwa so aussehen: PORTA_PCR19 &= ~(0xirgendwas | (1<<7)); Dieses PORT..MASK und PORT..MUX Geraffel finde ich einfach nur sch...e Mein Rat: Schreib dir deine Port-Setup-Routinen lieber selbst - nach dem Lesen der diversen Manuals. Ja, ich weiß, bei den ExMotorolas ist alles Geschriebene recht schwer verdaulich. Ich kriege auch jedesmal Zustände beim Suchen und MichHalbtotBlättern. W.S.
Danke Dir. Mitlerweile sind wir drauf gekommen. Ziemlich trivial und eigentlich logisch: PORTA_PCR19 &= (uint32_t)~(uint32_t)((PORT_PCR_ISF_MASK | PORT_PCR_MUX(0x07))); ((PORT_PCR_ISF_MASK | PORT_PCR_MUX(0x07))) ist halt irgendeine Maske. Die aber nicht 32 bit sein muss. Deswegen wird sie in eine 32 bit gewandelt und jedes bit "gedreht" (~(uint32_t)). Da diese Zahl aber auch negativ werden kann, wird sie in eine positive Zahl gewandelt ((uint32_t)). Deswegen die beiden (uint32_t)~(uint32_t). Die hatten mich verwirrt. Trotzdem Danke für die Hilfe.
Hallo, ohhh diese Definitionen ist wirklich manchmal sonstwo hergeholt. Gruß Sascha PS.Die Dokumentation in den Manuals ist wirklich Kapitelübergreifend verstreut.
Chris schrieb: > ((PORT_PCR_ISF_MASK | PORT_PCR_MUX(0x07))) ist halt irgendeine Maske. > Die aber nicht 32 bit sein muss. > Deswegen wird sie in eine 32 bit gewandelt und jedes bit "gedreht" > (~(uint32_t)). > Da diese Zahl aber auch negativ werden kann, wird sie in eine positive > Zahl gewandelt ((uint32_t)). Deswegen die beiden (uint32_t)~(uint32_t). > Die hatten mich verwirrt. zu Recht. Ich möchte mal denjenigen sehen, der eine dediziert unsigned Zahl negativ hinbekommt... Aber zum Verständnis: mit einem Typecast ist keinelei Umwandlung verbunden, sondern lediglich die Auffassung vom Operanden festgenagelt. Das ist ein gravierender Unterschied. Deine Worte lesend bin ich mir nicht sicher, ob du das richtig verstanden hast. Nochmal: Laß von all diesen vigilantischen Präprozessor-Steptanz-Einlagen lieber die Finger und schreib dir das benötigte Zeugs selber - und zwar so, daß du es auf den 1. Blick verstehst. Auf Dauer lebst du damit besser, weil es einfacher und damit überschaubarer ist. W.S.
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.