Hallo Ich habe folgendes Problem. Ich möchte von einem Port die Pins 0-3 für eine Motor benutzen und die Pins 4-7 für eine Anzeige. Jetzt möchte ich aber eine Variable auf den Port schreiben und die Pins 0-3 sollen sich aber nicht ändern. Bsp PORTC= 0b00001010 //Port hat folgenden Zustand x= 0b11000000 //jetzt möchte ich die variable x auf Port schreiben aber bit 0-3 sollen so bleiben wie sie sind also sollte jetzt auf PORTC= 0b11001010 stehen. kann mir bitte jemand sagen wie ich das hinbekomme vielen dank holger
..depends.. exakt läufts im Allgemeinen ungefähr so:
1 | uint8_t temp = PORTC; |
2 | temp &= 0x0F; |
3 | temp |= neuerwertfürdieoberenbits; |
4 | PORTC = port; |
Jetzt musst Du noch dafür sorgen dass der Block atomar ausgeführt wird, d.h. entweder sind da per se Interrupts deaktiviert oder Du machst noch einen ATOMIC_BLOCK(ATOMIC_RESTORE_STATE) (oder was vergleichbarss) aussen rum. HTH
> exakt läufts im Allgemeinen ungefähr so
Naja, exakt läuft es so schonmal gar nicht!
Fabian schrieb: > PORTC = (PORTC & 0x0F) | (x & 0xF0); Für die gestellte Aufgabe ist das natürlich overkill. Der TE wollte ja nur wissen, wie man 1en reinschreibt, und nicht, wie man sie wieder wegbekommt. ;)
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.