2011-08-24 64 views
1

我會懷疑這是一個簡單的問題,但我無法在任何地方找到答案。ImageCraft會創建CPU頻率定義嗎?

ImageCraft編譯器是否創建一個CPU頻率定義?我知道gcc-avr的形式是F_CPU,但我一直無法找到iccavr的類似定義。

回答

0

我看看在線手冊,發現只有少數幾個預定義宏:

http://www.imagecraft.com/help/iccavr/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ICCAVRHelp&file=5A-CPreprocessor2.html

似乎對CPU頻率的符號不存在。順便說一句,除非你可以在構建選項(我不知道,因爲我很久以前使用過這個編譯器)中指定了這個地方,編譯器並不真正知道avr頻率是什麼。微控制器可以運行在不同的頻率和振盪器(RC/XTAL),編譯器並不關心它,因爲它產生的機器代碼無論如何都會運行,程序員負責處理這個問題。

但是有一點很方便,就是CPU類型,例如,如果你需要在許多CPU上做一些代碼工作,其中一些寄存器有不同的名稱或位,那麼你可以#ifdef適當的符號,如ATMega128和處理CPU特定的代碼。

+0

謝謝。所以這是我懷疑的。我知道編譯的代碼不受時鐘頻率的影響,但如果它是某個項目特定的設置,它仍然會很好。 – Kenneth

+0

您可以從目標設​​置中定義全局符號中的頻率,這與編譯器所做的相同。或者,您可以設置由所有低級模塊共享的項目特定標頭。 – Zmaster