古いほうの本、printf関数が動いた!

PIC

これの続き。前回古いほうの本の325ページ、10-2-3 printf関数の使い方、これのPrintf1.cをやってみたところ、コンパイルエラー undefined symbol “_IOInit”、undefined symbol “_PPSLock”
で止まった件。

で、ここで、Printfより前にやったこれを見てみよう。このように、Getch問題は解決したので、ここにあるコードは動くことがわかっている。

で、Getch2.cを見てみると、void IOInit(void){… という文があるじゃない。
今回「IOInitがundefinedで怒られた」なら、このGetch2.cにあるIOInitの定義文を全部コピペしたらどうだ?ということでコピペ。
次に、PPSLockなのだが、どうやらPPSって任意機能をピンに割り当てるみたいな便利機能らしいけど、今回はそういうピンの割り当てとか全くやらないので関係なさそうなので、強引にPPSLockが出てくる文は全部コメントアウト

ここまでやると、ちゃんとコンパイルが通った。まあ怒られたのを直したからw。でも無反応で機能はしていない。TeraTermに何か反応してほしいのに反応しないということは、そういう入出力機能が動いていないみたいだから、またGetch2.cを見てみる。この時はちゃんとTeraTermが動いていたので。
すると、
void putch(char Data){…
char getch(void){…
という文を発見。多分これがTeraTermに関係してそう?なので、このputch, getch部分も全部コピペ。まとめると、こうなる。

その結果、TeraTermにこの文字が!

おー、ちゃんと本に書いてある通りに動いた!ようやく懸案事項が1つ解決しましたよ!(^^)/

しかし・・・この古いほうの本の326ページにあるリスト10-2-3がはじめからこういう記述になってれば一切の問題は発生しなかったのに、なんでそうなってないのかは不明ww(爆

コメント

タイトルとURLをコピーしました