速度太快 ? 訊號 ? 請大大們幫幫我 ...
廢話不多說了 先看影片的狀況吧http://v.youku.com/v_show/id_XNTEyNTQzNDI0.html
影片中的東西是真空管 我的目的是用pi 當成處理器 做出一個時鐘
影片中是秒的個位數字
但是問題發生了 他都會先從第一支燈管開始掃到我要的那支燈管(最後一支)
真空管上有兩個IC 分別是 HEF4028和 K155ID1 做驅動和解碼的動作
我是用php寫的
程式碼如下#!/usr/bin/php
<?php
function light($tube,$num)
{
require_once("GPIO.php");
$gpio = new GPIO();
$gpio->setup(4,"out"); //number
$gpio->setup(17,"out");
$gpio->setup(22,"out");
$gpio->setup(10,"out");
$gpio->setup(14,"out");//tube
$gpio->setup(15,"out");
$gpio->setup(18,"out");
$gpio->setup(23,"out");
$gpio->setup(9,"out"); //dot
$gpio->setup(25,"out");
$t=decbin($tube);
$lent=strlen($t);
if ($lent==1)
{
$td=0;
$tc=0;
$tb=0;
$ta=$t;
}
else if($lent==2)
{
$td=0;
$tc=0;
$tb=substr($t,0,1);
$ta=substr($t,1,1);
}
else if($lent==3)
{
$td=0;
$tc=substr($t,0,1);
$tb=substr($t,1,1);
$ta=substr($t,2,1);
}
$n=decbin($num);
$lenn=strlen($n);
if ($lenn==1)
{
$nd=0;
$nc=0;
$nb=0;
$na=$n;
}
else if($lenn==2)
{
$nd=0;
$nc=0;
$nb=substr($n,0,1);
$na=substr($n,1,1);
}
else if($lenn==3)
{
$nd=0;
$nc=substr($n,0,1);
$nb=substr($n,1,1);
$na=substr($n,2,1);
}
else if($lenn==4)
{
$nd=substr($n,0,1);
$nc=substr($n,1,1);
$nb=substr($n,2,1);
$na=substr($n,3,1);
$gpio->output(4,$nd);
$gpio->output(17,$nc);
$gpio->output(22,$nb);
$gpio->output(10,$na);
$gpio->output(14,0);
$gpio->output(15,1);
$gpio->output(18,1);
$gpio->output(23,1);
$gpio->unexportALL();
echo $td.$tc.$tb.$ta."==".$nd.$nc.$nb.$na."\n";
}
$i=1;
while($i>0)
{
echo "!!".date("s")."!!"."\n";
$t=7;
$n=substr(date("s"),1,1);
echo "--".$t." ".$n."--"."\n";
light($t,$n);
usleep(500000);
}
?>usleep是為了清楚看到上述的那種狀況
因為目前我只先做秒的個位 所以程式中省略的部分我就不貼上了
echo是debug用的 可以無視
gpio4,17,22,10是甚麼數字
14,15,18,23是第幾根數字管
麻煩各位大大們了 看看有沒有甚麼辦法可解決
若有甚麼不了解的部分 麻煩大大們提出
替小弟我解決這個問題吧!!
页:
[1]