안녕하세요... 아크마님의 조언을 따라 열심히 노력중입니다...
포트B 에는 발광 센서를 연결해 주었구요.. 펄스 형태로 주기 위해 딜레이를 주었습니다,. 타이머 1번으로 설정해서
계속 껏다 켯다를 반복하게 만들었습니다,.
포트 E 에는 모터부를 연결해 주었구요. 타이머 0와 타이머 2에 연결해 주어서 오른쪽 모터와 왼쪽 모터를 하나씩
연결해 주었습니다. 각각 왼쪽 오른쪽 모터를 제어하려구요..
포트 D 에는 LCD 를 연결해 주었는데요. 소스상에는 일단 LCD 소스를 넣지 않았습니다..
포트 F 에는 수광 센서를 연결해 주어서 ADC를 하도록 소스를 짯는데요..
일단 수광 센서를 ADC 하여 그 값이 어느 정도 이상되면 모터 속도를 줄이게 해보는
프로그램을 짜 봣습니다. 센서에 흰종이를 대면 속도가 줄다가 다시 떼면 속도가 빨라지는...
그런데 이렇게 돌리게 되면 포트 F 에서 수광을 몇 초간만 하게 되고 그 후엔 수광을 하지 못하게 됩니다..
(센서 앞에 흰종이를 대고 포트 F 0 번 핀의 전압을 재봣더니 1V 정도가 나오다가 몇 초후엔 전압이
나오지 않게 되더라구요..)
제가 짠 소스에서 바꿔야 될 부분이나 권장 하는 방법을 가르쳐 주시면 정말 감사하겠습니다...
좋은 하루 되시구요..
단, 모터부분은 좀더 정밀하게 제어하기 위해서는 16비트 타이머인 0번과 3번을 사용하는게 좋을듯 보입니다.
그런데 이렇게 돌리게 되면 포트 F 에서 수광을 몇 초간만 하게 되고 그 후엔 수광을 하지 못하게 됩니다..
-> 발광에서는 적외선이 나오는데 수광이 안되는건가요? 아니면 수광이 안되는건가요/ 수광은 회로만 맞으면 안될턱이 없습니다. adc쪽을 점검해보세요.
발광이 on/off가 제대로 작동되는지도 체크해보시고요. 혹 모터쪽과 관련된 코드에서 발광 on/off에 영향을 줄만한 소스가 있는지도 참고하고요. 타이머0,2번을 통해서 모터를 제어하다가 타이머1설정을 바꾼다던지 전체 타이머 enable설정을 바꾼다던지요..
회로만 맞는다면 소스상의 문제라고 보여지네요.
조금만 더 수고하시면 곧 정상을 밟겠군요 수고하세요^^;; 전 오늘도 무쟈게 괴로운 하루네요.ㅋ
이런...타이머 1인터럽트 안에 딜레이 함수를 썼군요..딜레이를 해버리면 다른곳에 영향을 주니까 좋지 않아요..
타이머를 쓰면 타이머로 인터벌을 만들어주는게 좋아요~~~~
계수 카운팅을 통해서 타이머 1에서 인터벌을 만들어서 on/off해주세요.
타이머3에서도 딜레이함수를..ㅡㅡ;
제가 짜놓은 adc소스를 찬찬히 보시면 좋은 해결방안이 나올듯 싶습니다.