我目前正在研究電子板上「分流」型傳感器的集成。我選擇的是Linear(LTC2947),不幸的是它只有一個Arduino驅動程序。爲了與我的微處理器(APQ8009 ARM Cortex-A7)兼容,我必須在Linux下用C語言翻譯所有內容。我有一個小問題有關的功能之一:相當於Arduino millis()
int16_t LTC2947_wake_up() //Wake up LTC2947 from shutdown mode and measure the wakeup time
{
byte data[1];
unsigned long wakeupStart = millis(), wakeupTime;
LTC2947_WR_BYTE(LTC2947_REG_OPCTL, 0);
do
{
delay(1);
LTC2947_RD_BYTE(LTC2947_REG_OPCTL, data);
wakeupTime = millis() - wakeupStart;
if (data[0] == 0) //! check if we are in idle mode
{
return wakeupTime;
}
if (wakeupTime > 200)
{
//! failed to wake up due to timeout, return -1
return -1;
}
}
while (true);
}
發現usleep()函式等同延遲(),我無法找到它米利斯()後在C.你能不能幫我翻譯這個功能,請?
Arduino和Linux正在使用*非常*不同的範例。我懷疑你會盲目地逐行翻譯你的目標。 –
@EugeneSh。是正確的,但請參閱下面的答案以獲取一般準則。 – TomServo
目標不是逐行翻譯,而是採用讓我感興趣的工具重新創建我的功能。 – Lauraaaaaaaaa