その4
ElekinoCanDo/Stdはお蔵入りかと思ったのですが、悪あがきをしています。
コマンドとしては、最低限メモリー書き込みと確認だけあればいいので、その他のコマンドは思い切って削除することにしました。
コマンドを1つずつ削除すると、プログラムサイズが小さくなって行きますが、適当に削除しているので、必要な動作に影響する部分を削除しているかもしれません。
そこで「びんぼうでいいの」でテスト環境を構築して、動作の確認をしながら不要コマンドを削除するこにしました。
![](https://blogimg.goo.ne.jp/user_image/73/a0/f01931f2b8579a572c4bc682d2a38453.jpg)
Pコマンド以外のコマンドと、メモリー内容確認コマンドのP4以降(なぜかP5までしか実装されていないようです)を削除した時点で目標達成です。
--
スケッチが プログラムストレージ領域の 15,978バイト (49%) を使用しています。最大は 32,256バイト です。
--
コマンドの削除は void command_mode () 内の削除したいコマンドのcase文をbreak文までコメント化すればいいようです。
--
// case 12: // A - Iambic mode
中略
// break;
--
ATmega328Pの「びんぼうでいいの」では、メモリー書き込み、再生、送信は動作しています。
ボードをATmega168P/Int.4MHzに変更してコンパイルした結果は、なぜか4バイト小さくなりました。
--
スケッチが プログラムストレージ領域の 15,974バイト (97%) を使用しています。最大は 16,384バイト です。
--
あとは実機でのテストです。
---------------------------------------------------------------------------------------
追記です。
実機でのテストはOKで、ブログ用の撮影も終わったのですが、スリープしません。
そういえば、テストのためにスリープ機能を入れていないのを忘れていました。
スリープ機能を入れたら124バイトオーバーしています。
--
スケッチが プログラムストレージ領域の 16,508バイト (100%) を使用しています。最大は 16,384バイト です
--
もう少しダイエットに励みます。
---------------------------------------------------------------------------------------
追記です。
メモリ リピート機能を削除して、ギリギリですが押し込みました。
送信機系統切替機能も不要なので削除したかったのですが、どこを削除するか分かりませんでした。
送信機系統2は無効にしてありますので、送信機系統は1のママです。
--
スケッチが プログラムストレージ領域の 16,374バイト (99%) を使用しています。最大は 16,384バイト です。
--
使用率は99.93%でATmega168Pの容量をほぼつかいきりました。
というわけで紆余曲折しましたが、ElekinoCanDo/Stdは封印から覚めることができました。
![](https://blogimg.goo.ne.jp/user_image/75/5a/11e8562ff49e80cfd17e4d11ac56c14c.jpg)
中身です。
![](https://blogimg.goo.ne.jp/user_image/0f/76/ea693d35c94a1330ffbe0b8e89ad3bd6.jpg)
送信回路の確認ができるように、パドル側のコネクタに送信確認用のLEDを付けました。
LEDの電源はElekinoCanDo/Stdから拝借しています。半田付けはせず、抵抗の足のテンションで5V端子に接続しています。
ElekinoCanDo/Stdはお蔵入りかと思ったのですが、悪あがきをしています。
コマンドとしては、最低限メモリー書き込みと確認だけあればいいので、その他のコマンドは思い切って削除することにしました。
コマンドを1つずつ削除すると、プログラムサイズが小さくなって行きますが、適当に削除しているので、必要な動作に影響する部分を削除しているかもしれません。
そこで「びんぼうでいいの」でテスト環境を構築して、動作の確認をしながら不要コマンドを削除するこにしました。
![](https://blogimg.goo.ne.jp/user_image/73/a0/f01931f2b8579a572c4bc682d2a38453.jpg)
Pコマンド以外のコマンドと、メモリー内容確認コマンドのP4以降(なぜかP5までしか実装されていないようです)を削除した時点で目標達成です。
--
スケッチが プログラムストレージ領域の 15,978バイト (49%) を使用しています。最大は 32,256バイト です。
--
コマンドの削除は void command_mode () 内の削除したいコマンドのcase文をbreak文までコメント化すればいいようです。
--
// case 12: // A - Iambic mode
中略
// break;
--
ATmega328Pの「びんぼうでいいの」では、メモリー書き込み、再生、送信は動作しています。
ボードをATmega168P/Int.4MHzに変更してコンパイルした結果は、なぜか4バイト小さくなりました。
--
スケッチが プログラムストレージ領域の 15,974バイト (97%) を使用しています。最大は 16,384バイト です。
--
あとは実機でのテストです。
---------------------------------------------------------------------------------------
追記です。
実機でのテストはOKで、ブログ用の撮影も終わったのですが、スリープしません。
そういえば、テストのためにスリープ機能を入れていないのを忘れていました。
スリープ機能を入れたら124バイトオーバーしています。
--
スケッチが プログラムストレージ領域の 16,508バイト (100%) を使用しています。最大は 16,384バイト です
--
もう少しダイエットに励みます。
---------------------------------------------------------------------------------------
追記です。
メモリ リピート機能を削除して、ギリギリですが押し込みました。
送信機系統切替機能も不要なので削除したかったのですが、どこを削除するか分かりませんでした。
送信機系統2は無効にしてありますので、送信機系統は1のママです。
--
スケッチが プログラムストレージ領域の 16,374バイト (99%) を使用しています。最大は 16,384バイト です。
--
使用率は99.93%でATmega168Pの容量をほぼつかいきりました。
というわけで紆余曲折しましたが、ElekinoCanDo/Stdは封印から覚めることができました。
![](https://blogimg.goo.ne.jp/user_image/75/5a/11e8562ff49e80cfd17e4d11ac56c14c.jpg)
中身です。
![](https://blogimg.goo.ne.jp/user_image/0f/76/ea693d35c94a1330ffbe0b8e89ad3bd6.jpg)
送信回路の確認ができるように、パドル側のコネクタに送信確認用のLEDを付けました。
LEDの電源はElekinoCanDo/Stdから拝借しています。半田付けはせず、抵抗の足のテンションで5V端子に接続しています。
![](https://blogimg.goo.ne.jp/user_image/1a/97/12a9ffd6d8b969a03003964ba310d69d.jpg)