Arduino で更にスピードアップを行う手段としてインライン・アセンブラがあります。
ATtiny85のスピード不足?もあって使ってみたいので,まずはArduino-UNOで試しています。
何とか2次元配列を次々と読み取って他の変数に書き込むまでは来ました。これで良いかどうかまだ分からないプログラム例ですが,動いてはいます(^^;;;;;;。
アセンブラ自体はそんなに複雑ではないのですが,正式にやろうとするとデータのやりとりの表記がややこしいですね(^^;;;;;;;
ネットを見回ってもポインタの説明も誠にややこしい解説が多いです。文字列の話など後にすれば,と思いますけどね。
上のプログラムは手抜きもありつつ自分なりに納得できる方法でやってみている例です。
なお,アセンブラの最後のクロバーの所に使用するレジスタ名を羅列しておくと,アセンブルコードの前後に自動的にpush/popを追加してレジスタを保存・復元してくれるらしいので,この機能は使った方が省エネですねV(^^)。
ま,いろいろなコードを試しつつ,ぼちぼちとプログラムを作っていきましょう
(^^)。
ATtiny85のスピード不足?もあって使ってみたいので,まずはArduino-UNOで試しています。
何とか2次元配列を次々と読み取って他の変数に書き込むまでは来ました。これで良いかどうかまだ分からないプログラム例ですが,動いてはいます(^^;;;;;;。
アセンブラ自体はそんなに複雑ではないのですが,正式にやろうとするとデータのやりとりの表記がややこしいですね(^^;;;;;;;
ネットを見回ってもポインタの説明も誠にややこしい解説が多いです。文字列の話など後にすれば,と思いますけどね。
上のプログラムは手抜きもありつつ自分なりに納得できる方法でやってみている例です。
なお,アセンブラの最後のクロバーの所に使用するレジスタ名を羅列しておくと,アセンブルコードの前後に自動的にpush/popを追加してレジスタを保存・復元してくれるらしいので,この機能は使った方が省エネですねV(^^)。
ま,いろいろなコードを試しつつ,ぼちぼちとプログラムを作っていきましょう
(^^)。