pic16f hjælp!

Hej er der en klov person her inden der kan hjælpe mig

Jeg har en PIC16F877A hvor på jeg gerne skal har lavet halvdelen af PORTC(RC0-RC3) og halvdelen af PORTD(RD0-RD3) om til en PORTx. Men den rasteren halvdele (RC4-RC7 og RD4-RD7) skal kunne bruges normalt

Jeg tænkte på om man måske kan gøre det vha. #define men ved ikke lige hvordan?

Reply to
Tim
Loading thread data ...

"Tim" skrev i en meddelelse news:ZLCsd.77$ snipped-for-privacy@news.getnet.dk...

void port_r(int value) { PORTC = value

Reply to
Tom

tak for dit svar men vil du ikke uddybe det lidt

hvordan skal det lave halvdelen af PORTC(RC0-RC3) og halvdelen af PORTD(RD0-RD3) om til en stor port ?

Reply to
Tim

"Tim" skrev i en meddelelse news:G_Dsd.281$ snipped-for-privacy@news.getnet.dk...

Ok jeg misfortod dit første spørgsmål. Her kommer et nyt

void out(int byte) { RC0 = byte & 1; RC1 = byte & 2; RC2 = byte & 4; RC3 = byte & 8; RD0 = (byte >> 4) & 16; RD1 = (byte >> 4) & 32; RD2 = (byte >> 4) & 64; RD3 = (byte >> 4) & 128; }

Som sagt husker jeg ikke lige hvilken vej >> skal vende for at shifte 4 bit op. Mener at logisk AND er &. Hvis den brokker sig så er det 2 stk && der skal til.

-- Tom

Reply to
Tom

Hvis din port x skal defineres som X0-X3 tilhørende C0-C3 og X4-X7 tilhørende D0-D3, så kan du gøre noget der ligner følgende...

static char PortCImage = 0; static char PortDImage = 0;

void WritePortX(char data);

int main(int argc, char *argv[]) { // Skriv decimalt 100 til port X (C0-C3,D0-D3) WritePortX(100);

return 0; }

void WritePortX(char data) { PortCImage = (PortCImage & 0xF0) | (data & 0x0F); PortDImage = (PortDImage & 0xF0) | ((data & 0xF0) >> 4);

PORTC = PortCImage; PORTD = PortDImage; }

/Thomas

--
My e-mail is composed in the following manner:
.(a)privat(dot)dk
Reply to
Thomas Lykkeberg

Hej

M.v.h. Lasse Madsen

Reply to
Lasse Madsen

Tjaee, eller:

/Thomas

--
My e-mail is composed in the following manner:
.(a)privat(dot)dk
Reply to
Thomas Lykkeberg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.