2012-01-01から1ヶ月間の記事一覧

ATtiny10 用プログラム (16)

「scr_tn10.asm」プログラムについて、いくつか補足の説明をしたいと思います。 まず、「SYNC_MODE = 2」、つまり、外部 SYNC 入力モードの場合の波形写真を下に示します。

ATtiny10 用プログラム (15)

VCO 回路の「コンパレータ + ワンショット」部分として機能する ATtiny10 のプログラム「scr_tn10.asm」のソースを下に示します。 AVR Studio 4.19 で「Atmel AVR Assembler」プロジェクトとして「scr_tn10」を新規作成し、デフォルトで自動作成される空の「…

ATtiny10 用プログラム (14)

VCO 回路の「コンパレータ + ワンショット」部分を ATtiny10 のプログラムとして実現しました。 (gcc の gas ではなく)AVR ネイティブのアセンブラで書いてあり、そのソースリストは次回に掲載します。 タイマ IC 555 を使ったリセット型 VCO 回路なら 555 …

midifun2.S

以下はアセンブラ部分のソースですが、プリプロセッサを通すためにファイル名のエクステンションは「.S」(英大文字の「エス」) にする必要があります。 ;/*************************************************/ ;/* midifun2.S : MIDI functions (asm part) *…

midifunc.h、midifunc.c

/*************************************************/ /* midifunc.h : MIDI functions (C part) */ /* for ATtiny10 */ /* */ /* 2012/01/16 : Created by pcm1723 */ /*************************************************/ #ifndef _MIDIFUNC_H_ #define …

mididec.h、mididec.c

/*************************************************/ /* mididec.h : MIDI decoder */ /* for ATtiny10 */ /* */ /* 2012/01/16 : Created by pcm1723 */ /*************************************************/ #ifndef _MIDIDEC_H_ #define _MIDIDEC_H_ #…

sw_uart_rx.h、sw_uart_rx.c

/*************************************************/ /* sw_uart_rx.h : Software UART (Rx only) */ /* for ATtiny10 */ /* using PCINT0 and ADC interrupt */ /* */ /* 2012/01/12 : Created by pcm1723 */ /*****************************************…

m2c_tn10.h、m2c_tn10_c

「m2c_tn10.h」内の #define で、GATE 出力などのピン・アサインを変更できますが、CV 出力については PB0 (1 番ピン) に固定です。 シリアル MIDI (38.4 kbps) 時の CPU クロック周波数を 7.9872 MHz に、および、レガシー MIDI (31.25 kbps) 時のクロック…

ATtiny10 用プログラム (13)

ATtiny10 版の MIDI to CV プログラム「m2c_tn10」のソースリストを下に示します。 FM 音源プログラムの MIDI データ処理部を再利用しているので、機能を削った部分はコメント・アウトしたり、#if (0) 〜 #endif で無効にしており、プログラム・ソースとして…

ATtiny10 用プログラム (12)

ATtiny10 版の MIDI to CV プログラムができました。 ソースリストは長くなるので次回に掲載します。 Arduino につないだままではなく、「応用回路」中に差し替えた場合の回路図を下に示します。 シリアル MIDI / レガシー MIDI インターフェース回路部分に…

ATtiny10 用プログラム (11)

ピン変化割り込みと AD 変換完了割り込みを利用したソフトウェア UART 受信プログラムのソース・リストを下に示します。 AD 変換完了割り込みサービス・ルーチン (108 バイト) ピン変化割り込みサービス・ルーチン (50 バイト) 初期化関数 tn10_sw_uart_setu…

ATtiny10 用プログラム (10)

ATtiny10 版の MIDI to CV プログラムを作っています。 ATmega168 用の同種のプログラムを元に処理を削り、ピッチベンド等のサポートのない、7 ビットの MIDI ノート番号を CV として PWM で出力し、ゲート信号を ON/OFF するだけの最低限の機能のプログラム…

ATtiny10 用プログラム (9)

ATtiny10 の内蔵 8 MHz オシレータの周波数 (周期) を「自力」で測定するプログラム「osc_tn10.c」のソース・リストを下に示します。 AVR Studio 4.19 で新規 AVR GCC プロジェクトを作成し、プロジェクト・フォルダに以下のプログラムをコピー・アンド・ペ…

ATtiny10 用プログラム (8)

内蔵 8 MHz オシレータの周波数を測定するには、正確で安定な基準周波数が必要で、これは外部から与える必要があります。 ATtiny10 では、Timer0 および CPU コアのクロックとして外部クロックを選択すると、内部クロックの行き先はフラッシュ・メモリの書き…

ATtiny10 用プログラム (7)

ATtiny10 の「OSCCAL」レジスタ (アドレス 0x39) に設定する値と、内蔵 8 MHz クロック・オシレータの発振周波数の関係を測定し、グラフにしてみました。 単に CPU クロック周波数の測定なら、フューズ・ビットの設定で、CLKO 端子 (4 番ピン) にクロックが…