変数や関数 | 解説 |
TIMER_COUNT | 割り込みタイマの周期です。お持ちのJapaninoの誤差度合いに合わせて調整してください。 大きくすると時計の進みが遅くなります。小さくすれば早くなります。 |
bitmap[][4] | 数字の表示パターンです。 |
setup() | P.O.V.のLEDとSW、割り込みタイマ2、シリアル通信の初期化をしています。 |
loop() | メインループです。P.O.V.の処理とシリアル通信によるコマンド処理をしています。 |
pov() | P.O.V.に時刻を表示する制御しています。 |
serial_input() | シリアル通信されてきたコマンドを一旦バッファに貯めています。 連続したデータを受け取れるようにウェイト処理も行っています。 |
command() | 受け取ったコマンドを解析して処理します。 コマンドは時刻表示と設定です。 |
serial_disp() | シリアル通信で時刻をシリアルモニタへ送ります(表示)。 |
disp() | P.O.V.に一文字表示する関数です。 |
timer() | 割り込みで時計のカウントをしています。約1/2秒に一回この関数が呼び出されるますので呼び出し回数をカウントして時刻を計算します。 |
変数や関数 | 解説 |
setup() | P.O.V.のLEDとSWの初期化をしています。 |
loop() | メインループです。P.O.V.のSWがONなら表示をしています。 |
pov() | countを基準に周波数と位相を変化させています。ループでサインの計算をしながらdisp()でP.O.V.に表示します。 |
disp() | 該当するLEDの番号を点灯します。 |
変数や関数 | 解説 |
CurveBuf | リサージュ図形を記録するバッファです。 |
setup() | P.O.V.のLEDとSWの初期化をしています。 |
loop() | メインループです。P.O.V.のSWがONならP.O.V.で表示とリサージュ図形の計算をしています。br()countはリサージュ図形の変化基準となるカウントをしています。 |
pov() | CurveBuf内容をP.O.V.に表示します。 |
disp() | 一列のLEDをビット内容にあわせてLEDの番号を点灯します。 |
lissajous() | リサージュ図形を計算してCurveBufに書き込んでいます。 リサージュはXとYの座標をsinで変化させたものなので、countを元に周波数と位相のズレを作り出しています。 |
変数や関数 | 解説 |
SCREEN_SIZEX | 仮想的な表示スクリーンのサイズです。X方向 |
SCREEN_SIZEY | 仮想的な表示スクリーンのサイズです。Y方向。 |
RASTER_MAX | ラスタースクロールが最大になる周期の半分の時間です。 |
CIRCLE_POS | 使ってません。忘れてください。 |
screen | "JAPANINO"の文字パターンです。サンプルスケッチより。 |
setup() | P.O.V.のLEDとSWの初期化をしています。 |
loop() | メインループです。P.O.V.のSWがONならP.O.V.で表示とラスタースクロールの計算をしています。 countはラスタースクロールの変化基準となるカウントをしています。 |
raster() | countdRASTER_MAXを周期の基準に横方向の振幅を変えています。いつものsin計算と位相もズラしています。 |
pov() | scroll内容をP.O.V.に表示しますが、ラスター量に合わせてx座標を変化させています。 |
disp() | 一列のLEDをビット内容にあわせてLEDの番号を点灯します。 |
変数や関数 | 解説 |
STAGE_SIZEX | 仮想的な盤面のサイズです。X方向 |
STAGE_SIZEY | 仮想的な盤面のサイズです。Y方向 |
ballx,bally | ボールの現在座標です。 |
vectx,vecty; | ボールの移動ベクトルです。 |
screen | "JAPANINO"の文字パターンです。サンプルスケッチより。 |
setup() | P.O.V.のLEDとSWの初期化をしています。ボールの位置と移動方向も設定しています。 |
loop() | メインループです。P.O.V.のSWがONならP.O.V.で表示とボールの移動処理を呼び出しています。 |
ball() | ベクトルと加算することで新しい位置を求めています。壁に衝突したらボールを反射します。 この時壁に刺さらないように位置も補正します |
pov() | 壁とボールの位置をP.O.V.に表示します。 |
disp() | 一列のLEDをビット内容にあわせてLEDの番号を点灯します。 |
変数や関数 | 解説 |
melody | 楽譜です。曲は「P.O.V.でドレミ」と同様 |
loop | 楽譜を読んで演奏を制御しています。 |
playTone | 楽譜コードを解析して音を出します。 |
getScore | 楽譜コードを一文字取得します。 |
<オクターブ><音程><音長>...繰り返し
<オクターブ> なし : ノーマルオクターブ - : 一つ下のオクターブ + : 一つ上のオクターブ <音程> d : Do(ド) d# : Do(ド#) r : Re(レ) r# : Re(レ#) m : Mi(ミ) f : Fa(ファ) f# : Fa(ファ#) s : So(ソ) s# : So(ソ#) l : La(ラ) l# : La(ラ#) t : Ti(シ) o : 休符 <音長> 2 : 2分音符 4 : 4分音符 8 : 8分音符 16 : 16分音符