タグ

ブックマーク / garretlab.web.fc2.com (5)

  • analogRead()

    概要 analogRead()は、アナログ‐デジタル(AD)変換器を使って、アナログピンから値を読み取ります。 Arduino Unoは、10ビットのAD変換機を6個持っています。analogRead()では、ADMUXとADCSRA、ADCL、ADCHという4つのレジスタを利用します。 ADMUX ADMUX(ADC Multiplexer Selection Register)は、参照電圧の設定と出力値の形式(ビットを左詰めにするか右詰めにするか)、チャネル(アナログピン)の選択を制御するレジスタです。

    analogRead()
  • 性能測定実験(I/O)

    概要 Arduino UnoのIOの性能測定を行いました。 当初、Arduino 1.0で測定した結果を掲載していました。Arduino 1.8.12でも再度測定しました。Arduino IDEのバージョンにより、デジタルI/Oの性能がかなり違う結果が出てきました。 目的 Arduino UnoのdigitalRead()、digitalWrite()、analogRead()の3つの関数の性能を、ピンごとに測定し、特性を調べます。 測定方法 各関数を10000回実行し、その前後でmicros()を使って時刻を取得し、測定後、1回あたりの各関数の実行時間を測定します。このため、ループを制御するための時間も含んでいます。 Arduinoには何も接続しない状態で、デジタルピンはdigitalRead()とdigitalWrite()の2種類、アナログピンはさらにanalogRead()の実行時

    性能測定実験(I/O)
  • analogWrite()

    概要 analogWrite()は、PWM出力を行う関数です。analogWrite()のリファレンスはこちらを参照してください。PWMの簡単な説明はこちらを参照してください。 ATmega328Pは、PWM出力に利用できるタイマ/カウンタを3個(タイマ/カウンタ0から2の3個)持っています。それぞれのタイマ/カウンタが2個の比較出力器を持っているため、6のピンでPWM出力を行うことができます。このため、Arduinoでも6のピンからPWM出力を行うことができます。 3個のタイマ/カウンタのうち2個(タイマ/カウンタ0とタイマ/カウンタ2)は8ビット、1個(タイマ/カウンタ1)は16ビットです。 PWMの出力周波数の設定はinit()で行っています。analogWrite()では、PWM出力の開始とデューティ比の設定を行います。これらの設定はタイマ関連のレジスタを操作することで実現して

    analogWrite()
  • analogReference()

    名称 analogReference() 説明 アナログ入力に利用する参照電圧(入力電圧の最大値)を設定する。 書式 void analogReference(uint8_t mode); 引数

    analogReference()
    tomio2480
    tomio2480 2015/01/01
    analogを扱うときの参照を設定する
  • micros()

    概要 micros()は、内部で保持しているArduinoを起動してからの時間をマイクロ秒単位で返します。 micros()のリファレンスはこちらをご覧ください。 ソースコード micros()は、hardware/arduino/avr/cores/arduino/wiring.c に定義されています。以下に全ソースコードを示します。 unsigned long micros() { unsigned long m; uint8_t oldSREG = SREG, t; cli(); m = timer0_overflow_count; t = TCNT0; if ((TIFR0 & _BV(TOV0)) && (t < 255)) m++; SREG = oldSREG; return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()

    micros()
  • 1