

ArduinoとSpresenseを使いアナログ入力ピンをanalogRead関数で電圧を計測したのですが、1回の計測で15ms(プログラムでは100回で1.5秒)もかかってしまいました、こんなに遅いものでしょうか。  
早くする方法はないでしょうか。

[code]

    int sensorPin = 3;    // select the input pin for the potentiometer
    int sensorValue = 0;  // variable to store the value coming from the sensor
    
    void setup() {
    }
    
    void loop() {
      for(int loop_count = 0;loop_count <100;loop_count ++)  {
        sensorValue = analogRead(sensorPin);
      }
      printf("read=%d\n",sensorValue);
    }
    
[/code]


CC BY-SA 4.0
2021-07-29T01:43:33.460
79452
2021-07-29T04:15:28.840
44800
question
spresense arduino
SpresenseのanalogRead()の速度が非常に遅い


[http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2113](http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2113)  
<https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/>  
によると１回あたり 100usec らしいので Arduino としては遅すぎっス。

参考までに今どきのインバータ制御用マイコンでは１回の変換は絶対精度を犠牲にして最速モードを選んだ場合 12bit 変換が 1usec
程度で可能っス。常時最速サンプリングをし続けたいなら、結果を受け取る手続きも割り込みではなく DMA とか DTC
とかで自動化しないといけなくなるわけだけど。

提示コードを見るに、遅いのは `printf()` のほうを疑うっす。シリアルポートで出力しているなら bps 設定が良くないとか。


CC BY-SA 4.0
2021-07-29T04:15:28.840
80453
2021-07-29T04:15:28.840
8589
79452
answer