mikecat_mixc mikecat_mixc 2015-02-24 10: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] すげーちゃんと動く!

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

結合試験2日前に脱退したうんkプログラマ...

return 0;

鑑賞する »

[C++] privateな定数

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

これじゃpublicどころか魔黒の副作用...

// foo.h

#ifndef FOO_H
#define FOO_H...

鑑賞する »