도와주세요!!
글 수 15,339
2007.08.14 16:55:00 (*.188.43.125)
7036
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;
}
제가 알기로는 GPCR이나 GPSR이나 상관없이 해당 비트에 셋팅(OR 1)을 해야 합니다.
즉, GPCR0 |= 1 << 16; 이라고 하면, 해당비트가 Clear 되는거죠.