어제 밤까지 이걸로 고생했는데,

키 매트릭스로 회로를 구성하고, PORTB에서

포트를 껐다 켰다 스위칭해가며 버튼검출 하였습니다.

그런데, 문제가 버튼을 안눌렀음에도 버튼이 눌렸다는(즉, RB0==1 또는 RB0==0 인 상태가 왔다갔다) 것입니다.

즉, 버튼 안눌러도 계속해서 화면상에는 키보드 타이핑되듯이 글자가 써지는 상황이었습니다


원인이 무엇일까.. 회로가 잘못된 것인지 이리저리 뜯었다 붙였다 해보고, 혹시 MPLAB C18 컴파일러는 2진수 표기 안되나. 함수의 논리가 잘못된 것일까...

결국 포기하고 잤는데요.

회사에서 데이타 쉬트 열어보고 핀 다이어그램도 찬찬히 살펴보니...

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

와 이놈 진짜 아날로그 채널 엄청나게 많네요.

아마 아날로그 컨피그 레지스터를 따로 설정하지 않아서 오작동을 일으킨게 아닌가 싶습니다.

집에가서 레지스터 설정에서 DIGITAL IO 포트로 설정하고 다시 해보려고 합니다.

짬짬이 회로도 짜고 있었는데 키매트릭스 방식으로 다시 짜야하나 고민되네요.

------------

재확인해보니 오작동의 원인이 이게 아니었습니다.... ㅠㅠㅠㅠ
Posted by 공돌이pooh
,