トップページ > 電気・電子 > 2014年08月17日 > mRHVnl1i

書き込み順位&時間帯一覧

5 位/122 ID中時間01234567891011121314151617181920212223Total
書き込み数2010000000000000000010004



使用した名前一覧書き込んだスレッド一覧
774ワット発電中さん
初めてのPIC 0x02

書き込みレス一覧

初めての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コンパイラーに無いのか、わからないです。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。