現在、電子基板上に "シャント"タイプのセンサーを組み込んでいます。私の選択はLinear(LTC2947)にありましたが、残念ながらArduinoドライバしかありませんでした。私は、マイクロプロセッサ(APQ8009 ARM Cortex-A7)と互換性があるために、Linuxの下でC言語のすべてを翻訳する必要があります。 (遅延のための同等のもの)(はusleep見つけた後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);
}
)、私は(ミリ秒のためにそれを見つけることができません)C.にあなたは私には、この機能を翻訳に役立つことができますしてください:私は小さな疑問機能のおよそ1を持っています?
ArduinoとLinuxは、非常に異なるパラダイムを使用しています。私はあなたが盲目的に行ごとにあなたの目標を達成するかどうか疑います。 @EugeneSh。 –
正解ですが、一般的なガイドラインについては私の答えを見てください。 – TomServo
目標は行ごとに翻訳するのではなく、自分の興味を引くツールを使って機能を再現することです。 – Lauraaaaaaaaa