По формуле S = V0 * t + (a * t * t)/2 = 300 * 0,025 + (5000000 * 0,025 * 0,025)/2 = 1570 [импульсов]
Или я что-то не так считаю ? Может 1570 - это число импульсов + число пауз ?
По формуле S = V0 * t + (a * t * t)/2 = 300 * 0,025 + (5000000 * 0,025 * 0,025)/2 = 1570 [импульсов]
Или я что-то не так считаю ? Может 1570 - это число импульсов + число пауз ?
Последний раз редактировалось Newcomer; 30.06.2017 в 14:20.
Всё так, это должно получаться количество импульсов. Иными словами, должно было получиться 800.
Во-первых, точная длительность всей последовательности -- 23мс (25 это я на глаз сказал, а вертикальная белая линия после 20мс это 22.5мс)
Во-вторых, фактическая достигнутая скорость на 23мс получилась где-то 70кГц, а должна была быть 115кГц (== 5000000 * 0,023)
Возможно, это погрешность того, что PRU вычисления идут в целых числах.
Возможно, формула с ошибкой.
Ну и не стоит забывать про то, что сама по себе формула приближенная. В точной формуле нужно было бы вычислять квадратный корень на каждом шаге, и приближения должно хватать.
Попробовал указать minSpeed=0 -- получается примерно 17.3мс:
2017-06-30-minspeed_0.png
minSpeed=1000 -- 18.3мс
2017-06-30_minspeed_1000.png
minSpeed=10000 -- 15.2мс
2017-06-30_minspeed_10000.png
Последний раз редактировалось Владимир Ситников; 30.06.2017 в 14:51.
800 и 1570 - это две большие разницы и тут явно не в погрешности дело.
С minSpeed то же не понятно. Чем больше minSpeed, тем меньше должно быть время.
Последний раз редактировалось Newcomer; 30.06.2017 в 15:10.