FC2カウンター

現在の訪問者数

現在の閲覧者数:

カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

プロフィール

剣菱P

Author:剣菱P
剣菱Pと申します。
性別:男
年齢:27
二兎を追って一兎も得られないタイプ

マイコンやプログラミング、ニコニコ動画、雑記等
方向性は見えずとも、ちょっとずつ更新していく予定です!

リンクフリーです。
こんなブログでよかったらよろしくお願いしま~す。

公開メール kenbishiP@gmail.com

検索フォーム

最新記事

最新コメント

カテゴリ

メールフォーム

名前:
メール:
件名:
本文:

月別アーカイブ

最新トラックバック

リンク

ブロとも一覧

ブロとも申請フォーム

ランキング

ランキング参加中です。気が向いたらクリックしてあげてください。


にほんブログ村 その他趣味ブログへ
にほんブログ村 その他趣味ブログ 趣味の工作へ

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PIC Printf(PIC C Lite) その3 PIC Printf(PIC C Lite) その1»

コメント

コメントの投稿













管理者にだけ表示を許可する

PIC Printf(PIC C Lite) その2


さて、重複定義はとりあえずスルー出来たので本題のprintf関数について

以前挑戦したとき何がだめだったのか忘れてしまったので0から再挑戦w

プロジェクトに組み込まれるファイルは7つ

main.c putch.c lcd.c delay.c
lcd.h putch.h delay.h

main.c


#include <pic.h>

#include "delay.h"
#include "putch.h"
#include "lcd.h"
__CONFIG(HS & WDTDIS & PWRTDIS & UNPROTECT);

main(){
    int i=123;
    TRISA = 0x00;
    TRISB = 0x00;
    PORTA = 0x00;
    PORTB = 0x00;

    lcd_init();
    lcd_clear();
    DelayMs(2);
    lcd_cmd(0x0c);
    while(1){
        lcd_pos(1,1);
        DelayMs(250);
        printf("%d",i);
    }
}


putch.c

#include<pic.h>
#include "delay.h"
#include "lcd.h"
void putch(unsigned char tx_byte){

    lcd_data(tx_byte);

}


putch.h

void putch(unsigned char);


とりあえずputchという関数をつくればprintfからの文字を一文字ずつ受け取って処理できるらしい。
なぜprintfの出力先がputchなのかは、いーまーの僕には理解できなーいー♪

これをビルドしてみると。おそらく前回もこうであっただろうエラーが発生
エラーの内容は
Error   [1347] ; 0. can't find 0x19 words (0x19 withtotal) for psect "text117" in segment "CODE" (largest unused contiguous range 0x11)
Error   [1347] ; 0. can't find 0x12 words (0x12 withtotal) for psect "text110" in segment "CODE" (largest unused contiguous range 0x11)

うーん、よくわからないのでとりあえずいろいろいじってみる

まず、putch関数の中身をいじってみる。ためしに関数内を変更して

#include<pic.h>
#include "delay.h"
#include "lcd.h"
void putch(unsigned char tx_byte){

    RA1 = 1;
    DelayMs(100);
    RA1 = 0;
    DelayMs(100);

}

これでLCDとは動作が完全に切り離されました。printf関数がputchと関連してるのかを確認するために
putchが呼び出されると ポートAにつけられたLEDが点滅するようにしてみました。

ビルドを実行すると
おや!

Error   [1098] ../../common/printf.c; 14. conflicting declarations for variable "_printf" (C:\PIC_project\test\main.c:21)

変数の宣言が矛盾しています? へ?

いったん、さっきの状態にもどしてビルドしてみると。
あ、あれ、
Error   [1098] ../../common/printf.c; 14. conflicting declarations for variable "_printf" (C:\PIC_project\test\main.c:21)

どういうことなの・・・?
わけわからんことが多すぎる。 コンパイラ変えようかしら


スポンサーサイト

PIC Printf(PIC C Lite) その3 PIC Printf(PIC C Lite) その1»

コメント

コメントの投稿













管理者にだけ表示を許可する


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。