안녕하세요.. 오늘도 덥네요...;;
마우스 센서부를 만들고 있습니다...
제가 쓰고 있는 avr 은 atmega128 이구요.. M128B1 Board 으로 모듈로 된 것을 쓰고 있습니다..
수광에서 받는 빛의 양을 LCD에 나타내 주는 소스를 짜고 싶은데요..
이렇게 한번 짜봤습니다.
포트 D에는 LCD 를 포트 F 에는 수광센서 부분을 연결해 주었구요..
int main(void)
{
int n;
DDRD=0xff; // LCD 포트
DDRF=0x00; // 수광센서 입력 포트
delay_5ms();
lcd_init(); // LCD 초기화 함수
delay_5ms();
ADMUX=0xe0; // <-- 이부분과..
ADCSRA=0xe0; // <-- 이부분의 설정이 맞나요?
while(1)
{
delay_5ms();
ADCSRA|=0x10;
while(!(ADCSRA & 0x10)); // adc 종료 때가지 기다림.
temp1=ADCW;
compare(temp1);
/* ADC된 값을 LCD 로 나타내기 위해
LCD에 표시하는 값을 table[n]에 넣어주는 함수.*/
cmd_write(0x80); // LCD 위치 지정
for(n=0;n<9;n++)
{
data_out(table[n]); // 입력값을 ADC 한 값을 LCD에 표시
}
delay_5ms();
}
return 0;
}
이렇게 해서 수광센서에 흰종이를 가까이 대보면
LCD에 값이 0에서 한번 변했다가 다시 0으로 돌아가는 현상을 반복합니다..
계속 대고 있으면 계속 같은 값이 꾸준히 나오는게 정상 이겠죠?;
대지도 않았는데 값이 변하기도 하구요...;;
소스를 정확히 짠건지 궁금합니다..
좋은주말 되시구요..
쩝 요새는 레지스터 찾아보기도 귀찮아서 이거원// 레지스터 부분은 빼고 보겠습니다(프리러닝 모드로 설정하신건가?)
table[n] 이 변수는 어디서 값이 할당되는지요? 할당문이 안보이는데요/