Sida 1 av 1
Hur flippa bit i register??
Postat: 20 mars 2007, 22:00:22
av Draugur
En kort kort fråga från en nybörjare:
Hur flippar jag tecken på en bit i registret om jag tex vill flippa
TCCR0=0xF1 till 0xF0 ?
dvs från 1111 0001 -> 1111 0000
Jag programmerar i C
Postat: 20 mars 2007, 22:10:31
av TERdON
XOR, dvs ^, och en lämplig bitmask
Fast jag skulle rekommendera dig att hellre använda en antingen OCH, &, eller ELLER, |, och en bitmask. Istället för att ha funktion som togglas så är det mer säkert att du antingen sätter eller återställer flaggan med dem.
Postat: 20 mars 2007, 22:12:38
av Mupp
Vill du bara nollställa den så:
TCCR0 &= ~(1 <<
bit);
vill du ettställa den:
TCCR0 |= (1 <<
bit);
vill du att den ska byta tecken så:
TCCR0 ^= (1 <<
bit);
där
bit är vilken bit det gäller, LSB 0, nästa 1 osv.
Wikipedia vet som vanligt mer.
Edit, jaha så går det när fingrarna inte är snabba nog.
Postat: 20 mars 2007, 22:13:47
av Draugur
tack så mycket!!