MPLAB X IDEのSCLでデバッグ(5)

PICマイコンの開発環境であるMPLAB X IDEに備わっているデバッグ用のプログラミング言語Stimulus Control Languageを使って、自作のPICプログラムをデバッグしてみる記録です。今回はリテラルの表記と代入文、数値演算について。 リテラルの表記 SCLでは下表に示すいろいろな形式でのリテラル表記をサポートしています。 表記 意味 1 10進数で1 B”10″ 2進数で10 8#70# 8進数で70 10#10# 10進数で10 16#FFFFFFFF# 16進数でFFFFFFFF 16#FFFF_FFFF# 16進数でFFFFFFFF (&#8 … “MPLAB X IDEのSCLでデバッグ(5)” の続きを読む

MPLAB X IDEのSCLでデバッグ(4)

PICマイコンの開発環境であるMPLAB X IDEに備わっているデバッグ用のプログラミング言語Stimulus Control Languageを使って、自作のPICプログラムをデバッグしてみる記録です。今回は変数と型について調べます。今回の内容はMicrochipのチュートリアルに書いてあった情報も参照しています。 変数 変数名 SCLでは変数を使えます。変数名として使える文字は半角英数字とアンダースコア(‘_’)で、先頭の文字は英字でなければなりません。また大文字・小文字は区別します。 変数の定義はこのようにします。 [crayon-59e52f6a13ae444 … “MPLAB X IDEのSCLでデバッグ(4)” の続きを読む

MPLAB X IDEのSCLでデバッグ(3)

PICマイコンの開発環境であるMPLAB X IDEに備わっているデバッグ用のプログラミング言語Stimulus Control Languageを使って、自作のPICプログラムをデバッグしてみる記録です。今回はプロセスとwaitについて調べてみます。 プロセス デバッグ用のコードはprocessブロックに記述する。僕の趣味で、公式ユーザーズガイドとインデントの付け方が違っています。なんかSCLは懐かしのPascal言語っぽいので、Pascal流のインデント方式に統一しています。

testbenchブロックの中には、1個以上のp … “MPLAB X IDEのSCLでデバッグ(3)” の続きを読む

MPLAB X IDEのSCLでデバッグ(2)

PICマイコンの開発環境であるMPLAB X IDEに備わっているデバッグ用のプログラミング言語Stimulus Control Languageを使って、自作のPICプログラムをデバッグしてみる記録です。まず最初はプログラム構造とコメントの書き方、SCLファイルの読み込ませ方から調べてみます。 フォーマット 文字の大文字と小文字は区別する。改行と空白文字は同じに扱われる。つまり適当な場所で改行したり、インデントを自由に入れたりしてよい。 コメント コメントはCスタイル(‘//’)またはVHDLスタイル(‘–‘)が使える。 [cray … “MPLAB X IDEのSCLでデバッグ(2)” の続きを読む

MPLAB X IDEのSCLでデバッグ(1)

PICマイコンの開発環境であるMPLAB X IDEには、デバッグ用のプログラミング言語Stimulus Control Languageが備わっていることが分かりました。いま僕が作っているPICプログラムはNTSCのコンポジット信号を入力として、エッジの数が256回目なら57.3μsのパルス、それ以外なら4.7μsのパルスを出力する、みたいな動作をしているため、ちまちまステップ実行すると何百回もマウスをクリックしないとならず面倒だしミスります。そこでこの言語を使ってデバッグしてみることにしました。僕にとってはPICでモノ作りすること自体が初めてで、当然この言語の知識もまったく無いので、少しず … “MPLAB X IDEのSCLでデバッグ(1)” の続きを読む

JR-100拡張バス用カードエッジコネクタ入手

JR-100の拡張バスに取り付けられるカードエッジコネクタを入手しました。2.54mmピッチの50ピンですが、このタイプのものはなかなか売ってないですね~。ヒロセ電機のCR22A-50D-2.54DS(70)というモデルがマルツオンラインで売っていたので早速購入。税抜き853円でした。 後ろは2.54mmピッチの足が出ているのでユニバーサル基板に取り付け可能です。ただし足が細くて、ブレッドボード用によく使うジャンパーコードは差し込んでもゆるくてすぐ抜けてしまいました。一度基板に半田付けして、そこからピンヘッダに変換してあげないとだめそうです。50本も結線するのはなかなかつらいですが……。

JR-100: ビデオ信号の解析

ビデオキャプチャボードGV-USB2でJR-100のビデオ出力信号がキャプチャできず(関連記事)、なんとかならないかと考えています。JR-100のビデオ出力にカラーバーストが含まれていないからと予想しましたが、そもそもどんな信号が出力されているのかを検証してみようと思います。 まず水平1ライン分の信号はこんな感じでした。画面全体を■文字で埋め尽くしています。つまり描画領域はすべて「白」レベルとなります。以前別記事で計測したときは電圧レベルが200mVp-pでしたが、今回は約2Vp-pでした。前回はプローブの設定を1:10にしていただけかもしれません。。。 通常のNTSCでは水平同期信号は4.7 … “JR-100: ビデオ信号の解析” の続きを読む

JR100:エミュレータv2でゲームパッドに対応

JR-100エミュレータver2で、ゲームパッドに対応しました。さすがにゲームパッド対応用のマルチプラットフォームなライブラリを自作するのは手間がかかりすぎるので、JavaではメジャーなJinputを使っています。JInputはJavaのゲームエンジンlibgdxでも内部で使われているみたいです。 Jinputの使い方は別投稿に譲るとして、まずは設定画面はこんな感じです。 以下のゲームパッドでテストしていますが、他のでうまく動作するのか分かりません。もし動かない場合は連絡いただければ幸いです。 サンワサプライ アーケードスティックII  (JY-A46UCBL) エレコム Xinput対応ゲー … “JR100:エミュレータv2でゲームパッドに対応” の続きを読む

JR-100:エミュレータv2にCPU速度設定機能を追加

長らく放置していたJR-100エミュレータver2に新機能を追加しました。CPU速度を設定する機能です。コメントでいただいていた機能をいつか実装しようと思いながらずっと手を着けられずにいましたがようやくできました。ついでにR6522の実装も強化しています(外見はよく分からないと思いますが)。 ダウンロードはこちらよりお願いします。 JR-100エミュレータ こんな設定画面です。ほぼ10倍速となる10MHzまで指定できます。 JR-100のBEEP音の周波数はクロック周波数に直結しているため、例えば実機でクロックを2倍に修正するとBEEP音の周波数も2倍になるはずですが、エミュレータではクロック … “JR-100:エミュレータv2にCPU速度設定機能を追加” の続きを読む

JR-100: コンポジットビデオ信号のキャプチャ

念願のオシロスコープを購入したので、JR-100が出力するビデオ信号をキャプチャしてみました。 購入したオシロスコープはPico Technology社のpicoscope2205Aというモデルです。秋月電子で購入、税込28,000円でした。 ■主な仕様 (秋月電子のサイトから引用) ・帯域幅:25MHz ・チャンネル数:2チャンネル ・入力インピーダンス:1MΩ||14pF ・ビット数:8ビット ・バッファ:16キロサンプル ・波形発生器機能:DC~100kHz 正弦波、矩形波、三角波、DC、ランプ波形、sinc関数、ガウス関数、正弦半波 ※詳細はPico Technology社のサイトを参 … “JR-100: コンポジットビデオ信号のキャプチャ” の続きを読む