Beaglebone Black pwm在启动时使用cron只是保持高位(python)



我正在尝试在启动时使Beaglebone Black(BBB)输出pwm。从命令行启动程序时,程序会正确运行。然而,当我试图让程序在启动时运行(使用cron)时,引脚的输出只是很高。

这是我正在运行的代码:

#!/usr/bin/python
import Adafruit_BBIO.GPIO as GPIO    #import GPIO library
import Adafruit_BBIO.PWM as PWM      #import PWM library
#Boost Converter Control
boost_frequency = 1000000            #in Hz, 1000000 = 1MHz
boost_duty_cycle = 50                #in % (0-100)
PWM.start("P8_13", boost_duty_cycle, boost_frequency)

我在/root/exo_code 中将其保存为fes_control.py

当我使用以下命令行运行它时,我在输出端得到正确的pwm:

python fes_control.py

我希望能够在启动时运行这个。

我在命令行中键入了以下内容:

sudo crontab -e

它打开了一个文件,我在底部添加了以下行:

@reboot python /root/exo_code/fes_control.py &

然后我保存并退出。

然而,当我重新启动BBB时,引脚的输出一直很高。我在1kHz pwm频率下也有同样的问题。我还尝试将"sudo"放在cron文件中的"@reboot"one_answers"python"之间,但这并没有改变任何内容。有什么想法吗?

编辑:我还尝试编写一个脚本来运行我的python程序,并将其放在/etc/init.d中(就像本教程中所做的那样:http://www.pietervanos.net/knowledge/start-python-script-from-init-d/)我遇到了和上面完全相同的问题。

好吧,我想明白了。事实证明,我正在运行的代码需要一些在启动时运行代码时没有初始化的东西。我在python代码开始时添加了10秒的延迟,现在它在启动时可以完美工作:)

crontab通常用于指定任务运行的时间

您的命令缺少时间说明符

$nano/etc/crontab

将向您展示一些示例。这是我的

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user  command 

17***根cd/&运行部件--报告/etc/cron.hourly

25 6***根测试-x/usr/sbin/anacron||(cd/&&run parts--report/etc/cron.daily)

476**7根测试-x/usr/sbin/anacron||(cd/&&运行部分--report/etc/cron.weekly)

52 6 1**根测试-x/usr/sbin/anacron||(cd/&&运行部件--报告/etc/cron.monthly)#

所以我认为像这样的命令会起作用

* * * * * root python /root/exo_code/fes_control.py

最新更新