« トランジスタ技術2024年3月号に記事が載りました | トップページ | トラ技のArduino Uno R4特集でも1/1023 »

2024年2月10日 (土)

delayMicroseconds(50000)をオシロで確認

トランジスタ技術2024年3月号に掲載してもらった
  ・『実はワナだらけ…確実に動かすArduino Uno R3』
この記事の中の『時間待ちのワナ』、これの実際の様子を
オシロ波形で見てもらいましょう。

Dm11_20240210085601

ch1がオシロトリガ用の波形。
  1サイクル回るごとにPB4をトグルしています。
ch2がdelayMicroseconds時間確認のための波形。
  1msのH/L
  50msのH/L  ←のつもり
を出力して回っています。
しかし実際は・・・
  delayMicroseconds(50000)が0.85msほどに
  なっています。

こんなスケッチを使って見ています。

#define PB5_H       (PORTB |=  (1 << PB5))  // LED on
#define PB5_L (PORTB &= ~(1 << PB5)) // LED off
#define PB4_X (PINB |= (1 << PB4)) // PB4トグル

void setup() {
pinMode(13, OUTPUT); // PB5 基板上LED
pinMode(12, OUTPUT); // PB4 トグル出力(オシロのトリガ用)
}

void loop() {
cli(); // 割り込み禁止でloopを回る
while(1){
PB4_X; // PB4トグル
PB5_H;
delayMicroseconds(1000); // 1ms H
PB5_L;
delayMicroseconds(1000); // 1ms L
PB5_H;
delayMicroseconds(50000); // 50ms(???)
PB5_L;
delayMicroseconds(50000); // 実際は0.85msほど
}
}


※元記事/関連記事
Arduino-UNOでのdelayMicrosecondsの設定は16383までだ!
Arduinoから「タイマー0」を取り上げる(ユーザーが使う)

|

« トランジスタ技術2024年3月号に記事が載りました | トップページ | トラ技のArduino Uno R4特集でも1/1023 »

Arduino」カテゴリの記事

重箱の隅」カテゴリの記事

コメント

「Arduino-UNOでのdelayMicrosecondsの設定は16383までだ!」、これ、皆さん知っておられました?
私は、ほんと、2021年7月に書いたブログ記事まで気が付きませんでした。

投稿: 居酒屋ガレージ店主(JH3DBO) | 2024年2月12日 (月) 09時18分

コメントを書く



(ウェブ上には掲載しません)




« トランジスタ技術2024年3月号に記事が載りました | トップページ | トラ技のArduino Uno R4特集でも1/1023 »