Go Down

Topic: need 4 high bits in 4 ports pins (Read 365 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy