도와주세요!!
글 수 15,339
2007.08.14 18:15:06 (*.82.68.226)
6684
안녕하세요..
일반적으로 GPDR과 GPAF를 먼저 설정을 해 주소 GPCR 또는 GPSR을 제어하시면됩니다..
아래의 소스를 다음과 같이 수정하시고 해 보세요..
#include <asm/hardware.h>
ssize_t gpio_write(struct file *file, const char *buffer, size_t length, loff_t *offset)
{
const unsigned char *tmp = buffer;
unsigned char c=0;
get_user(c, tmp);
set_GPIO_mode( 16 | GPIO_OUT );
GPSR(16) = GPIO_bit(16);
msleep(1000);
GPCR(16) = GPIO_bit(16);
return length;
}
위와 같이 사용하시든지 아니면, 홈페이지의 자료실 >> EZ-X5 >> sample ( EZ-X5 보드에서 동작되는 샘플 디바이스 드라이버 및 TEST 응용프로그램 [DIO , GPIO , Serial])
를 다운받아서 참고하셔도 됩니다.
그럼 수고하세요.
>
>GPIO 16번 핀을 output으로 사용하려고 할 때에, (부가기능은 안 씁니다.)
>평소에는 high신호가 나오고 CPU 쪽에서 출력으로 나가는 신호가 falling edge 일 때만 동작하도록 쓰고 싶은데 밑에 제가 한거처럼 실행시켜보았거든요?
>근데 안되는데 뭐가 잘 못 된건지 혹시 아시면 알려주세요...
>
>
>(( ADC랑 CPU랑 연결시에 Start of conversion 신호를 위해서 사용하려고 합니다... ))
>
>
>
>
>
>ssize_t gpio_write(struct file *file, const char *buffer, size_t length, loff_t *offset)
>{
> const unsigned char *tmp = buffer;
> unsigned char c=0;
> get_user(c, tmp);
>
> GPSR0 |= 1 << 16;
> GPCR0 &= 1 << 16;
> GPDR0 |= 1 << 16;
> GAFR0_U &= ~(1 << 16);
> GRER0 &= ~(1 << 16);
> GFER0 |= 1<<16;
> GEDR0 |= 1<<16;
>
> printk("GPIO 16 Outputn");
>
> return length;
>}
>
일반적으로 GPDR과 GPAF를 먼저 설정을 해 주소 GPCR 또는 GPSR을 제어하시면됩니다..
아래의 소스를 다음과 같이 수정하시고 해 보세요..
#include <asm/hardware.h>
ssize_t gpio_write(struct file *file, const char *buffer, size_t length, loff_t *offset)
{
const unsigned char *tmp = buffer;
unsigned char c=0;
get_user(c, tmp);
set_GPIO_mode( 16 | GPIO_OUT );
GPSR(16) = GPIO_bit(16);
msleep(1000);
GPCR(16) = GPIO_bit(16);
return length;
}
위와 같이 사용하시든지 아니면, 홈페이지의 자료실 >> EZ-X5 >> sample ( EZ-X5 보드에서 동작되는 샘플 디바이스 드라이버 및 TEST 응용프로그램 [DIO , GPIO , Serial])
를 다운받아서 참고하셔도 됩니다.
그럼 수고하세요.
>
>GPIO 16번 핀을 output으로 사용하려고 할 때에, (부가기능은 안 씁니다.)
>평소에는 high신호가 나오고 CPU 쪽에서 출력으로 나가는 신호가 falling edge 일 때만 동작하도록 쓰고 싶은데 밑에 제가 한거처럼 실행시켜보았거든요?
>근데 안되는데 뭐가 잘 못 된건지 혹시 아시면 알려주세요...
>
>
>(( ADC랑 CPU랑 연결시에 Start of conversion 신호를 위해서 사용하려고 합니다... ))
>
>
>
>
>
>ssize_t gpio_write(struct file *file, const char *buffer, size_t length, loff_t *offset)
>{
> const unsigned char *tmp = buffer;
> unsigned char c=0;
> get_user(c, tmp);
>
> GPSR0 |= 1 << 16;
> GPCR0 &= 1 << 16;
> GPDR0 |= 1 << 16;
> GAFR0_U &= ~(1 << 16);
> GRER0 &= ~(1 << 16);
> GFER0 |= 1<<16;
> GEDR0 |= 1<<16;
>
> printk("GPIO 16 Outputn");
>
> return length;
>}
>