Pages: [1]   Go Down
Print
Author Topic: ผมจะ Compile โปรแกรมนี้ได้อย่างไรครับ  (Read 8535 times)
0 Members and 2 Guests are viewing this topic.
Richii_MCU
มาใหม่
*
Offline Offline

Posts: 1


« on: September 24, 2012, 10:05:54 PM »

สวัสดีครับ
ผมมีเรื่องรบกวนสอบถามหน่อยครับ ผมเพิ่งจะลองเริ่มเล่นไมโครคอนโทรลเลอร์ และได้ไปดาวน์โหลด วงจรและ Source Code มา
เป็นวงจรไฟกระพริบ Source Code ที่เค้าให้มามีทั้ง แบบเป็น Hex ไฟล์ และ ที่เป็นตัวโปรแกรม สามารถแก้ไขได้
ผมลองเบิร์น IC โดยใช้ Hex file แล้ว ใช้ได้ครับ

ผมมีข้อสอบถาม 2 3 ข้อ คือ

1.ถ้าผมจะแก้ไข Code จำเป็นต้อง compile ใหม่ แล้วต้องทำยังไงครับ ผมใช้ MPLAB IDE v8.85 ผมไม่รู้จะเริ่มยังไงให้ได้ Hex file เพื่อจะเอาไปเบิร์น
2.ภาษาที่เค้าเขียนเป็นภาษา C ใช่ไหมครับ ทำไมเค้าเขียนหลายไฟล์จังครับ

ผมแนบไฟล์มาข้างล่างครับ

* RCnavLightsData.zip (9.88 KB - downloaded 855 times.)
« Last Edit: September 25, 2012, 08:06:45 AM by Richii_MCU » Logged
gundam
Global Moderator
Hero Member
*****
Offline Offline

Posts: 292



« Reply #1 on: September 25, 2012, 10:32:08 PM »

การพัฒนาไมโครคอนโทลเลอร์
SourceCode  --Compile---> Hexfile.hex   ====> เครื่องโปรแกรม MCU ----->MCU

- SourceCode เป็น Text file ใช้ Editor ทั่วไปแก้ไขได้ แต่ Editor ที่ออกแบบมาเฉพาะกิจ จะมีตัวอำนวยความสะดวกมากกว่า ทำให้ใช้ง่ายกว่า
- การ Compile คือการแปลง SourceCode  เป็นภาษาเครื่อง  Hexfile    ส่วนตัว Compile  เรียกว่า Compiler
ซึ่งจะต้องใช้ให้ตรงกับ MCU ที่เราใช้
- Hexfile เป็นภาษาเครื่อง ที่ใช้โปรแกรมลง MCU ครับ

หาเราต้องการแก้ไข ก็ต้องไปแก้ไขที่ SourceCode แล้ว Compile เป็น Hexfile ใหม่ครับ

- ส่วนโปรแกรมที่รวม Editor+Compile+Tools ไว้ในโปแกรมเดียวครับ
เรียกว่า Integrated Development Environment  (IDE)

- MPLAB IDE เป็นของ Microchip ซึ่งมี Compiler Assembly แถมมาด้วย
- MPLAB  C16, C18 , C30 , C32 เป็น Compiler ของภาษา C ที่เราต้อง Install เพิ่มและต้องเลือกให้ตรงกับ เบอร์ที่เราใช้ด้วย
-  เราสามารถใช้ Editor+Tools  ของ MPLAB IDE ในการพัฒนาภาษาอื่นได้แต่ต้อง config directory และ Path ของ Compiler ที่จะใช้นั้นใหม่ด้วย

- ทำไมมีหลายไฟล์ ผมขอพูดแบบคอมไพล์เลอร์ทั่วๆ ไปแล้วกันครับ

ไฟล์ของภาษาซี
- ภาษาซีประกอบไปด้วยอย่างน้อย 1 ไฟล์  เช่น Project1.c ซึ่งประกอบไปด้วยฟังก์ชัน main()
ซึ่งเราอาจกำหนดค่าต่างๆ ไว้ในไฟล์นั้นในส่วนบนก็ได้
- หรือไม่ให้เกะกะ จะกำหนดค่าต่างๆ ไว้ใน file.h  ก็ได้แล้วใช้คำสั่ง
#include <file.h>   นั้นเขามาในไฟล์เรา
- เมื่อเราเขียนฟังก์ชั่นการทำงานนั้นเรียบร้อยแล้ว ไม่ต้องแก้ไขอีกแล้ว เราก็อาจแยกฟังชั้นนั้นไปเป็น LCD.c แล้วใช้คำสั่ง
#include <LCD.C> ซึ่งสามารถเรียกใช้รวมกันจากหลายๆ ไฟล์ได้ทำให้โค๊ดไม่ใหญ่
เวลาแก้ไขไฟล์ใน LCD เพื่อเพิ่มฟังก์ชั่นใหม่ หรือแก้ไขข้อผิดพลาดเราก็ Compile ใหม่เท่านั้น ไม่ต้องไปตามแก้ภายในของทุกไฟล์

ไฟล์ของ Compiler
เมื่อ Compile แล้ว จะพบไฟล์ต่างๆ เพิ่มขึ้นมา เช่น *.mcp Project ไฟล์, *.map MAP ไฟล์, *.mcw Work space , รวมทั้ง Hex ไฟลืด้วย
ซึ่งก็ประกอบไปด้วยส่วนที่ใช้ในการ debug ส่วนใหญ่เราจะสนใจ Hex ไฟล์เพียงอย่างเดียว นอกนั้นเราไม่ได้ใช้

คุณ Richii_MCU ใช้ MCU เบอร์อะไรครับ ยังไม่ได้บอกเลย ไฟล์ที่ Attatch มาก็โหลดไม่ได้ครับ
เพราะต้องเลือกเบอร์ให้ตรงกับ Complier C16, C18 , C30 , C32 ด้วยครับ

ส่วนในการ  config directory และ Path ของ Compiler ลองดู
http://cesdsp-student-club.blogspot.com/2010/11/pic-tutorial-by-joe-mplab.html

หรืออาจใช้ keyword  "การใช้งาน mplab C18"  search ใน goodle เพิ่มเติมดูนะครับ


เพิ่มเติมครับ MPLABŪ C18 C COMPILER GETTING STARTED - Microchip
http://ww1.microchip.com/downloads/en/devicedoc/51295e.pdf
Example 1 หน้า 24   เป็นตัวย่างที่เข้าใจง่ายครับ

« Last Edit: September 25, 2012, 10:50:17 PM by gundam » Logged
Pages: [1]   Go Up
Print
 
Jump to: