Go Down

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


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
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"


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]



Do you have to use direct port manipulation?
If not look at doing this

Go Up