sadr0b0t / stepper_h

Stepper motor control library for ChipKIT/Arduino
GNU Lesser General Public License v3.0
3 stars 1 forks source link

Тип данных для prepare_steps:step_count int -> long #15

Closed sadr0b0t closed 7 years ago

sadr0b0t commented 7 years ago

1) Заменить тип данных для параметра prepare_steps:step_count (и всех сопутствующих местах) с int на long.

Для совместимости между разными архитектурами: на PIC32 int 32 бит, на Arduino - 16 бит; зато long - 32 бит и на PIC32 и на Arduino

2) Посчитать, какое максимальное расстояние мы можем пройти с таким количеством шагов (например, если шаг=7.5мкм, как на Ррапторе) и за какое время (на максимальной скорости). Это для полноты картины в документацию.

sadr0b0t commented 7 years ago
    /**
     * Количество шагов в текущей серии (если non_stop=false).
     * 
     * Для мотора с приводом шаг 7.5мкм, 1000мкс минимальная задержка между шагами мотора.
     * 
     * для 32битного знакового целого:
     * макс расстояние за серию=
     * (2^31-1)*7.5мкм=(2147483648-1)*7.5мкм=16106127360мкм=16106127мм=16106м=16км
     * макс время при движении с макс скоростью=
     * (2^31-1)*1000мкс=(2147483648-1)*1000мкс=2147483сек=35791мин=596ч=24дня
     * 
     * для 16битного знакового целого:
     * макс расстояние за серию=
     * (2^15-1)*7.5мкм=(32768-1)*7.5мкм=245752мкм=245мм=24см
     * макс время при движении с макс скоростью=
     * (2^15-1)*1000мкс=(32768-1)*1000мкс=32сек
     * 
     * В PIC32 int и long - 32 бит.
     * В Arduino long - 32 бит, int - 16 бит.
     * 
     * итого: нам нужны 32 бит, для PIC32+Arduino без лишних макросов - это long.
     */
    long step_count;

https://github.com/1i7/stepper_h/commit/57fac223de5ec517ad7c029dad7cf5a6edb9d084