Lần đầu viết code cần giúp đỡ

t10000

Trứng gà
Tôi lần đầu tiên viết code trong CCSC nên chưa quen, nhờ các bạn giúp đỡ.
Đoạn trình main.c có bấy nhiêu thôi:

#include <htc.h>
__CONFIG(HS & WDTDIS & PWRTEN & MCLREN & UNPROTECT & SWBOREN & IESODIS & FCMDIS & LVPDIS & DEBUGDIS);
#define _XTAL_FREQ 20000000
void main(void)
{
ANSEL=0;
ANSELH=0;
TRISB=0x00;
PORTB=0xFF;
while(1)
{
PORTB=0x00;
__delay_ms(150);
PORTB=0xFF;
__delay_ms(150);
};
}

Khi compiler thì báo lỗi như sau:

Executing: "C:\Program files\Picc\CCSC.exe" +FM "main.c" I+="C:\Program Files\HI-TECH Software\PICC\9.82\include" +DF +LN +T +A +M -Z +Y=9 +EA
*** Error 128 "D:\data\Dien tu\Pic Project\Prj_led\main.c" Line 2(1,2): A #DEVICE required before this line
1 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Mon Aug 29 13:57:49 2011

Vì là mới tự học nên không biết lỗi là do đâu để sửa, mong các bạn giúp giùm.
Cảm ơn trước!
 

dinale

Trứng gà
Thiếu 1 config Word

Sửa lại như sau:

PHP:
#include <htc.h>
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & BOREN_OFF 
	& IESO_OFF & FCMEN_OFF & LVP_OFF & DEBUG_OFF);   //1st config. Word

__CONFIG(BOR4V_BOR21V);   //2st config. 

#define _XTAL_FREQ 20000000

void main(void)
{
ANSEL=0;
ANSELH=0;	
TRISB=0x00; 
PORTB=0xFF;	
while(1)
{
PORTB=0x00;
__delay_ms(150);
PORTB=0xFF;
__delay_ms(150);
};
}
Với lại code trên viết bằng HT PIC C chứ đâu phải CCS đâu. ;)
 

duongvanthuy_qt

Trứng gà
mọi người có thể giải thích giúp em đoạn code cấu hình cho Pic 16f887 này với
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & BOREN_OFF
& IESO_OFF & FCMEN_OFF & LVP_OFF & DEBUG_OFF); //1st config. Word

__CONFIG(BOR4V_BOR21V); //2st config.
 

t10000

Trứng gà
Bạn dinale ơi,
nhờ bạn mà mình về kiểm tra lại thì thấy mình chọn biên dịch nhầm, nay chọn lại thành HT PIC C thì OK.
Tuy nhiên, vấn đề ở chỗ lại phát sinh lỗi nếu trong code có để hai dòng CONFIG, lỗi là "không định nghĩa các giá trị trong lệnh config

Như bên dưới đây:

Build D:\data\Dien tu\Pic Project\Prj_led\led887 for device 16F887
Using driver C:\Program Files\HI-TECH Software\PICC\9.82\bin\picc.exe

Make: The target "D:\data\Dien tu\Pic Project\Prj_led\main.p1" is out of date.
Executing: "C:\Program Files\HI-TECH Software\PICC\9.82\bin\picc.exe" --pass1 "D:\data\Dien tu\Pic Project\Prj_led\main.c" -q --chip=16F887 -P --runtime=default --opt=default -D__DEBUG=1 --rom=default --ram=default -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files\HI-TECH Software\PICC\9.82\bin\picc.exe" -oled887.cof -mled887.map --summary=default --output=default main.p1 --chip=16F887 -P --runtime=default --opt=default -D__DEBUG=1 --rom=default --ram=default -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.82
Copyright (C) 2011 Microchip Technology Inc.
(1273) Omniscient Code Generation not available in Lite mode (warning)
Error [800] led887.as; 45. undefined symbol "DEBUGDIS"
Error [800] led887.as; 45. undefined symbol "LVPDIS"
Error [800] led887.as; 45. undefined symbol "FCMDIS"
Error [800] led887.as; 45. undefined symbol "IESODIS"
Error [800] led887.as; 45. undefined symbol "SWBOREN"
Error [800] led887.as; 45. undefined symbol "UNPROTECT"
Error [800] led887.as; 45. undefined symbol "MCLREN"
Error [800] led887.as; 45. undefined symbol "PWRTEN"
Error [800] led887.as; 45. undefined symbol "WDTDIS"
Error [800] led887.as; 45. undefined symbol "HS"

********** Build failed! **********


Nếu mình bỏ đi hai dòng config thì biên dịch OK. (thực ra chỉ cần bỏ dòng 1st thôi, nhưng cũng chưa thử nạp PIC, không biết có chạy không)
Chiếu theo bài giảng cách viết code thì bỏ đi hai dòng này có vẻ không ổn.
Các bạn giúp tiếp mình nhé!
 
Top