-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ADC 遅い #2
Comments
やってみたけど、まともに動く分周比は 4。なので 1サイクルが 1/(16MHz/4)*13=3.25e-6 sec。時定数は 1e-3 ~ 1e-2 sec くらいで大丈夫そうだ
|
10kΩでのテスト. やっぱり時定数 1e-3 までかなという感じ。1e-4 でも、大丈夫かな?くらいの判断はできそうかな、そんな感じ |
あれ、ADCSRA = ADCSRA & 0b11111010; これなんで & で良いんだ? でやってるように ADCSRA = ADCSRA & 0b11111000; で ADSP0, 1, 2 ビットをクリア。これが初期化。上位5 ビットは何も影響していない。その次に ADCSRA = ADCSRA | 0b11111010 で二段でやらないといけないな。 |
https://rtmrw.parallel.jp/laboratory6/lab-report-157/lab-157.html
によると 16MHz/128 のクロックで動作し、analogRead() に 13クロックかかるから、1回のサイクルが 1e-4 sec となる。
分周比を 2まで下げられるので 1.63e-6 sec までサイクルを下げられる。そうすると 時定数 0.01 ~ 0.001sec でも静電容量の測定精度がまずまずいなりそう。分周比 1まで下げれられないかと思って、データシートも確認したが 2 だった。
こちらの例だと、分周比設定の ADCSRA を設定したら、普通に analogRead() している。ということは、analogRead() 自身はこのレジスタの操作をしてないということになるので、ソースで確認する。
https://forums.ni.com/t5/%E5%8C%97%E6%9D%B1%E5%8C%97-LabVIEW%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E4%BC%9A/%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%A0%E3%81%91%E9%AB%98%E9%80%9F%E3%81%ABArduino%E3%81%AE%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E5%85%A5%E5%8A%9B%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E5%8F%8E%E9%8C%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-%E7%A5%9D-quot-LabVIEW-Community/td-p/3980985
hardware/arduino/avr/cores/arduino/wiring_analog.c で ADCSRA が使われてるのはここだけで、これはレジスタの有無を調べてるだけで、内容の設定はしていない。なので、どっかで分周比を設定すれば、それが書き換えられることはないということになる。
The text was updated successfully, but these errors were encountered: