ホーム > Project, 電子工作 > EOS40D タイマーリモコン(5)

EOS40D タイマーリモコン(5)

2010 年 3 月 28 日

とりあえず、フォント。

8×8ドットにしたら、結構小さいな~

ここに至るまでに

プログラム本体を消失しかけた。
makeファイルの記述がまずいらしく、たまに.CPPファイルが消されるw

フォントとそのポインタをフラッシュメモリに置く指定をしたが
何故かポインタの配列だけ、PROGMEMで指定するとエラーになる。
仕方ないので、とりあえずconstだけにして回避。

とりあえず、フォントは出たけど。
文字が小さいのとひらがなが入ってない感じがするので
他のフォントをとりあえず探してこないとダメかな。

表示自体はまあ、
倍サイズに変換することは出来るので・・・Rom512byteと引き換えに。

・・・・・作ってみたw

1時間ちょっと。
こんなことすら「いつか来た道」。
昔は、自分でテーブル作ったけど
今は、プログラムで生成する方法をちゃんとみつけた。

・・・・・成長してるぢゃん、をれw

それにしても
AVRはFlashROMにデータを置くと
ソレをいちいち指定しないと、まともに実行されない。

アセンブリの時も苦労したけど
C言語を使ってても、それ以上に苦労する。

いわゆる、メモリ環境に余裕があって、
すべてをRAMに展開して実行するような環境に由来する
開発環境、高級言語の思想は
メモリの少ないマイコンには不相応な部分がある。

定数も変数も、全部RAMに置きたがる。

そんなことしたら、スタックすら取れないって。

今回も、RAMに展開したらメモリオーバーで暴走してた。
仕方が無いのでFONTの変換と一緒に2倍化のテーブルを吐かせて
ROMに置いている。

この問題は、AVRのアーキテクチャに由来するのも分かる。
コードとデータが別の空間にあるんだから、それを指定しないと
正しくアクセスできない。

だからこそ、マイコンのプログラムは
細部までコントロールできる、アセンブリ言語が使われる。
とはいえ、それがまず機種依存なので、開発現場では嫌われる。
というか、組める人間がどんどん減ってて、汎用の高級言語に移行しつつある。

・・・・・・現実的には
言語なんて問わないんだけどね。
考え方、作り方、構造、その辺をきちっとしてれば
何で作っても作れるわけで。
マイコンなんて、周りの回路の都合で組み方は変わってくるし。

そんな感じで。

つづく・・

カテゴリー: Project, 電子工作 タグ:
コメントは受け付けていません。