[戻る]
過去ログ [ 0001 ]
過去ログ:     ワード検索: 条件: 表示:

タイトル
記事No
投稿日
投稿者
参照先
LCDのプログラムについて
415
: 15/12/15-16:19
学生
http://www.picfun.com/P12F/p12f07.html
使用してるのは、MPLABXIDE XC8 PICkit3 pic12f683です。
参照先のサンプルプログラムを参考にしたのですが、コンパイルが成功しません。下記が、プログラムです。
わかる方、ご教授願います。

// PIC12F683 Configuration Bit Settings

#include <xc.h>
#include "lcd_i2c_lib.h"

// CONFIG
#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = ON // Brown Out Detect (BOR disabled)
#pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)
#define _XTAL_FREQ 8000000
#define _LEGACY_HEADERS


void itostring(char digit, unsigned int data, char *buffer);
unsigned char Msg[17] = "Counter = xxxxx ";

/******** メイン関数 ************/
void main(void)
{
unsigned int Count, icon;
unsigned char Flag;

OSCCON = 0x70; // Set to 8MHz
GPIO = 0x30; // GP3,4,5 default High
TRISIO = 0; // GP 全出力設定
ANSEL = 0x00; // デジタルに設定
CMCON0 = 0x07; // コンパレータオフ
/* 液晶表示器の初期化 */
lcd_init();
icon = 0;
Flag = 1;
Count = 0;
GP2 = 0;
/**** メインループ *****/
while(1)
{
GP2 ^= 1;
lcd_cmd(0x80);
lcd_str("Hello! LCD Test!");
itostring(5, Count++, Msg+10);
lcd_cmd(0xC0);
lcd_str(Msg);
lcd_icon(icon, Flag);
icon++;
if(icon >= 14){
icon = 0;
Flag ^= 1;
}
__delay_ms(500);
}
}

/***************************************
* int整数からASCII文字に変換
****************************************/
void itostring(char digit, unsigned int data, char *buffer)
{
char i;

buffer += digit; // 最後の数字位置
for(i=digit; i>0; i--) { // 変換は下位から上位へ
buffer--; // ポインター1
*buffer = (data % 10) + '0'; // ASCIIへ
data = data / 10; // 次の桁へ
}
}
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: LCDのプログラムについて
416
: 15/12/15-20:41
error

> 使用してるのは、MPLABXIDE XC8 PICkit3 pic12f683です。
> 参照先のサンプルプログラムを参考にしたのですが、コンパイルが成功しません。下記が、プログラムです。
> わかる方、ご教授願います。
>
> // PIC12F683 Configuration Bit Settings
>
> #include <xc.h>
> #include "lcd_i2c_lib.h"
>
> // CONFIG
> #pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
> #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
> #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
> #pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
> #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
> #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
> #pragma config BOREN = ON // Brown Out Detect (BOR disabled)
> #pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)
> #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)
> #define _XTAL_FREQ 8000000
> #define _LEGACY_HEADERS
>
>
> void itostring(char digit, unsigned int data, char *buffer);
> unsigned char Msg[17] = "Counter = xxxxx ";
>
> /******** メイン関数 ************/
> void main(void)
> {
> unsigned int Count, icon;
> unsigned char Flag;
>
> OSCCON = 0x70; // Set to 8MHz
> GPIO = 0x30; // GP3,4,5 default High
> TRISIO = 0; // GP 全出力設定
> ANSEL = 0x00; // デジタルに設定
> CMCON0 = 0x07; // コンパレータオフ
> /* 液晶表示器の初期化 */
> lcd_init();
> icon = 0;
> Flag = 1;
> Count = 0;
> GP2 = 0;
> /**** メインループ *****/
> while(1)
> {
> GP2 ^= 1;
> lcd_cmd(0x80);
> lcd_str("Hello! LCD Test!");
> itostring(5, Count++, Msg+10);
> lcd_cmd(0xC0);
> lcd_str(Msg);
> lcd_icon(icon, Flag);
> icon++;
> if(icon >= 14){
> icon = 0;
> Flag ^= 1;
> }
> __delay_ms(500);
> }
> }
>
> /***************************************
> * int整数からASCII文字に変換
> ****************************************/
> void itostring(char digit, unsigned int data, char *buffer)
> {
> char i;
>
> buffer += digit; // 最後の数字位置
> for(i=digit; i>0; i--) { // 変換は下位から上位へ
> buffer--; // ポインター1
> *buffer = (data % 10) + '0'; // ASCIIへ
> data = data / 10; // 次の桁へ
> }
> }

エラーが何て出てるのか位書こうよ
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
返信ありがとうございます
417
: 15/12/15-21:41
学生

:0: error: (500) undefined symbols:
未定義のシンボルと怒られます。
nbproject/Makefile-default.mk:119: recipe for target 'dist/default/production/a.X.production.hex' failed
nbproject/Makefile-default.mk:78: recipe for target '.build-conf' failed
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
この三つに関してはMakefileに飛んで警告されます
MPLABを使い始めたばかりで、実際の所この使い方もウェブサイトで調べ、SW入力とLED点滅の実験をしてみただけです。
目標としては、タイマスイッチをLCDできるよう上達することです。
勉強本として、8ピンPICマイコンの使い方がよくわかる本を購入し、参考プログラムを旧パラメータを新パラメータにしたプログラムをコンパイルしたところ、やはり同じようなエラーが出てきました。
エラーの原因はMPLABのバージョンもコンパイラが違うからなのでしょうか。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: 返信ありがとうございます
418
: 15/12/15-22:18
???

念のために聞きますが、これはLCDのライブラリとヘッダファイルは、プロジェクトファイルに追加されていて、読み・リンクできている状態ということでよろしいでしょうか。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re^2: 返信ありがとうございます
419
: 15/12/15-22:28
学生

はいそうです?
▲pagetop

- WebForum -