Форум сайта python.su
0
Доброго времени суток уважаемые форумчане! Программировать на Python начал недавно, после приобретения Raspberry pi. Раньше программировал (и до сих пор практикую) микроконтроллеры avr (asm, C), ПЛК со средой исполнения CoDeSys (ST, LD, FBD). А посему есть вопросы по быстродействию к программам на python и к применимости python в своих разработках.
Написал я тут недавно простенькую прогу – Диммер для светодиодной ленты (в качестве обучения). В роли устройства выбрал недавно купленный RPi modelB. Идея такая: Нажал на кнопку -> светодиодная лента в течении 3 секунд загорается от 0% до 100%.
Нажал второй раз -> светодиодная лента гаснет (сразу). Вот и всё. Только вот у меня не получилось, зажигать светодиоды в интервале 3 секунд. В итоге получилось что моя программа зажигала светодиоды от 0% до 100% за 7 секунд. Это честно меня расстроило.
листинг во вложении:
По сути я разбил временной интервал 3 секунды на 0,1 секунды получилось 30 частей времени.
И 1024 разбил на 30 частей, для того чтобы – прошло 0,1 секунды, а в функцию LED_Dimmer записалось 34. В следующей итерации соответственно запишутся числа на 34 больше. И чем меньше интервалы времени, тем плавне должны загораться светодиоды, так я думал
Но почему проц в 700 МГц у RPi решает такую задачу слишком долго. А ATMega16 с кварцем 8МГц в разы быстрее… Возможно решение выбрано не правильно, не исключаю.
У кого какие идеи увеличить скорость выполнения этой программы?
Возможно такие задачи лучше и дешевле решать на мк, но в качестве обучения было бы не плохо выслушать другие мнения.
Отредактировано zip1982b (Ноя. 8, 2014 17:12:46)
Офлайн
0
вложение
Прикреплённый файлы:
програ.txt (1,4 KБ)
Офлайн
253
Может причина в опечатке?
def Led_Time(argX, ragtime):
def Led_Time(argX, argtime):
def LED_Dimmer(arg_value): # в эту функцию просто пихаем число от 0 до 1024 wiringpi.pwmWrite(led, arg_value)
Отредактировано doza_and (Ноя. 8, 2014 20:27:52)
Офлайн
0
def Led_Time(argX, ragtime): - это опечатка когда копипастил и правил в блокноте.
С абсолютным временем? это с системным?
мне и самому sleep() не нравится 
Офлайн