Доброго времени суток уважаемые форумчане! Программировать на 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МГц в разы быстрее… Возможно решение выбрано не правильно, не исключаю.
У кого какие идеи увеличить скорость выполнения этой программы?
Возможно такие задачи лучше и дешевле решать на мк, но в качестве обучения было бы не плохо выслушать другие мнения.
