2014-01-10 51 views
-1

我正在使用飛思卡爾的HCS12微控制器,並提出了一個問題。什麼影響時間延遲?我說了晶體頻率和正在使用的編譯器的類型。我知道我可以通過訪問控制時鐘源XTAL和EXTAL的兩個引腳的功能來設置不同的頻率。程序員可以設置用於執行指令的時鐘週期數嗎?

我的主要問題是正如標題所示:「我可以設置用於執行給定指令的時鐘週期數嗎?」。我只是不明白這個問題以及它的要求。我怎樣才能爲一條指令設置一個時鐘週期,或者指定它們有多少條指令。類似於Assembly中的指令具有預定義的執行時間週期數。例如,無操作「NOP」指令浪費一個時鐘週期。所以我唯一想知道如何改變它的方法是改變頻率,使其持續時間更短或更長,這將改變執行指令的時鐘週期數。我在這裏跟蹤還是失去主意?

+0

誰問這個問題? SO並不是特別適合於這個問題的問題,但是這個問題很明顯。 – nmichaels

+1

「影響」,而不是「效果」。 –

+0

我不知道那個處理器,但是一些指令,比如DIV,如果它必須處理更大的數字,可能需要更多的週期。 DIV通常使用一個循環來逐個處理每個位。 –

回答

4

每個操作碼都使用設定數量的時鐘週期。你不能設置它,這是一個硬件限制。

如果更改時鐘頻率,則不會更改執行操作碼所需的週期數。它只會改變需要多長時間。

+0

如果你想要一些死循環,你需要這樣的東西:'asm(「nop」);'' –

相關問題