Shell 流水灯 - Alinx Zynq 7010

22 篇文章 3 订阅
9 篇文章 23 订阅
#!/bin/bash

LED_NUM=6
aLED_base=(906 919 898 899 900 901)

##export all led
#echo "export all led"
index=0
while((${index} < ${LED_NUM}))
do
	echo ${aLED_base[${index}]} > /sys/class/gpio/export
	let "index++"
done

##set all gpio-led pin direction out
#echo "set all gpio-led pin direction out"
index=0
while((${index} < ${LED_NUM}))
do
	echo out > /sys/class/gpio/gpio${aLED_base[${index}]}/direction
	let "index++"
done

##turn off all led
#echo "turn off all led"
index=0
while((${index} < ${LED_NUM}))
do      
	echo 1 > /sys/class/gpio/gpio${aLED_base[${index}]}/value
        let "index++"
done

##	user function	
function loopFlush()
{
#echo "into loopFlush function"

DELAY_TIME=0.03
LOOP_COUNT=10
_loopTime=0

while((${_loopTime} < ${LOOP_COUNT}))
do
	#echo "FC:loopFlush start"

	##turn on
	index=0
	while((${index} < ${LED_NUM}))
	do
		echo 0 > /sys/class/gpio/gpio${aLED_base[${index}]}/value
	        let "index++"
		sleep ${DELAY_TIME}
	done

	##turn off
	index=0
	while((${index} < ${LED_NUM}))
	do
		echo 1 > /sys/class/gpio/gpio${aLED_base[${index}]}/value
	        let "index++"
		sleep ${DELAY_TIME}
	done
	let "_loopTime++"

	#echo "FC:loopFlush end"
done
}

function crossFlush()
{
_aLedStateLine=(0 0 0 1 1 1 0 0 0 1 1 1 )
_aLedNumLine=(906 919 898 906 919 898 901 900 899 901 900 899)
_loopTime=0

LOOP_COUNT=10

while((${_loopTime} < ${LOOP_COUNT}))
do
	index=0
	while((${index} < ${#_aLedNumLine[*]}))
	do
		echo ${_aLedStateLine[${index}]} > /sys/class/gpio/gpio${_aLedNumLine[${index}]}/value
		let "index++"
		sleep  0.05
	done
	
	sleep 0.05
	
	let "_loopTime++"
done
}


#main
loopFlush
crossFlush


















:<<COMM
##export all led
echo 898 > /sys/class/gpio/export
echo 899 > /sys/class/gpio/export
echo 900 > /sys/class/gpio/export
echo 901 > /sys/class/gpio/export
echo 906 > /sys/class/gpio/export
echo 919 > /sys/class/gpio/export

##set all gpio-led pin direction out
echo out > /sys/class/gpio/gpio906/direction
echo out > /sys/class/gpio/gpio919/direction
echo out > /sys/class/gpio/gpio898/direction
echo out > /sys/class/gpio/gpio899/direction
echo out > /sys/class/gpio/gpio900/direction
echo out > /sys/class/gpio/gpio901/direction

##turn off all led
echo 1 > /sys/class/gpio/gpio906/value
echo 1 > /sys/class/gpio/gpio919/value
echo 1 > /sys/class/gpio/gpio898/value
echo 1 > /sys/class/gpio/gpio899/value
echo 1 > /sys/class/gpio/gpio900/value
echo 1 > /sys/class/gpio/gpio901/value

while((${LOOP_COUNT} > 0))
do
	##turn on
        echo 0 > /sys/class/gpio/gpio906/value
        sleep ${DELAY_TIME}
	echo 0 > /sys/class/gpio/gpio919/value
        sleep ${DELAY_TIME}
	echo 0 > /sys/class/gpio/gpio898/value
	sleep ${DELAY_TIME}
        echo 0 > /sys/class/gpio/gpio899/value
	sleep ${DELAY_TIME}
	echo 0 > /sys/class/gpio/gpio900/value
        sleep ${DELAY_TIME}
        echo 0 > /sys/class/gpio/gpio901/value
        sleep ${DELAY_TIME}

	##turn off
        echo 1 > /sys/class/gpio/gpio906/value
	sleep ${DELAY_TIME}
        echo 1 > /sys/class/gpio/gpio919/value
       	sleep ${DELAY_TIME}
 	echo 1 > /sys/class/gpio/gpio898/value
        sleep ${DELAY_TIME}
        echo 1 > /sys/class/gpio/gpio899/value
        sleep ${DELAY_TIME}
        echo 1 > /sys/class/gpio/gpio900/value
       	sleep ${DELAY_TIME}
       	echo 1 > /sys/class/gpio/gpio901/value
        sleep ${DELAY_TIME}

	let "LOOP_COUNT--"
done
COMM

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值