會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





16F1828編譯問題
初級會員
註冊日期:
6月19日 12:25:14
所屬群組:
註冊會員
文章: 26
等級: 3; EXP: 83
HP : 0 / 70
MP : 8 / 87
離線
利用曾百由老師書裡的範例
練習16F1828
編譯時出現錯誤
但只要將delay_ms(100)指令刪除
就可以順利編譯



#include <xc.h> //微控制器使用XC編譯器定義檔

void delay_ms(unsigned long A)
{
unsigned long i, j;
for(i=0;i<A;i++)
{
for(j=0;j<110;j++) Nop();
}
return;
}

void main (void) {

LATC = 0x00; // 將PORTD設定關閉LED
TRISC = 0; // 將TRISD設為0,PORTD設定為輸出
while (1)
{ // 無窮迴圈
delay_ms(100); // 延遲100ms
LATC++; // 遞加PORTD
}
}
---------------------------------------------
編譯錯誤
:: warning: (1273) Omniscient Code Generation not available in Free mode
:0: error: (499) undefined symbol:
_Nop(dist/default/production\ex6_1_IO.X.production.obj)
(908) exit status = 1
nbproject/Makefile-default.mk:141: recipe for target 'dist/default/production/ex6_1_IO.X.production.hex' failed
make[2]: Leaving directory 'D:/ex/EX_for_XC8_16F1828/ex6_1_IO/ex6_1_IO.X'
nbproject/Makefile-default.mk:84: recipe for target '.build-conf' failed
make[1]: Leaving directory 'D:/ex/EX_for_XC8_16F1828/ex6_1_IO/ex6_1_IO.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [dist/default/production/ex6_1_IO.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 2s)

7月17日 16:32:45
轉換PDF檔 列印


Re: 16F1828編譯問題
資深會員
註冊日期:
2010/06/30 16:18
來自 CAE, Microchip Technology Inc.
所屬群組:
站務管理者
註冊會員
文章: 1547
等級: 33; EXP: 44
HP : 162 / 811
MP : 515 / 17527
離線
請參考

附加檔案:



jpg  01.jpg (205.26 KB)
7103_596c7be622a26.jpg 1023X731 px

7月17日 16:57:13
轉換PDF檔 列印


Re: 16F1828編譯問題
初級會員
註冊日期:
6月19日 12:25:14
所屬群組:
註冊會員
文章: 26
等級: 3; EXP: 83
HP : 0 / 70
MP : 8 / 87
離線
針對您提供的圖裡紅色框框需打勾
但16F無法勾取
16F如何使用delay_ms

7月18日 08:59:08
轉換PDF檔 列印


Re: 16F1828編譯問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14151
等級: 72; EXP: 51
HP : 1072 / 1787
MP : 4717 / 70841
離線
修改程式:
1. NOP( ) 這是巨集是用大寫來定義的。詳細請看一下 pic.h 內的宣告。
2. PIC16F1828 沒有 PORTD

請先看一下教育訓練 "XC8T v1.0 New!" 裡面的說明。

#include <xc.h> //微控制器使用XC編譯器定義檔

void delay_ms(unsigned long A)
{
unsigned long i, j;
for(i=0;i<A;i++)
{
for (j=0;j<110;j++) NOP( );}
return;
}

void main (void) {

LATC = 0x00; // 將PORTD設定關閉LED
TRISC = 0; // 將TRISD設為0,PORTD設定為輸出
while (1)
{ // 無窮迴圈
delay_ms(100); // 延遲100ms
PORTB++; // 遞加PORTD (PORTD ???)}
}

7月19日 10:31:00
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project