我是ARM實驗的新手,我在這個處理器中的數據概念有問題。 我遇到了麻煩。有代碼來檢查計時器間隔:數據存儲如何在ARM處理器
// get the current timer 0 count
unsigned long Timer0_GetTimestamp(void)
{
return T0TC;
}
// check to see if a timestamp is in the past
// returns 1 if in the past, 0 if not
int Timer0_TimestampExpiredCk(unsigned long timestamp)
{
unsigned long now = T0TC;
if (now > timestamp)
{
if ((now - timestamp) < 0x80000000)
return 1;
else
return 0;
}
else
{
if ((timestamp - now) >= 0x80000000)
return 1;
else
return 0;
}
}
// pause for a specific number of milliseconds
void Timer0_Delay(unsigned long milliseconds) {
unsigned long timestamp = Timer0_GetTimestamp() + milliseconds;
while (!Timer0_TimestampExpiredCk(timestamp));
}
我有一個數字「0x80000000」的問題。我們應該把這個數字看作二進制補碼還是二進制碼? 這是假設,當兩個變量之間的差異是零,我們改變我們的國旗。糾正我,如果我錯了。
謝謝
在我看來像正常的C/C++代碼...它有什麼特別的ARM?(添加C/C++標籤,因爲它看起來像基本的C問題) – 2012-07-24 01:43:10