「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



昨日から、久々にTINY2313でアセンブラのプログラムを
ガリガリ。例のPSGもどきをTINY2313で作っちまおう
という作戦。

久々のアセンブラでちょっと忘れかかってた。
途中段階で部分的に機能確認しようと思ってシミュレータ
動かしてみたら、inc命令でキャリアフラグが立たない
のをすっかり忘れてコード書いてた。それにしても、
キャリー立たないのにその後続処理が変な結果に
なるのはなんだかおかしい。プチはまり。

あと、レジスタの内容(0~15の値を取る)によって
ジャンプ先を振り分けられるようにしたいんだけど、
TINY2313はレジスタ値をインデックスにしてジャンプ
する命令が無いんだよな…

ということで、しばし悩む。大昔どこかで聞いた
ような裏技をふと思い出す。テーブルで用意した
アドレス群を使ってレジスタ値によってジャンプ先
を振り分ける処理を書いてみる。

具体的には、プログラム中の各ラベル16個について、
掻き集めて16要素のアドレス値テーブルにして、
レジスタの値に従ってテーブル要素(アドレス値)を
読み出し→読み出したアドレス値をスタックポインタ
に積んで、ret命令を使ってジャンプをするという荒業。

プログラム上にコメント書き残しておかないと
後で見たら間違えなくちんぷんかんぷんだな。
サブルーチン中の分岐処理でret命令が急に出てくる
のでまさにスパゲッティー。
こういうのをスパゲッティーっていうんだろうな。
こういうときだけは可読性をよくするためにマクロ
でも組んでおいた方がいいのかな?


UART回りの処理は一応済んだことにしておいて、でも
まだまだ課題山積。16Mhzで毎秒40000回タイマー割込み
掛けるとして、1回あたり400クロック。割り込み内の
処理はせいぜい200クロック程度には収めたいところ。
割り込み処理内の冒頭部分だけでももう数十クロック
は使ってる。push/popも入れればもうそれほど余裕が
ない状態。

なんとか200クロック以内に収めたいところなんだけど
なぁ。SPIのDACとちがってPWMの比較レジスタに書き込み
するだけだからアクセス速度自体はあっという間なんだ
けど、その値を計算する処理はtoneとnoiseあわせて
6chもあるし、エンベロープもあるから、結構重い…。


夕方からはちょっと買い物に。まだaitendoは
シマッテンドーだと思ってたら、今日から開いてた
みたい。この間買ったブレッドボード用D級アンプ
に搭載されていたチップ(PAM8403)をゲットして
おいた。小さくて安いのに、ナカナカの代物と見た。


千石に寄って、ふとArduino用の純正ケースを見て、
どうしようかなぁ…と迷ったんだけど、ふと冷静に
なって思いとどまる。

emerge+のprojectbox for arduinoの透き通った
あのボックスの方がかっこいいんだよな…と。
1個欲しいな。


今日はスーパームーンだったのか。オトモダチが
元気かどうか確認のために谷中に寄ってみたところ、
遠くに見えるスカイツリーの真横に大きな月が
丁度登ってくる所だったんだけど、地平線間近だから
大きいのかな?と思ってたら、やっぱ大きかったのか…

で、再来週は逆にちっちゃくなって、金環食か…

お友達は元気だった。うち1匹は、蚤取りのくしを
見せたら、お腹まで出してコーミングしろの催促。
野生動物とは到底思えない…。


時々ふと思い出す「VHDLでCPUをいつか作りたい」と
いう妄想。FPGA規模じゃないと作れないのかな?とか
思うとちょっとねぇ…と考えちゃう。
でも、4bit規模程度のCPUならMAX2程度でも作れちゃう
んじゃないか?と思って検索してみると…

http://www.youtube.com/watch?v=9SBfAGk_mcc
あった!4bitでちゃんと動いてるみたい。optimizeの
MAX2ボードだなぁ。オイラも持ってる。

http://www.youtube.com/watch?v=Vkyd_QmlGLw
こっちも。トラ技2006年4月号付録のMAX2基板だな。
これも動いてる。

規模が小さいなら、お手軽MAX2基板でもいけるのか。
うーーーん。


http://headlines.yahoo.co.jp/hl?a=20120505-00000003-reut-bus_all
エルピーダの入札ねぇ…。

半導体全般とは言わないけど、DRAMみたいに
コモディティー化しちゃった製品だと価格以外
にはあまり差別化できないから、労働集約型の
中国/台湾や資本集約型の韓国なんかの方が
競争力あるのはアタリマエなんだろうから、
早々に手を引いた方がよかったんじゃないか、
という気はする。
で、違う分野にチカラ入れたほうがよかった
んだろうな。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする