いまさら DesignWave ADuC7026

ここしばらく仕事の谷間モードで、ラリーのサービスステージのように全速で(ええ、こんなに遅いんですけど全速)シンセ製作を進めてきたのですが、そろそろ次の仕事が立ち上がり、平日の作業はだんだん苦しくなってきました。今日も配線着手の気力がなく、気晴らしにずっと寝かしてあったデザインウェーブおまけのマイコン基板の使い方をいまさらですが学習してみました。(プという笑いが聞こえてきそうです :-)

led-blink.jpg

はじめてのマイコンなのでおっかなびっくりです。


使ってみると、C言語の助けのおかげで、開発ツールの使い方さえ覚えれば、マイコンを使うこと自体は意外とわかりやすく驚きました。まずはその開発ツールの使い方が高い敷居だったのですが、それもデザインウェーブ様のありがたいご指導のもとに乗り越えられました。

で、これはめちゃめちゃ面白そうです。まずは I/O のやり方を身に付けなくては。これもデザインウェーブ様のありがたいご指導が受けられそうです。何かする前にピンヘッダをつけなくてはです(基板壊したらもったいなさすぎるので)

そして、LED ちかちかプログラムを書いたら次に日本人なら誰でもやりたくなるこれ↓を…書いているうちにハンドクラッパーが作りたくなってきました。こうして、マイコン着手の深層にある、DR-110 に萌えてしまった事実とつながるのであります。気晴らしのつもりで始めたのですが、やりたいのにやりきれないことが余計増えてなにか間違っています :-)

しかし、スリープに CPU タイマーを使うというのは新鮮です。UNIX の世界でやったらはったおされます(CPUを食うのでお金も食う)。きっとプロセッサを眠らせる方法も何かあるのでしょう。おいおい学習してゆきたいです。

/*********************************************************************
The Japanese traditional 3-3-7 beat.
***********************************************************************/

#include <ADuC7026.H>              // ADuC7026 レジスタ定義ファイル

void delay()
{
int i;
for(i=0; i<300000; i++) {};   // delay
}

void flash()
{
GP4DAT ^= 0x00840000;      // Revert P4.7
delay();
GP4DAT ^= 0x00840000;      // Revert P4.7
delay();
}

int main (void)
{
GP4DAT = 0x80840000;        // P4.7を出力に設定,'1’を出力

// いよーっ!
while (1){
int i;
for (i=0; i<3; i++) flash();
delay(); delay(); // よっ!

for (i=0; i<3; i++) flash();
delay(); delay(); // よっ!

for (i=0; i<7; i++) flash();
delay(); delay(); // よおっ!
}
}

5 Comments

  1. RJB

    このADuC7026にはDACが4ch内蔵さてれいるので、手軽にアナログ出力できるのがいいですね。

  2. この基板に関していろいろ文句を付けたけど、I/F誌付録のSH-2基板の入念さに比べたら信じられないほど低レベル。それでも元を取ってやろう!と考えて、プログラマブルなモジュールを作るべく画策してます。ADuC7026は使えるし、何せ2冊も買っちゃったからねー。苦笑

  3. gan

    > RJBさん
    他のマイコンを知らず、アナログ多チャンネル入出力なんて便利だなーと漠然と思っていましたが、これはこのマイコンの特長だったのですね。多チャンネルだとマルチボイスの制御なんておてのものですね。

    > genieさん
    この基板いろいろ噂は聞くのですが私のは運良くちゃんと動いています。電源は適当に探してきたスイッチングACアダプタです。電源リップルをチェックしたら意外と大きな AC がもれてきていたので 0.22u のパスコンだけ入れました。
    チップはとても応用範囲が広そうですね。最低限の動作だけだと周辺部品はほとんどいらないようなので、オリジナル基板を作るのも難しくはなさそうですね。自前エッチングはさすがにつらそうですが。

  4. Chuck ST

    > スリープに CPU タイマーを使うというのは新鮮です。

    というのは delay() の部分を指していらっしゃいますか?
    組込みでもふつうは空ループはやらず、省電力のハードウェアタイマリソースからの割込みのメッセージでやると思います。
    ていうか、空ループはコンパイラで最適化かけたら保護していないと消えちゃいそうです。

    ちなみに私は3冊買いました。ネタを仕込む時間がなかなか取れません…

  5. gan

    > 組込みでもふつうは空ループはやらず、省電力のハードウェアタイマリソースからの割込みのメッセージでやると思います。
    やっぱりさすがにそうですか。割り込み勉強してみます。よく考えてみるとマイコンでも空ループなんて回したら電池食っちゃうようなきがします。

    > ちなみに私は3冊買いました。ネタを仕込む時間がなかなか取れません…
    確かにこの基板すごくお買い得な気がします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください