Go Down

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

eddiea6987

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 am Last Edit: Aug 14, 2013, 05:23 am by JarkkoL Reason: 1
Code: [Select]

PORTC&=0b11100001; // clear bits 1-4 in the port
PORTC|=(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

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