도와주세요!!
글 수 15,339
2006.07.03 17:45:58 (*.75.248.220)
6693
안녕하세요...
따로 가지고 있는 소스는 없습니다..
일단 하드웨어가 의심되시면 디바이스 드라이버에서 다음과 같이 해 보세요..
gpio 초기화 부분에서...
GAFR0_L &= ~( 0xFF ); // Disable Alternative Function
GRER0 &= ~(0xFF ); // Clear Rising edge trigger.
GFER0 &= ~( 0xFF ); // Set as Falling Edge Detect
// 출력 전용으로 설정
GPDR0 |= ( 0xFF );
//GPSR은 출력 SET 레지스터
GPSR0 |= ( 0xFF );
sleep(1);
//GPCR은 출력 Clesar 레지스터
GPCR0 = 0xFF;
하셨어 "1" "0" 이 되는지 확인 해 보세요..
그럼 수고하세요..
>프로그램을 짜서 GPIO 를 테스트 해봤는데요.
>여기에 있는 예제파일을 확인해서 넣었을때는 동작을 잘합니다. 하지만 0 ~ 15번까지 출력으로 내는 소스를 수정해서 넣었을때는 GPIO 2 ~4번만 제대로 나오고 그 이상은 출력되지 않습니다.
>분명 GPDR에 해당되는 비트를 1로 세팅시켜주고 GAFR을 0으로 세팅시켜주고 GPSR을 1로 세팅시켜주면 출력이 1로 나온다고 알고 있는데.. 그렇게 나오지 않거든요. 제가 잘못하고 있다는 생각도 들고... 래서 하드웨어를 의심하고 있는데.. 혹시 풀업을 해줘야 하나요?
>
>혹시 GPIO 0 ~ 16번까지 출력을 모두 1로 출력하는 소스있으시면 올려주시겠습니까? 아니면 조언이라도 부탁드립니다. ^^
따로 가지고 있는 소스는 없습니다..
일단 하드웨어가 의심되시면 디바이스 드라이버에서 다음과 같이 해 보세요..
gpio 초기화 부분에서...
GAFR0_L &= ~( 0xFF ); // Disable Alternative Function
GRER0 &= ~(0xFF ); // Clear Rising edge trigger.
GFER0 &= ~( 0xFF ); // Set as Falling Edge Detect
// 출력 전용으로 설정
GPDR0 |= ( 0xFF );
//GPSR은 출력 SET 레지스터
GPSR0 |= ( 0xFF );
sleep(1);
//GPCR은 출력 Clesar 레지스터
GPCR0 = 0xFF;
하셨어 "1" "0" 이 되는지 확인 해 보세요..
그럼 수고하세요..
>프로그램을 짜서 GPIO 를 테스트 해봤는데요.
>여기에 있는 예제파일을 확인해서 넣었을때는 동작을 잘합니다. 하지만 0 ~ 15번까지 출력으로 내는 소스를 수정해서 넣었을때는 GPIO 2 ~4번만 제대로 나오고 그 이상은 출력되지 않습니다.
>분명 GPDR에 해당되는 비트를 1로 세팅시켜주고 GAFR을 0으로 세팅시켜주고 GPSR을 1로 세팅시켜주면 출력이 1로 나온다고 알고 있는데.. 그렇게 나오지 않거든요. 제가 잘못하고 있다는 생각도 들고... 래서 하드웨어를 의심하고 있는데.. 혹시 풀업을 해줘야 하나요?
>
>혹시 GPIO 0 ~ 16번까지 출력을 모두 1로 출력하는 소스있으시면 올려주시겠습니까? 아니면 조언이라도 부탁드립니다. ^^