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関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
まとめておくとそのうち修正されたりされなかったりするんじゃないかという期待を込めて立てました。
サイズ縮小の要望
いまのライブラリで生成されるROMイメージファイルは無駄にでかいので、改善していただきたい。
『クルミの研究』 の投稿に改善案として修正したものを添付しています。
GR-SAKURA ライブラリ V2 と同様に bitbucket 等でリポジトリを公開して pull req とかできるようなってると良いですね。
> 指定できる ms の値が最大で 64 となっています。
という制限がダサかったので制限がないよう修正。
void MsTimer2::setMicros(unsigned short us, void (*f)())
引数 us のデータ長変更。
違うか。65か。まあもう過去のことだ。
Fujitaさん、次のバージョンで採用させてください!
ゼヒお願いします。
学生に7セグLED x 4を使った時計を制作させています。セグメンLEDのダイナミック点灯にタイマー割込みを使った例も紹介したいので使わせていただきます。
Fujitaさんのこれまでの修正案を採用させていただき、V1.12とさせていただきたいと思います。Fujitaさん、本当にありがとうございます!
・digitalWrite/Readの高速化
・analogWriteの全ピン対応(3,5,6,9,10のハード以外をソフトで対応)
・Serial.flushが正しく実行されないことへの修正
・RTCのrtc_set_timeで年の設定を0~99に限定。また、引数にconstを指定できるように変更
・MsTimer2の追加
・fastDigitalWrite/Readを追加。
> 学生に7セグLED x 4を使った時計を制作させています。
良いテーマですね。いいのを作るとホワイトハウスにご招待されるかも。[ご参考]
> これまでの修正案を採用させていただき、V1.12とさせていただきたいと思います。
ありがとうございます。これで himekurumi も捗ります。
初めてKURUMIでSDカードを扱ってみました。
初めはリファレンス通りにやってみてファイルの作成や書き込みができることは確認しましたが、タイムスタンプが正しく設定されないのでここでキーワード「タイムスタンプ」で検索掛けて、SAKURAの場合の解決方法を試したら、RTC時刻のタイムスタンプが設定されました。
japan.renesasrulz.com/.../2814.aspx
めでたし、めでたしと思いましたが、SD.openを行う度にその時刻が設定されてしまいます。まあそれは当然と言えば当然なのかもしれませんが、
リファレンスのopen時の引数のモードでFILE_WRITEを指定すると動作は事実上追記でファイルにデータを書き込むわりに、タイムスタンプはその度に更新されてしまい、一番最初にファイルを生成した時刻が保存されません。
と言う訳で、ファイルにデータは追記モードで書きたいですが、CREATEした時間はそのまま保持して欲しい時のモードは何にすれば良いんでしょうか?
と言う質問です。
逆に上書きの場合はどうすんだろう?バイナリーモードは???
FILE_WRITE、FILE_READしかモードが無いのだろうか?
Arduino referenceにはint()って型変換の関数が有るんですけれど、例えばGR-KURUMIのWEBコンパイラで以下の様にやってみると
int a = int("12345");
Serial.println(a,DEC);
答えは12361だったりするんだけれど、オレだけかな?
> Arduino referenceにはint()って型変換の関数が有るんですけれど、
C++ では int() は演算子のオーバーロードがされてない限りは int へのキャストとして働くので,
は GR-KURUMI では "12345" の格納されてるアドレス(03000H~) → int への変換となる筈。
とりあえずは atoi() で代用できないでしょうか?
/*GR-KURUMI Sketch Template Version: V1.12*/ #include <Arduino.h> void setup() { Serial.begin(9600); int a = atoi("12345"); Serial.println(a, DEC); } void loop() { }
ちょうど12345と格納アドレスの0x3000以降の10進数の値が似ていたのですね。
12345を明示的にconst char型でキャストするか、String型の変数に代入すればうまくいくのかしら?
もちろん代替手段は有るのです。
ちょっと試してみただけです。
String str = "12345";
int a = int( str );
コンパイラに怒られました(笑)
なんだよ、any typeって書いてあるじゃん。期待しちゃったよ。
www.arduino.cc/.../IntCast
SDライブラリにchdirが欲しい
周波数計測ライブラリがほしいなぁ
Arduino 由来の pulseIn() というのがありますが、使い勝手は宜しくないですね。