Inversione di 2 bit in una sequenza
Salve a tutti, ho un piccolo problema( stupido ) che non riesco a risolvere, ho la necessita di settare lo stato di due bit di una porta , una volta a zero e l altra volta a uno senza modificare i restanti bit della sequenza.
Esempio:
Supponiamo di conoscere lo stato di tutti i bit :
PORTA=0b00000000;
devo settare solamente i bit 1 e 2 , per farlo faccio un OR:
PORTA |= 0b00000011
per settarlo a zero faccio un AND della porta
PORTA = PORTA & 0b00000000
ma se io non conoscessi a priori lo stato dei pin da 7 a 2 , e pertanto avessi bisogno di lasciarli in quel modo modificando solo i bit 0 e 1 ?
Esempio :
PORTA=0bxxxxxx00;
con quale operazione setto ad 1 solo i primi due bit? E con quale li ripongo a 0?
Devo ricorrere necessariamente ad una maschera di bit?
Grazie
Esempio:
Supponiamo di conoscere lo stato di tutti i bit :
PORTA=0b00000000;
devo settare solamente i bit 1 e 2 , per farlo faccio un OR:
PORTA |= 0b00000011
per settarlo a zero faccio un AND della porta
PORTA = PORTA & 0b00000000
ma se io non conoscessi a priori lo stato dei pin da 7 a 2 , e pertanto avessi bisogno di lasciarli in quel modo modificando solo i bit 0 e 1 ?
Esempio :
PORTA=0bxxxxxx00;
con quale operazione setto ad 1 solo i primi due bit? E con quale li ripongo a 0?
Devo ricorrere necessariamente ad una maschera di bit?
Grazie