Go Down

### Topic: need 4 high bits in 4 ports pins (Read 542 times)previous topic - next topic

#### eddiea6987

##### Aug 14, 2013, 04:11 am
i need the 4 high bits of a binary number to set 4 pins on portc , not the four high bits of the port , meaning the four pins i need set are split between the 4 high and four low pins
example
binary 8 bit
extract 4 high bits :    testNUmber<<4
PORTC                       7 6 5 4 3 2 1 0
testNUmber                x x x 1 1 1 1 x

these 4 bits need to set or clear these 4 pins
bitwise operations always make me run in circles

would i do something like
PORTC =0b00011110 | (testNUmber<<4);

??

I cant really test it out right now if not i would run some tests  but im not home.
I could print the Arduino logo on a box of cereal and sell it as "Arduin-O's"

#### JarkkoL

#1
##### Aug 14, 2013, 04:33 amLast Edit: Aug 14, 2013, 05:23 am by JarkkoL Reason: 1
Code: [Select]
`PORTC&=0b11100001; // clear bits 1-4 in the portPORTC|=(v>>3)&0b00011110; // set bits 1-4 in the port to 4 high bits in v (v=uint8_t)`
Also you could do:
Code: [Select]
`PORTC=(PORTC&0b11100001)|((v>>3)&0b00011110);`

#### Grumpy_Mike

#2
##### Aug 14, 2013, 04:57 am
Do you have to use direct port manipulation?
If not look at doing this
http://www.thebox.myzen.co.uk/Tutorial/Arrays.html

Go Up