1. 程式人生 > >STM32影子暫存器的作用

STM32影子暫存器的作用

這表示在物理上這個暫存器對應2個暫存器:一個是我們可以可以寫入或讀出的暫存器,稱為預裝載暫存器,另一個是我們看不見的、無法真正對其讀寫操作的,但在使用中真正起作用的暫存器,稱為影子暫存器.
資料手冊介紹預裝載暫存器的內容可以隨時傳送到影子暫存器,即兩者是連通的(permanently),或者在每一次更新事件(UEV)時才把預裝載暫存器的內容傳送到影子暫存器。
原文如下:
The auto-reload register is preloaded. Writing to or reading from the auto-reload register accesses the preload register. The content of the preload register are transferred into the shadow register permanently or at each update event (UEV), depending on the auto-reload preload enable bit (ARPE) in TIMx_CR1 register. The update event is sent when the counter reaches the overflow (or underflow when downcounting) and if the UDIS bit equals 0 in the TIMx_CR1 register. It can also be generated by software. The generation of the update event is described in detailed for each configuration.


在圖中的,表示對應暫存器的影子暫存器可以在發生更新事件時,被更新為它的預裝載暫存器的內容;而圖中的部分,表示對應的自動過載暫存器可以產生一個更新事件(U)或更新事件中斷(UI)。
設計預裝載暫存器和影子暫存器的好處是,所有真正需要起作用的暫存器(影子暫存器)可以在同一個時間(發生更新事件時)被更新為所對應的預裝載暫存器的內容,這樣可以保證多個通道的操作能夠準確地同步。如果沒有影子暫存器,軟體更新預裝載暫存器時,則同時更新了真正操作的暫存器,因為軟體不可能在一個相同的時刻同時更新多個暫存器,結果造成多個通道的時序不能同步,如果再加上例如中斷等其它因素,多個通道的時序關係有可能會混亂,造成是不可預知的結果。

總之:就是為了按照CPU CLOCK週期進行暫存器資料的更新。