小ネタ:フラグを8秒間保持

あるイベントが起きたら、フラグを最後のイベントから一定時間だけ(たとえば8秒)立てておきたいとき、下のようなコードだとちょっとだめです

----------
volatile uint8_t flag;

ISR(TIMER0_OVF_vect) // 割り込みは8秒おき
{
    flag = 0;
}

int main()
{
    while (1) {
        if (check_event()) {
            flag = 1;
        }
    }
}
----------

これだと、割り込みハンドラでクリアするフラグが、8秒前に立ったものか1秒前に立ったものか区別つかないからです。

ひとプロジェクト組みあがり

複数走っているマイコンを使ったプロジェクト やっとこさひとつがひと段落つきました。まだ細かい改良が残っていますが、もう大暴れはしないでしょう。 マイコンでプログラミングしてみて、普段やっている UNIX プログラミングが…

ああもう!

かなり簡単なプログラムを組んでいるのに、各所でデータ破壊が起きておおあばれ ああもうああもう、わけがわからん。中はどうなっているんじゃ~ 覗くには JTAGICE なるものが必要らしい。 要るかな、要るかな デバッガのな…

いまさらなんですが AVR STK500

何故かここしばらくマイコンを使った作業がたてこんでいます。 何故かAVR ISP mkII が不調なため、いまさらですが死蔵していたSTK500を出してきて、内臓のISPを使いました。 いや、STK500、便利です。電源…

進行中の試作

いろんなことが並行で走っていてなにがなにやらわからなくなっている日常ですが その一つ、試作中の基板(抜粋)です。パタン引きが終わったところです。久々に隙間 1/100 インチのベタパタンを使います。焼きとエッチングをうま…

手が止まってます — nanoKEY をスタンダロン化

ここまでは順調だったのですが Serial MIDI でつまづき

Serial MIDI は、レガシー MIDI の規格と違うのですね。不勉強でした。レガシー MIDI にしないとつなぐ機器がありません。

解決法を思案しています。今のところ思いついているのは2つ:

  1. USB MIDI -> レガシー MIDI 変換をするデバイスを作る
  2. Serial MIDI -> レガシー MIDI 変換をするデバイスを作る

もあさんの PepperMIDI をベースにできるならば 1. の方法のほうが良さそうです。

nanoKEY とシリアルポートをつなぐ

進行中プロジェクト「ナノキーのスタンダロン化」 nanoKEY の信号をシリアルポートに出力させるところまでできました。 一日60分程度しか時間を割いていない(さけない)亀プロジェクト...ですが、なんとかじわじわと前進…

今週の成果

PSoC で LED ぴかぴか。 こいつは実に面白い。 が、先は長いのう...

kicad

PCB CAD は Eagle を使っているわけですが、現在のライセンスでは、ほんの小さな基板しかレイアウトできません。

この制限に引っかかる頻度が近頃どんどん増えてきて、いよいよ、ライセンス購入も検討しないとならないかもしれないのですが、その前に代替手段をあさってみましょう。

ということで、kicad

チュートリアルをなぞり中です。めずらしいオープンソースの統合 CAD なので、試してみようと思いますが...

新プロジェクト: Steam Controlled Synthesizer

新プロジェクトを立ち上げました。 相変わらずシンセばっかですが、今回は蒸気式です。とはいえ、コントロール入力は MIDI なのですが。 ブロック図はこんなです。 ボイラーからの蒸気をふた系統に分けて、片側はオシレータの制…