: 1차원 직선의 밝은 정도를 인식하는 센서.
위의 그림과 같이 0~127 (2^7) 범위로 읽어서, 0~4095 (2^12)의 값으로 읽어드리는 센서.
ADC모듈을 사용하면 된다.
(1~4)동작을 수행하면, Analog Output을 위한 세팅을 한다. 이때, 최소 동작시간을 350ns이상 보장해줘야한다. 나머지 사이의 시간은 50ns이상 보장해주면 된다.
이 과정은 XMC4500, Dave 개발환경에서 이루어졌습니다.
void LineScanCamera_run(void){
//STEP 1
DIGITAL_IO_SetOutputHigh(&dhDIG_SI);
DIGITAL_IO_SetOutputLow(&dhDIG_CLK);
wait1us(1);
DIGITAL_IO_SetOutputHigh(&dhDIG_SI);
DIGITAL_IO_SetOutputHigh(&dhDIG_CLK);
wait1us(1);
DIGITAL_IO_SetOutputLow(&dhDIG_SI);
DIGITAL_IO_SetOutputHigh(&dhDIG_CLK);
wait1us(1);
//STEP 2
for (idx = 0; idx < 128; ++idx){
DIGITAL_IO_SetOutputLow(&dhDIG_SI);
DIGITAL_IO_SetOutputLow(&dhDIG_CLK);
wait1us(3);
DIGITAL_IO_SetOutputLow(&dhDIG_SI);
DIGITAL_IO_SetOutputHigh(&dhDIG_CLK);
wait1us(3);
ADC_GetValue = ADC_MEASUREMENT_GetResult(&ADC_MEASUREMENT_ChLSC_handle);
IR_LineScan.adcResult[idx] = ADC_GetValue;
}
#이후 SI, CLK 모두 Low
DIGITAL_IO_SetOutputLow(&dhDIG_SI);
DIGITAL_IO_SetOutputLow(&dhDIG_CLK);
wait1us(100);
}
최소 동작시간은 50~350ns 이었지만, XMC4500은 최소 1us를 지원하기 때문에 3us정도 대기시간을 부여함. (이 대기시간이 인식정도의 차이를 발생할 수 있다.)