Cytuj:
Ogólnie rzecz biorąc, chciałem wyzerować tylko ten jeden konkretny bit 6 bez modyfikacji pozostałych, ale w tej postaci jest to niemożliwe. Musiałbym najpierw odczytać wartość wszystkich rejestrów pod adresem 0x07, przypisać do zmiennej(x) i wtedy ta zmienna(x) &= ~(1<<6) wyzerowałaby mi tylko ten 6 bit bez modyfikacji pozostałych, dobrze zrozumiałem?
Tak. Tylko nie wszystkich rejestrów a jednego rejestru a wszystkich bitów

Tak dokładnie się robi jak się steruje wyjściami procesora. Tylko w ich wypadku jest to jedna linijka od razu to robiąca:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tutaj nie masz bezpośredniego dostępu do wartości, więc musisz ją najpierw odczytać a potem po modyfikacji zapisać.
C ma taką fajną właściwość, że możesz sobie zrobić funkcję np. TWI_modify_bit() i w niej zrobić te operacje (odczytu, modyfikacji i zapisu) a w programie wykonywać modyfikację poprzez tę funkcję, nie zastanawiając się więcej jak to jest robione. Tylko ma to sens jak takie operacje w programie robisz w wielu miejscach na różnych komórkach i bitach.
--
Pozdrawiam,
Robert