2

私はarduinoが初めてです(実際のところ、プログラミングは)。私は学術プロジェクトのためにarduinoを使用することを考えています。データシート (Atmel の SAM3X8E データシート) を調べているときに、タイマーに出くわしました。すべて 32 ビット カウンターだと言われています。そして、再び 0x0000 に行く前に 0xFFFF までカウントします。少し混乱しています。それらは32ビットカウンターであるため、0xFFFFFFFF(ゼロになる前)までカウントしないでください。16bit カウンターは 0xFFFF までカウントするものだと思います。私が尋ねるのはばかげているかもしれませんが、それに光を当ててください。

前もって感謝します..

37.6 機能の説明、37.6.2 32 ビット カウンター、ページ番号: データシートの 873

4

3 に答える 3

1

データシートや Atmel のアプリケーション ノートには、あなたの観察に反論するものは何も見つかりません。これにより、次の2つのいずれかを信じるようになります。

  1. データシートの説明は不完全です。説明されている動作は下位ワードにのみ適用され、完全な 32 ビット タイマーは 0x00000000 から 0xffffffff まで順番にインクリメントされ、オーバーフローは下位 16 ビットのみに登録されます。

  2. 動作はデータシートに記載されているとおりであり、ソフトウェアはタイマー カウンターを 0x00010000 から 0xffffffff までの値に設定して、タイマーが 0x0000ffff でオーバーフローする前にワンショットの長い期間を許可することができます。

どの動作が実際の動作であるかは、テストによってわかります。

于 2013-11-07T07:32:12.413 に答える
0

あなたは彼らの文書にバグを見つけましたが、彼らはそれを修正しました。

現在のバージョンのデータシートでは、これはセクション 36.6.2 の 860 ページにあり、より理にかなっています。

「カウンターが値 2^32-1 に達してゼロになると、オーバーフローが発生します...」

于 2016-06-09T05:51:06.283 に答える