mikecat_mixc 2015-02-24 01:43:16

[C++] いつからディレイ以外の処理の実行時間がゼロだと錯覚していた…(Arduino) このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

およそ58kHzの信号が出力されました。(Arduino UNO R3)

実は公式サンプル(WebArchive)にもこの問題があるのですが、ここでは周期を短くすることでより問題を目立たせています。

const int outPin = 2;

void setup() {
  pinMode(outPin, OUTPUT);
}

void loop() {
  // 100kHzの信号を出力
  for (;;) {
    // (1s)/(100*10^3)は10マイクロ秒だってGoogleが言ってた
    // delayMicrosecondsは3マイクロ秒以上なら正確ってリファレンスに書いてあった
    // 10マイクロ秒を2で割って5マイクロ秒ずつウェイトを入れる
    digitalWrite(outPin, HIGH);
    delayMicroseconds(5);
    digitalWrite(outPin, LOW);
    delayMicroseconds(5);
  }
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント

まだコメントがありません。最初にコメントを残しませんか?

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[C++] 哀愁漂うセミコロン

このエントリーをはてなブックマークに追加

つい先ほどやってしまったミス。
...

/*
 * unko.cpp
 */

#pragma once

...

鑑賞する »

[C++] 真偽値

このエントリーをはてなブックマークに追加

少なくとも自動生成されたコードではなかっ...

bool flgSame = false;
if (valA == valB)...

鑑賞する »

[PHP] 有限ループ(有限とは言ってない)

このエントリーをはてなブックマークに追加

俺が実装中に生み出したクソトラップコード...

for ($i=0; i<100; $i++) {

    echo "h...

鑑賞する »