GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
0.1 msごとにアナログ信号を読み取りその値をSDカードに保存するデータロガー的な機能をGR-SAKURAに実装しようと考えています。
タイマ割込みを使って処理する方法が良いかと考えたのですが、タイマの割込み時間の最小単位が1 msなので実装ができません。
過去にus単位で処理を実行するプログラムについてのフォーラムがあったのですが日付が古いせいかファイルをダウンロードすることができませんでした。https://japan.renesasrulz.com/gr_user_forum_japanese/f/gr-citrus/3977/sec
そもそも0.1 msごとにSDカードに書き込む処理ができるのかどうか(処理時間の問題など)という点と
可能ならばどのようにして実装すればよいのかという点について
何かご教授いただければ幸いです。
マイコン初心者なのでなにか不備がありましたらすみません。よろしくお願いします。
がじぇるね岡宮です。
ひとまずMsTimer2を0.01msから指定できるように拡張しようと思います。
以下、変更後のMsTimer2です。IDE for GRを使用されている場合、「hardware\arduino\rx63\libraries\MsTimer2」に上書きコピーすれば、反映されます。
今週から来週にかけてGRボード用のSDKをアップデートしますが、その際に含めたいと考えています。
MsTimer2.cpp
MsTimer2.h
以下、確認したサンプルです。
#include <Arduino.h>#include <MsTimer2.h>void flash() { static boolean output = HIGH; static int count; count++; if (count > 10000) { // 0.1ms*10000=1sec Serial.println(millis()); digitalWrite(PIN_LED0, output); output = !output; count = 0; }}void setup() { Serial.begin(9600); pinMode(PIN_LED0, OUTPUT); MsTimer2::set(0.1, flash); // 0.1ms period MsTimer2::start();}void loop() {}