Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > скорость тиканья таймера |
Автор: supercelt 14.9.2017, 22:02 | ||||
Привет! Хочу посоветоваться... вот кусок кода. МК stm32f405
ставлю точку останова на state=2 и начинаю шагать. TIM6->CNT = 0; - обнуляет, но при обнулении допустим с 480 перескачет сразу на 300 а когда я перехожу на следующую строку, в TIM6->CNT уже 613. Настройки:
то есть вопрос, может ли 1 строчка занимать 300 тиков таймера с частотой 10 кгц? |
Автор: xvr 15.9.2017, 16:34 |
Предполагаю, что все это происходит в отладчике на реальном процессоре. так же предполагаю, что отладчик не останавливает весь CPU когда программа остановлена (в частности таймер может продолжать считать). Тогда вполне возможно, что 1 строчка + нажатие пары клавиш на клавиатуре РС (что бы до этой строчки дойти) вполне может насчитать в таймере и 300 и 3000 и сколько угодно ![]() |
Автор: supercelt 15.9.2017, 16:43 |
Аааа, не понятно. А то я уже начал волноваться))) |
Автор: Мелена 30.9.2017, 16:04 |
а вот мне непонятно |
Автор: Курсант 5.11.2017, 20:20 |
Мелена, а чего непонятного? После того, как Вы настроили тактирование периферийных устройств, они работают самостоятельно, параллельно с ядром, общение ядра и периферии обычно происходит через специальные регистры или через шину. Если Вы остановили выполнение программы ядром в режиме отладки, это ещё не значит, что вся периферия остановилась. Вполне возможно, что таймеры продолжают считать, контроллеры интерфейсов - отправлять и принимать данные, выставлять флаги прерываний, и так далее. А ядро остановлено, и программист копается в коде. А периферия работает. |