- 初めてのPIC 0x02
460 :774ワット発電中さん[sage]:2014/08/17(日) 00:22:50.46 ID:mRHVnl1i - >>459
ありがとうございます。 言葉足らずでした。すみません。 PICには、UARTを2つ持ったものもあるようですが、 どちらにもprintf()を使いたい時は、宛先の指定はどのようにするのでしょうか。
|
- 初めてのPIC 0x02
463 :774ワット発電中さん[sage]:2014/08/17(日) 00:57:23.96 ID:mRHVnl1i - >>462
ありがとうございます。 >どちらのUARTにも流し込むようなputch()を ということは、 void putch1(char c){ while(!TRMT1); TX1REG=c; } void putch2(char c){ while(!TRMT2); TX2REG=c; } という関数を作れますが、 printf()の書式は、どのようになるのでしょう。 printf( putch1, "Hello"); printf( putch2, "Good"); という感じでしょうか。 printf()は、putch()に関連づけされているのなら、putch1という名前は 無効な気持もします。
|
- 初めてのPIC 0x02
466 :774ワット発電中さん[sage]:2014/08/17(日) 02:29:39.18 ID:mRHVnl1i - >>465
夜中まで、ありがとうございます。 そこまで説明していただいて、自分にもやっと理解できました。 printf()は、putch()と関連づけされているので、両者の関数名はこのまま使う。 putch()の中で、宛先の指示を見て、そっちに振る。 具体的には、 void putch(char c){ if( stream==ch1 ){ TX1REG = c; } else if( stream==ch2 ){ TX2REG = c; } } ということですね。 printf()の前に宛先を指示する必要はありますが、 上位で宛先をコントロールできますね。納得しました。 どうもありがとうございました。 ノートに書いて保存しておきます。ありがとうございました。 夜中まですみませんでした。
|
- 初めてのPIC 0x02
477 :774ワット発電中さん[]:2014/08/17(日) 20:15:48.22 ID:mRHVnl1i - イエローソフトのH8のコンパイラーは、ちゃんとfprintf()が使えるんですよ。
なんでPICのCコンパイラーに無いのか、わからないです。
|