2012-01-01から1ヶ月間の記事一覧
「scr_tn10.asm」プログラムについて、いくつか補足の説明をしたいと思います。 まず、「SYNC_MODE = 2」、つまり、外部 SYNC 入力モードの場合の波形写真を下に示します。
VCO 回路の「コンパレータ + ワンショット」部分として機能する ATtiny10 のプログラム「scr_tn10.asm」のソースを下に示します。 AVR Studio 4.19 で「Atmel AVR Assembler」プロジェクトとして「scr_tn10」を新規作成し、デフォルトで自動作成される空の「…
VCO 回路の「コンパレータ + ワンショット」部分を ATtiny10 のプログラムとして実現しました。 (gcc の gas ではなく)AVR ネイティブのアセンブラで書いてあり、そのソースリストは次回に掲載します。 タイマ IC 555 を使ったリセット型 VCO 回路なら 555 …
以下はアセンブラ部分のソースですが、プリプロセッサを通すためにファイル名のエクステンションは「.S」(英大文字の「エス」) にする必要があります。 ;/*************************************************/ ;/* midifun2.S : MIDI functions (asm part) *…
/*************************************************/ /* midifunc.h : MIDI functions (C part) */ /* for ATtiny10 */ /* */ /* 2012/01/16 : Created by pcm1723 */ /*************************************************/ #ifndef _MIDIFUNC_H_ #define …
/*************************************************/ /* mididec.h : MIDI decoder */ /* for ATtiny10 */ /* */ /* 2012/01/16 : Created by pcm1723 */ /*************************************************/ #ifndef _MIDIDEC_H_ #define _MIDIDEC_H_ #…
/*************************************************/ /* sw_uart_rx.h : Software UART (Rx only) */ /* for ATtiny10 */ /* using PCINT0 and ADC interrupt */ /* */ /* 2012/01/12 : Created by pcm1723 */ /*****************************************…
「m2c_tn10.h」内の #define で、GATE 出力などのピン・アサインを変更できますが、CV 出力については PB0 (1 番ピン) に固定です。 シリアル MIDI (38.4 kbps) 時の CPU クロック周波数を 7.9872 MHz に、および、レガシー MIDI (31.25 kbps) 時のクロック…
ATtiny10 版の MIDI to CV プログラム「m2c_tn10」のソースリストを下に示します。 FM 音源プログラムの MIDI データ処理部を再利用しているので、機能を削った部分はコメント・アウトしたり、#if (0) 〜 #endif で無効にしており、プログラム・ソースとして…
ATtiny10 版の MIDI to CV プログラムができました。 ソースリストは長くなるので次回に掲載します。 Arduino につないだままではなく、「応用回路」中に差し替えた場合の回路図を下に示します。 シリアル MIDI / レガシー MIDI インターフェース回路部分に…
ピン変化割り込みと AD 変換完了割り込みを利用したソフトウェア UART 受信プログラムのソース・リストを下に示します。 AD 変換完了割り込みサービス・ルーチン (108 バイト) ピン変化割り込みサービス・ルーチン (50 バイト) 初期化関数 tn10_sw_uart_setu…
ATtiny10 版の MIDI to CV プログラムを作っています。 ATmega168 用の同種のプログラムを元に処理を削り、ピッチベンド等のサポートのない、7 ビットの MIDI ノート番号を CV として PWM で出力し、ゲート信号を ON/OFF するだけの最低限の機能のプログラム…
ATtiny10 の内蔵 8 MHz オシレータの周波数 (周期) を「自力」で測定するプログラム「osc_tn10.c」のソース・リストを下に示します。 AVR Studio 4.19 で新規 AVR GCC プロジェクトを作成し、プロジェクト・フォルダに以下のプログラムをコピー・アンド・ペ…
内蔵 8 MHz オシレータの周波数を測定するには、正確で安定な基準周波数が必要で、これは外部から与える必要があります。 ATtiny10 では、Timer0 および CPU コアのクロックとして外部クロックを選択すると、内部クロックの行き先はフラッシュ・メモリの書き…
ATtiny10 の「OSCCAL」レジスタ (アドレス 0x39) に設定する値と、内蔵 8 MHz クロック・オシレータの発振周波数の関係を測定し、グラフにしてみました。 単に CPU クロック周波数の測定なら、フューズ・ビットの設定で、CLKO 端子 (4 番ピン) にクロックが…