03.01.2015, 14:09
|
#4201
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Патамушта нет возможности напрямую обратиться к регистрам таймеров STM8/32. Всё общение идёт через теневые регистры. Всё что пишется или читается в/из таймера - только через теневые регистры. Это даёт возможность изменять значения регистров тайиера "на лету", если таймер запущен. Если таймер остановлен, то нужно взвести бит UG, для того чтобы новые значения записались в регистры тайиера. Чтобы в этот момент не взвёлся флаг прерывания и существует флаг UDIS. Если же нужно чтобы новые значения приобрели актуальность только после обновления/переполнения, то для этого и служит ARPE, т.е режим предзагрузки, для CCR есть отдельный бит OCxPE.
В общем - всё красиво и мощно! Респект!
Последний раз редактировалось STM32F0; 03.01.2015 в 14:12.
|
|
|
|
03.01.2015, 15:44
|
#4202
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,003
Сказал спасибо: 0
Сказали Спасибо 4,946 раз(а) в 2,374 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
"Которые тут временные? Слазь! Кончилось ваше время" (с)
с новым китайским гадом!
1
2
купить 1
купить 2
|
|
|
|
03.01.2015, 16:11
|
#4203
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Гы! Эта новость уже мхом поросла!
|
|
|
|
03.01.2015, 16:32
|
#4204
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от jump
|
"Которые тут временные? Слазь! Кончилось ваше время" (с)
с новым китайским гадом!
|
Документация, насколько понимаю, от STM32 ?
|
|
|
|
03.01.2015, 16:36
|
#4205
|
Временная регистрация
Регистрация: 24.11.2010
Сообщений: 82
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
STM32F0, давайте по порядку
при попытке записать новое значение в ARR куда оно попадает ?
в preload register или shadow register ?
|
|
|
|
03.01.2015, 16:47
|
#4206
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
preload register - это то, с чем работает программист, с shadow register работает сам таймер.
Сообщение от STM32F0
|
Всё что пишется или читается в/из таймера - только через теневые регистры. Это даёт возможность изменять значения регистров тайиера "на лету", если таймер запущен.
|
А что, в ненавитстной АВРке иначе?
|
|
|
|
03.01.2015, 16:52
|
#4207
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Если бит ARPE выставлен то в прелоад, если не выставлен и таймер запущен, то сразу в теневой регистр и на следующем такте в ARR, если таймер не запущен, то в теневой регистр, а в регистр по переполнению,
что по сути - однократная загрузка в прелоад.
|
|
|
|
03.01.2015, 16:55
|
#4208
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от omercury
|
А что, в ненавитстной АВРке иначе?
|
Да там всё иначе, даже само название не как у людей. ))
|
|
|
|
03.01.2015, 17:04
|
#4209
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Всё, что имеет право быть измененным на лету, имеет свою теневую копию, перезапись в которую осуществляется либо при запуске, либо по событию внутри таймера. STM-овские просто понавороченней, что и не удивительно, учитывая возраст и назначение авээрок.
|
|
|
|
03.01.2015, 17:04
|
#4210
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от omercury
|
preload register - это то, с чем работает программист, с shadow register работает сам таймер.
|
Не чуди! )))
Цитата:
|
The 16-bit counter, the prescaler, the auto-reload register and the repetition counter register
can be written or read by software.
The auto-reload register is composed of a preload register plus a shadow register.
Writing to the auto-reload register can be done in two modes:
Auto-reload preload enabled (ARPE bit set in the TIM1_CR1 register). In this mode,
when data is written to the auto-reload register, it is kept in the preload register and
transferred into the shadow register at the next update event (UEV).
Auto-reload preload disabled (ARPE bit cleared in the TIM1_CR1 register). In this
mode, when data is written to the auto-reload register it is transferred into the shadow
register immediately.
An update event is generated:
On a counter overflow or underflow
By software, setting the UG bit in the TIM1_EGR register
By a trigger event from the clock/trigger controller
With preload enabled (ARPE = 1), when an update event occurs: The auto-reload shadow
register is updated with the preload value (TIM1_ARR) and the buffer of the prescaler is
reloaded with the preload value (content of the TIM1_PSCR register).
The UEV can be disabled by setting the UDIS bit in the TIM1_CR1
The counter is clocked by the prescaler output CK_CNT, which is enabled only when the
counter enable bit (CEN) in TIM1_CR1 register is set.
|
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:46.
|
|