Eddy_Em 1 6 июня, 2017 Опубликовано 6 июня, 2017 (изменено) · Жалоба В этом режиме 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 таймеров не хватает… Изменено 19 июня, 2017 пользователем IgorKossak брань Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться