Test program GR-PEACH
このプログラムには、二つの気になる点があります。
1)LEDのON/OFFがほかのmbedと論理が反対です。
ほかのmbedボードは正論理(1=ON)ですが、このボードは負論理(0=ON)です。
良いとか悪いとかコメントする気はありませんが、ほかのボードから移植するときに、暗黙にONを1とするmbed文化と衝突することは間違いないでしょう。
ポートの出力電流も調べてみましたが、+/-2mAと規定(P1_0から7は10mA)されています。
現在、どのくらいの電流が流れているかは調査していませんが、今の使い方であれば、アノードコモンからカソードコモンのLEDに変えれば同じように実力での駆動は問題ないでしょう?
2)もう一点はprintf()の出力タイミングです。
LEDの個別のON/OFFとprintf()で仮想COMを経由してホストPCに吐き出される文字列が同期していません。
どうもwait()関数の呼び出しまでFIFO(詳しくまだ調べていないので憶測)に蓄えて一気に吐き出しているように見えます。
printf()機能はmbedでは大切なDebugツールです。内容を精査いただけると幸いです。
変更した点
2) printf(debug用)とSerialを宣言してのちのprintfを使い分けて、動作が違うことが判明。
宣言したprintfでは問題なし。この差の原因が何かは現時点では不明。
使用方法
//#define DISP_COM //コメントアウトしてコンパイルで問題発生(旧バージョンと同等) #define DISP_COM //問題が消える
Revision 3:989d13762f43, committed 2014-12-04
- Comitter:
- kenjiArai
- Date:
- Thu Dec 04 12:07:23 2014 +0000
- Parent:
- 2:3747397a1618
- Commit message:
- changed printf
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 3747397a1618 -r 989d13762f43 main.cpp --- a/main.cpp Thu Dec 04 12:03:04 2014 +0000 +++ b/main.cpp Thu Dec 04 12:07:23 2014 +0000 @@ -21,7 +21,7 @@ #define LED_NAME //#define LED_COLOR -//#define DISP_COM +#define DISP_COM // Com #ifdef DISP_COM