繁体   English   中英

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

[英]Beaglebone Black pwm at startup using cron just stays high (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)

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

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

python fes_control.py

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

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

sudo crontab -e

这将打开一个文件,在底部添加以下行:

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

然后,我保存并退出。

但是,当我重启BBB时,该引脚的输出一直处于高电平。 在1kHz pwm频率下,我有同样的问题。 我还尝试在cron文件中的“ @reboot”和“ python”之间放置“ sudo”,但没有任何改变。 有什么想法怎么回事?

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

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 * * * * root cd / &&运行部件--report /etc/cron.hourly

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

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

52 6 1 * *根测试-x / usr / sbin / anacron || (cd / && run-parts --report /etc/cron.monthly)#

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

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

好吧,我知道了。 原来,我正在运行的代码需要一些在启动时正在运行的代码未初始化的东西。 我在python代码的开头添加了10秒的延迟,现在它在启动时可以完美运行:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM