LaTeX

2017-05-30

beaglebone pwm.sh

#!/bin/sh
SLOTS=/sys/devices/bone_capemgr.9/slots
PWM=/sys/devices/ocp.3/

green=pwm_test_P8_19.13
yellow=pwm_test_P8_13.12
red=pwm_test_P8_34.14

duty_grn=500000 # initial
duty_ylw=250000 # initial
duty_red=0 # initial


install_cap() {
cap=$1
if ! grep $cap $SLOTS >/dev/null; then
echo $cap > $SLOTS
fi
}


install_cap am33xx_pwm
install_cap bone_pwm_P8_13
install_cap bone_pwm_P8_19
install_cap bone_pwm_P8_34
maxduty=`cat /sys/devices/ocp.3/$green/period`
duty=$maxduty
step=`expr $maxduty / 50`

led_setup() {
echo 0 > /sys/devices/ocp.3/$2/polarity
echo $1 > /sys/devices/ocp.3/$2/duty
}

led_loop() {
pin=$1
cd $PWM/$pin

duty=`cat duty`
duty=`expr $duty - $step`

if [ $duty -lt 0 ]; then 
duty=$maxduty
pol=`cat polarity`
echo `expr 1 - $pol` > polarity && echo $duty > duty
fi
echo $duty > duty
}

led_setup $duty_grn $green
led_setup $duty_ylw $yellow
led_setup $duty_red $red

while true; do

led_loop $green
led_loop $yellow
led_loop $red

done

beagle bone leds.sh

#!/bin/bash
DP=/sys/class/gpio
led_green=47
led_yellow=46
led_red=76

pin_on() {
echo 1 > $DP/gpio$1/value
}

pin_off() {
echo 0 > $DP/gpio$1/value
}
pin_blink() {
pin_on $1
sleep 0.15
pin_off $1
}

for l in $led_green $led_yellow $led_red; do 
echo $l > $DP/export
echo out > $DP/gpio$l/direction;
done

while true; do
for l in $led_green $led_yellow $led_red; do pin_blink $l; done
for l in $led_red $led_yellow $led_green; do pin_blink $l; done

done