Цитата(akl @ Jun 6 2017, 06:44)

В этом режиме ICR1 используется в качестве регистра сравнения и автоматом в него извне ничего не заносится.
Да почитал я уже. Надо было замену ARR найти у отмеля для перестройки скорости тактового генератора ШД, сделал на таймере 1:
Код
TCCR1B |= _BV(WGM12); // configure timer1 for CTC mode, TOP is OCR1A
OCR1A = 1000; // set the CTC compare value - 2kHz (means 1kHz)
TCCR1B |= _BV(CS11); // start the timer at 16MHz/8 = 2MHz
TIMSK1 |= _BV(OCIE1A); // enable the CTC interrupt
смена скорости:
Код
TIMSK1 &= ~_BV(OCIE1A); // disable timer interrupt
OCR1A = O;
TCNT1 = 0; // reset counter
TIMSK1 |= _BV(OCIE1A);
Очень непривычное железо: периферии
[CENSORED]. То-то и решают абдуринщики все свои проблемы при помощи тупого ногодрыга, а вместо четких задержек такты считают… Тут элементарно 1-wire реализовать, чтобы не было race conditions, — тот еще гемор! Благо, мне один раз поногодрыжничать на этом
[CENSORED], а потом нормальную систему управления разрабатывать. Для шаговиков думаю какие-нибудь приличные драйвера использовать, соединяемые, скажем, по SPI — дал ему команду, он сам с учетом разгонно-тормозных характеристик на нужное количество шагов движок угонит. А то для генерирования тиков на 5 ШД (если брать халявные драйвера, управляемые CLK/DIR) даже у жирных STM32 таймеров не хватает…
Сообщение отредактировал IgorKossak - Jun 19 2017, 09:44
Причина редактирования: брань