簡體   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