안녕하세요...

어드레스를 4byte가 아닌 1byte단위로 제어하고 싶다라는 말이 이해가 잘 되지 않네요..
그리고 A0를 왜 설정하고 있는지도 이해가 되지 않습니다.

LED의 경우 칩에 연결된 주소가 0xf300_3000 이므로 이 주소에 데이타를 쓰면 LED가 출력됩니다.

unsigned char *ioptr;

ioptr = (volatile  unsigned char *) 0xf3003000;

*ioptr = 0x01;   또는  *ioptr = 0xFE;

이렇게 하시면 됩니다..


Switch의 경우에는 칩에 연결된 주소가 0xf300_2000 이므로 이 주소에 데이타를 읽어 오면 됩니다.

unsigned char *ioptr;
char   cc;

ioptr = (volatile  unsigned char *) 0xf3002000;

cc = *ioptr;

이렇게 하시면 됩니다.

위의 설명은 디바이스드라이버에서 직접 제어하는 것을 설명한것입니다.

만약 디바이스드라이버와 어플에 대한 자세한 소스는 제공된 CD의 sw/prg/port/v01 에 보시면 예제 소스가 있습니다..


그럼 수고하세요..






>EZ-X5와 EZ-ETIO보드를 가지고 LED와 Switch Read/Write를 하고 있습니다.
>
>LED 어드레스는 0xf300_3000이고, Switch 어드레스틑 0xf300_2000으로 되어있습니다.
>LED에 0x00를 쓰기 위해 "0xf300_3001"번지에 값을 쓰면 A0값이 High로 됩니다.
>그러나 Switch값을 읽어오기 위해서 "0xf300_2001번지를 읽어오면 "A0" 값이 High로 안되고 계속 Low로 되있습니다.
>
>어드레스를 4byte가 아닌 1byte단위로 제어하고 싶습니다.
>dio 디바이스 드라이버쪽을 수정해야 되는지?
>조언바랍니다.