[Icc-avr] dumb pointer question
John Woods
john at idea-tech.com
Tue Oct 9 13:42:17 PDT 2007
Hi Paul,
You want to use the '*' in front oft he P_PORT when doing accesses so
that bit operators work on the port and not the pointer itself. For example:
*P_PORT &= ~w_pin;
Paul Mateer wrote:
> Hello All.....
> Please tell me what I'm doing wrong here:
>
> void Process_Cmd(void)
> {
> unsigned char *P_PORT;
> int w_port, w_pin;
>
> w_port = WHICH_PORT & 0xF0;
> w_pin = WHICH_PORT & 0x0F;
>
> if(w_port == 0x10) P_PORT = &PORTA; // PORT A
> if(w_port == 0x20) P_PORT = &PORTB; // PORT B
> if(w_port == 0x30) P_PORT = &PORTC; // PORT C
> if(w_port == 0x40) P_PORT = &PORTD; // PORT D
>
> if(w_pin != 8)
> {
> if(PORT_CMD == OFF) P_PORT &= ~w_pin;
> if(PORT_CMD == ON) P_PORT |= w_pin;
> }else
> {
> if(PORT_CMD == OFF) P_PORT = 0;
> if(PORT_CMD == ON) P_PORT = 0xFF;
> }
> }
>
> //------------------------------------------------------------------------------------------------
>
> I always seem to stumble when it comes to pointers
> --
> Paul Mateer, AA9GG
> Elan Engineering Corp.
> www.elanengr.com <http://www.elanengr.com>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Icc-avr mailing list
> Icc-avr at imagecraft.com
> http://dragonsgate.net/mailman/listinfo/icc-avr
>
--
John Woods Phone: (780) 431 1843
Idea Technologies Inc. Fax: 1 866 293 5883
6746 75 St. Email: john at idea-tech.com
Edmonton, Alberta, Web: www.idea-tech.com
Canada, T6E 6T9
More information about the Icc-avr
mailing list