Nucleo_DCO_Test04 ピンアサイン
Arduino | Nucleo | Description |
---|---|---|
D15 | PB_8 | OLED/I2C/SCL |
D14 | PB_9 | OLED/I2C/SDA |
GND | GND | OLED/GND |
D5 | PE_11 | CheckPin |
D4 | PF_14 | CheckPin |
- | PA_4 | WaveOut |
テストプログラム(mbed-cli)
https://github.com/ryood/Nucleo_DCO/tree/master/mbed/Nucleo_DCO_Test04
u8g2-mbedを使ったプログラム作成の手順
プロジェクト作成
PS D:\Users\gizmo\Documents\mbed> mbed new Nucleo_DCO_Test04 [mbed] Creating new program "Nucleo_DCO_Test04" (git) [mbed] Adding library "mbed-os" from "https://github.com/ARMmbed/mbed-os" at branch/tag "latest" [mbed] Updating reference "mbed-os" -> "https://github.com/ARMmbed/mbed-os/#f8b140f8d7cb226e41486c5df66ac4f3ce699219" The following paths are ignored by one of your .gitignore files: mbed-os.lib Use -f if you really want to add them.
u8g2-mbedから以下のファイルをプロジェクトディレクトリにコピー
u8g2.libsrc/main.cppはu8g2-mbedを使ったプログラムの雛形として使えます。
.mbedignore
src/*
.mbedignoreの中身は
PS D:\Users\gizmo\Documents\Develop\Nucleo_DCO\mbed\Nucleo_DCO_Test04> cat .mbedignore u8g2/cppsrc/* u8g2/doc/* u8g2/sys/* u8g2/tools/*
となっていて、mbedのBUILD対象外とするファイルを指定するようです。
参考「Ignoring files from mbed build」
続いてプロジェクトディレクトリに移動して、デプロイ
> mbed deploy
コンパイルです。
> mbed compile -t GCC_ARM -m NUCLEO_F767ZI
Nucleo_DCO_Test04ではOLEDに
fps | 経過時間を表示しています。fpsはおおよそ10.9になりました。OLEDの表示はメイン・ループ内で行っていて1秒間に10.9回のループです。操作子からの入力もメイン・ループ内で行うと思うので、fpsはもっと下がると思います。
表示更新回数
出力波形
ch1:PA_4
Ticker割り込みの処理時間
ch2:D4
Hになっている時間(PW)が波形出力の割り込み処理に要した時間で、1.2マイクロ秒です。
mbedのオンラインコンパイラ(mbed OS 2)でやったときは(参考「Nucleo DCOの構想 ~ いわゆるプロダクト・アウト」)720ナノ秒だったので、処理時間が増えました。
これはOLED表示のためというよりは、OS 2 → OS 5に移行したためなんじゃなかな~と思います。
F767でもいろいろやろうと思うと48kHzのサンプリング・レートがキープできるかどうかちょっと心配です。
ToDo:
・3オシレーターの波形合成(ミキシング)・入力系の処理のテスト
0 件のコメント:
コメントを投稿