|
廢話不多說了 先看影片的狀況吧
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是第幾根數字管
麻煩各位大大們了 看看有沒有甚麼辦法可解決
若有甚麼不了解的部分 麻煩大大們提出
替小弟我解決這個問題吧!!
|
|