gombeのブログ

マイコンの電子工作系PIC32/KiCad/C/C++/3D/

32MX

あけおめことよろ 新規プロジェクトの紹介

あけましておめでとう⛩ 今年もよろしくお願いします。 最近新しいプロジェクトを始めました。MachiKaniaのハードでCコンパイラやテキストエディタなどを乗せたネイティブコンパイラの開発をしています。 このシステムは編集、コンパイルや実行に必要な一通り…

SPIx3でNTSC

PIC32でNTSCシグナルの生成に成功(?)したのでメモ。 こちらがけんけんさんがやってくださったものです。よく書けてるのでこっち見てください。 PIC32MK でNTSCシグナルを生成するとき、普通だったらタイミングに沿ってCPUで出力します。ただ、リソースの問…

マイコンで3Dグラフィクス(2)

前の記事 ラインスキャン法による三角ポリゴン描画 うむ。こんにちは。ポリゴン描画にいよいよかかります。こいつがいちばんの難所で速度が出る出ないの境目がここにあります。今回はラインスキャンというCPUで描画するのに適した高速かつ穴のないレンダリン…

まだ制限付きのXC32コンパイラ使ってたのか?

XC32コンパイラはMIPS32アーキテクチャのコンパイルツールです。実はこれ、ソースコードがmicrochip社によって公開されてます。これはつまり、「自分でリビルドして制限解除してね」と言っていることになります。 簡単に説明するともともとXC32コンパイラで…

組み込みでのC++の勧め

PICならxc32++,armならarm-g++,など、さまざまなマイコンでc++を利用可能です。例えば32bitCPUならアドレスがリニアに取れることが多いため、オーバーヘッドが少なくてすみます。 そこでc++をつかったプログラミングのススメを書きます。ではなぜC++なのでし…

machiKaniaでマインスイーパー

再帰の展開をしてマインスイーパーを作りました。後の方に載せます。ソースコードはGithubにあげています。うまくカラー表示できてないけど。 以前C言語で作ったものの移植です。マインスイーパー自体は非常に簡潔なコードでかけますが、掘る作業で再帰を用…

MachiKaniatypeZのビデオ再生(完結

あけましておめでとう。(遅い MachiKaniatypeZでカラー動画再生をやったので技術的メモ カラー動画再生をするのですが、出せる色数は16色です。カラーパレットを高速に切り替えないといけません。しかもFPS30だとすると、表示タイミングは1/2となりますが、…

MachiKaniaで日本語表示

[caption id="attachment_4051" align="alignnone" width="800"] 日本語表示テスト[/caption] 日本語表示テストをしました。上の写真のソースコードはこちらから https://github.com/elect-gombe/fontx2machikania FONTX2の説明を書いたことがなかったので載…

MachiKaniaのSDカード読み出しの高速化

WAVの読み出しするときに気がついたんですがSDカードの読み出し遅すぎまあなんというかmicrochip のライブラリを使っているのでしょうがないのかな?とは一瞬思ったのですがオーバーヘッドが大きいのとコードサイズが大きいですね。FatFSだとコードサイズは…

MachiKaniaでPCMの再生

次期作で乗る予定だったらしいですがもう試しに乗せてみました。まあ、みればわかるとおもいます。解説はほとんど不要だと思います。 2016/12/11追記 YouTubeに変更しました で、PCMなんですが容量が一気に増えますんでFlashには入りません。(数秒まで) とい…

MachiKaniaでの音楽の再生

MachiKaniaはマイコンの限界まで詰め込んだビデオゲームシステムですが、ビデオは素晴らしいのですが音楽がチープだったのでそれを改善するためのプロジェクト。 まず元々のプロジェクトでは音声出力はOC(OutCompare)を使ってコンペアマッチイベントでピンを…

マイコンのDMAでの断続的な転送

DMA 単一のアドレス空間上にはFlashやペリフェラル(周辺機器)のレジスタ、RAMメモリがある。この空間の間は通常CPUなどがアクセスしてメモリ間転送している。 これはCPUにやらせてもいいのだがCPUはリソースを取られるし一定時間内で転送しなければならない…

PIC32MXでFatFS(失敗

以前dsPICでプチFatFSを動かしたので今回は完全版のFatFSを動かそうと思います。が、結局それ以前のDiskInitializeで失敗してしまいそれ以上行けませんでした。原因は不明ですが、8MB,2GBのSDカードは無事でLFNまで確認できましたけど4G,8G,16Gいずれも失敗…