13.02.2013, 19:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от nerozero
|
Количество шагов - отслеживать через прерывание обновления,
|
А счетчик повторов для этих целей не годится?
__________________
There's always more than one way to skin a cat.
|
|
|
|
13.02.2013, 20:11
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
neyvert, Драйвер у меня аппаратный drv8811 очень доволен (Max 2.5A). Имеется регулируемый Decay. Но эта тема про STM-ы, не буду флудить. Из контроллера только получаю направление и количество шагов (ну и Enable/Sleep/Reset).
tempora, Увы, у счетчика повторов регистр 8 битный. Макс - 255 шагов. Да и зачем, если прерывание от шага до шага занимает целую вечность по темпу жизни ядра контроллера...
|
|
|
|
13.02.2013, 20:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Да, действительно, 8-битный, пришлось бы "повторы повторов" навешивать. Ну, тогда конечно...
__________________
There's always more than one way to skin a cat.
|
|
|
|
13.02.2013, 20:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
А не проще ли управлять через порт в прерывании таймера?
Частота максимальная какая нужна?
|
|
|
|
13.02.2013, 20:38
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Boba_spb, Не проще, пинодрыг в архитектуре АРМ-а весч не благодарная. (Если я Вас правильно понял, вы хотите включение/выключение пина поставить в прерывание). А тут все работает аппаратно.
Вот буквально весь код обработчика прерывания:
Код:
|
void stpm_tim_irq()
{
if(_stpm_pos_dst›_stpm_pos_current)
_stpm_pos_current++;
else
_stpm_pos_current--;
if(_stpm_pos_current == _stpm_pos_dst)
{// disable output
STPM_PWM_STOP;
}
} |
Осталось только записать в _stpm_pos_dst желаемую координату, выставить направление, запустить таймер и в добрый путь...
|
|
|
|
13.02.2013, 21:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Я имел ввиду ногами порта управлять без драйвера,
Типа такого что нить
PHP код:
|
int upr[]={1,2,3,4};
int uk=0;
void stpm_tim_irq()
{
if(!CntStep) return;
CntStep--;
GPIOB-›ODR=upr[uk++];
uk&=3;
}
|
В этом случае руки развязаны и можно управоять как хочешь.
|
|
|
|
13.02.2013, 21:25
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Boba_spb, Это и есть пинодрыг, занимает уйму ресурсов...
|
|
|
|
13.02.2013, 21:29
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Чем это он ресурсы занимает?
Кстати, чего бы уж тогда битбанг не пользовать?
|
|
|
|
13.02.2013, 21:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
все завсит от необходимой частоты.
На STM32f0 - вот это будет кушать меньше одной микросекунды на шаг.
А если еще учесть что нужен разгон и торможение, а если еще и скорости разные, то ножками дрыгать удобнее. Ну дабавится тут еще три четыре оператора в обработке прерывания - за микросекунду вряд ли вылетит.
А stm32f0 - чуть больше рубля стоит
|
|
|
|
13.02.2013, 21:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Boba_spb
|
А stm32f0 - чуть больше рубля стоит
|
В смысле - чуть больше двух долларов?
__________________
There's always more than one way to skin a cat.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:21.
|
|