วันพฤหัสบดีที่ 30 ตุลาคม พ.ศ. 2557

EXTERNAL FILEเหมือนไฟล์หลายไฟล์ในโปรเจค




สร้างEXTERNAL FILEเหมือนไฟล์หลายไฟล์ในโปรเจค
10/3/2557 SONGCHAI PRAPATRUNGSEE
สร้างEXTERNAL FILEเหมือนไฟล์หลายไฟล์ในโปรเจค
1 สร้างไฟล์หลักขึ้นมาก่อนแล้วคอมไพล์ให้ผ่านก่อน
   และไฟล์หลักจะต้องมีการสร้างฟังชันไว้
   เพราะEXTERNAL FILEหรือไฟล์ย่อย
   คือฟังชันของไฟล์หลักนั่นเอง
2 คลิกFILE/NEW/FILE/SAVE AS
3 ที่ช่องFILE NAMEพิมพ์ชื่อตามด้วย.C (C SOURCE FILE)
4 คลิกSAVE
5 คลิกขวาSOURCE GROUP1
6 คลิกADD EXISTING FILES
7 ดับเบิลคลิกชื่อไฟล์ที่เราตั้งชื่อไว้
   หรือพิมพ์ชื่อไฟล์ที่ช่องFILE NAMEแล้วคลิกADD
   เท่านี้ไฟล์ย่อยก็เข้าไปในSOURCE GROUP1แล้ว
8 คลิกCLOSE
9 COPY FUNCTION จากไฟล์หลักไปไว้ใน
   EXTERNAL FILEหรือไฟล์ย่อย
   ส่วนไฟล์หลักตัดให้เหลือเฉพาะส่วนหัวของฟังชัน
   แล้วใส่เครื่องหมาย ; (STATEMENT) จบคำสั่ง     
extern unsigned char SUB(unsigned char i,j);
ส่วนนี้เรียกว่าFUNCTION PROTOTYPEหรือฟังชันต้นแบบ
ไฟล์หลักจะเรียกใช้ไฟล์ย่อย
โดยการเรียกใช้ผ่านFUNCTION PROTOTYPE  เช่น

ไฟล์หลักหรือโปรแกรมหลัก
#include <REGX51.H>

extern unsigned char SUB(unsigned char i,j);

void main(void){
      unsigned char k;
       k=SUB(20,5);    
}

EXTERN FILEหรือไฟล์ย่อยหรือโปรแกรมย่อย
unsigned char SUB(unsigned char i,j){
      return i-j;
}

คำอธิบาย โปรแกรม
    #include <REGX51.H>
# คือ เครื่องหมายSHARP เป็นพรีโปรเซสเซอร์ไดเรกทีฟ
    ( PREPROCESSOR  DIRECTIVE )
    หมายความว่าเป็นคำสั่งประมวลผลก่อน
include =เอาไฟล์ภายนอกเข้ามาร่วมในการคอมไพล์(แปล)
    หมายความว่าเวลากดBUILDหรือREBUILD
    ก็จะเข้าไปทำการคอมไพล์(แปล)ในไฟล์ include ก่อน
    จากนั้นจึงกลับมาคอมไพล์ต่อจากบรรทัดที่คอมไพล์ไปแล้ว
    ให้เป็นไฟล์.HEX หรือเลขฐาน16
<REGX51.H> = ชื่อที่ทางคอมไพล์เลอร์กำหนด
    แทนตำแหน่งแอดเดรสของไมโครคอนโทรลเลอร์
    เพื่อให้ง่ายต่อการจดจำและใช้งาน
.H คือไฟล์นามสกุล H FILE ไม่ใช่ HEX FILE

extern unsigned char SUB(unsigned char i,j);
=FUNCTION PROTOTYPEหรือฟังชันต้นแบบ
ไฟล์หลักจะเรืยกใช้ EXTERNAL FILEหรือไฟล์ย่อย
โดยการเรียกใช้ผ่าน FUNCTION PROTOTYPE
หรือฟังชันต้นแบบ
        
extern=ไฟล์จากภายนอกจะเขียนหรือไม่เขียนก็ได้
unsigned char =มีOUTPUT(RETURN TYPE)
    เป็นชนิดตัวแปรมีค่าอยู่ในช่วง0-255=256ค่า

SUB = ชื่อฟังชันที่ตั้งขึ้นเอง

     ( unsigned char i , j ); 
หมายความว่ามี INPUT(ARGUMENTS)
i และ j คือตัวแปรที่ตั้งชื่อขื้นเอง
มีค่าอยู่ในช่วงชนิดตัวแปร unsigned char
คือ0-255=256ค่า

{…..} = ขอบเขตการทำงานของฟังชัน

    Return i-j;
หมายความว่า i-j แล้วเก็บผลลัพท์ไว้ใน i
return คือคำสั่งย้อนกลับหมายถึงเอาผลลัพท์ของ i-j
ย้อนกลับไปให้OUTPUT(RETURN TYPE)ของฟังชันSUB
หมายความว่าฟังชันSUBมีค่าเท่ากับผลลัพท์ของ i-j

    void main(void)
void =ไม่มี OUTPUT(RETURN TYPE)
main = FUNCTION NAME, main=ชื่อฟังค์ชันหลัก
(void) =ไม่มี INPUT(ARGUMENTS)
{….} คือวงเล็บปีกกา เป็นLOOPหรือขอบเขตของการทำงาน

    unsigned char k;
หมายถึงกาประกาศตัวแปรk ที่ตั้งชื่อขึ้นเอง
ให้มีค่าอยู่ในช่วง unsigned char=0-255=256ค่า

    k=SUB(20,5);
หมายความว่าเอาค่าผลลัพท์ในฟังชันSUBไปเก็บไว้ในตัวแปรk
20,5 = 20เก็บไว้ในตัวแปร i, 5เก็บไว้ในตัวแปร j
หลังจากจบบรรทัดนี้ก็เข้าสู่โหมดประหยัดพลังงาน
คืออยู่เฉยๆไม่ทำอะไร
            
    ความหมายของWARNING
referrence made to unresolved external
แปลว่าการอ้างอิงจากภายนอกยังไม่ได้ทำ

unresolved external symbol
สัญลักษณ์จากภายนอกยังไม่ได้ทำ





ไม่มีความคิดเห็น: