엔코더 모니터링을 위한 저역통과필터(low-pass filter) 설정 및 모니터링 명령어는 "lpf"입니다.
관련된 명령어로는 컷오프 주파수 설정, 노이즈 카운터 설정 및 노이즈 카운터 모니터링이 있습니다.
저역통과필터 컷오프 주파수를 설정하는 명령어는 set freq입니다.
"dc1 lpf set freq (frequency)"
frequency에 컷오프 주파수를 지정합니다.
저역통과필터 컷오프 주파수를 설정하면 엔코더 모니터링 시 해당 주파수보다 높은 주파수에 해당하는 신호는 카운트하지 않습니다.
spc_request_dev($sid, "dc1 lpf freq 5000");
저역통과필터 노이즈 카운터값을 설정하는 명령어는 set pnc입니다.
"dc1 lpf set pnc (value)"
value에 노이즈 카운터값을 지정합니다.
spc_request_dev($sid, "dc1 lpf set pnc 0");
저역통과필터 노이즈 카운터값 모니터링을 위한 명령어는 get pnc입니다.
"dc1 lpf get pnc"
<?php
include "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(115200);
$sid = 1;
spc_request_dev($sid, "dc1 pwm set period 10000");
spc_request_dev($sid, "dc1 pwm set width 1000");
$freq = 1000;
$count_prev = 0;
while(1)
{
if($freq > 7000)
{
spc_request_dev($sid, "dc1 pwm set width 0");
break;
}
spc_request_dev($sid, "dc1 lpf set freq $freq");
$count = (int)spc_request_dev($sid, "dc1 lpf get pnc");
$diff = $count - $count_prev;
echo "noise count at freq $freq: $diff\r\n";
$freq += 200;
$count_prev = $count;
usleep(200000);
}
?>