[ บทความ : แนะนําการใชโปรแกรม Astudio4 (AVR assembler) ]  

                สําหรับในหัวข้อนี้เราจะอธิบายถึงวิธีการใช้งานโปรแกรม Astudio4 เวอรชั่น 4.05 อยางงาย นั่นคือเราจะอธิบายเฉพาะการใช text editer และวิธีการคอมไพลโปรแกรมเทานั้น แตในสวนอื่น เชน การ debug program, chip simulator หากทานใดสนใจก็สามารถศึกษาไดจากเมนู Help

                สําหรับโปรแกรมนี้มันสามารถทํางานไดบนวินโดวส 9x/ME/NT/2000/XP ดังนั้นจึงไมมีปญหาใดๆ สำหรับผูใชระบบปฏิบัติการที่ตางชนิดกัน การติดตั้งโปรแกรมก็ทําไดไมยาก โดยใหานคลายไฟล์ Astudio4 (zip file) ออกมา จากนั้นก็รันไฟล์ setup.exe และก็ทําตามขั้นตอนที่แนะนําไปเรื่อยๆ จนการติดตั้งเสร็จสมบูรณซึ่งหลังการติดตั้งโปรแกรมนี้มันก็พร้อมที่จะทํางานทันทีโดยเราไมองเสียเวลารีสตารตเครื่องใหม

 System requirement

 การสรางไฟลโปรเจ็กตและไฟลอื่น ๆ

                 าการติดตั้งถูกต้อง เมื่อเราเปดโปรแกรมนี้ขึ้นมา เราจะพบหนาตาง Welcome to AVR Studio4 ดังนี้

 

หน้าต่างแสดง Welcome to AVR Studio 4

                หน้าต่างนี้จะมีไว้สำหรับให้เราสามารถทำการสร้างโปรเจ็กต์ไฟล์ใหม่หรือสามารถเปิดโปรเจ็กต์ไฟล์ที่มีอยู่แล้วได้ โปรเจ็กต์ไฟล์จะมีนามสกุลเป็น .aps สำหรับหน้าต่างนี้มันจะแสดงเป็นอันดับแรกของการเปิดโปรแกรมทุกครั้ง หากเราไม่ต้องการให้มันแสดงหน้าต่างนี้ เราสามารถทำได้โดยการคลิกเมาส์ 1 ครั้งที่เช็คบ็อก Show this dialog on open ที่อยู่ทางด้านล่างซ้ายมือของหน้าต่างนี้ เพื่อเอาเครื่องหมายถูกที่กาอยู่ในเช็คบ็อกออกไป ซึ่งในการเปิดโปรแกรมครั้งต่อไปท่านจะไม่พบหน้าต่างนี้อีก และการเปิดหรือสร้างโปรเจ็กต์ใหม่เราสามารถทำได้ผ่านทางออปชั่น Project ที่อยู่ในเมนูบาร์แทน แต่สำหรับการอธิบายในที่นี้เราจะใช้หน้าต่างนี้ในการสร้างโปรเจ็กต์ใหม่ โดยให้ท่านคลิกที่ปุ่ม Create New Project ซึ่งท่านจะพบกับหน้าต่างใหม่ดังรูปต่อไปนี้

 

 หน้าต่างที่ใช้ในการสร้างโปรเจ็กต์ไฟล์

                 ในขณะที่ทำการสร้างไฟล์โปรเจ็กต์ โปรแกรมสามารถที่จะสร้างไฟล์ .asm ซึ่งเป็นไฟล์โปรแกรมภาษาแอสเซมบลีได้พร้อมกันไปในตัวโดยการกาเครื่องหมายถูกที่เช็คบ็อก Create Initial File จากนั้นให้เราพิมพ์ชื่อไฟล์โปรเจ็กต์ที่ช่องข้อความProject Name ในตัวอย่างเราจะใช้ชื่อไฟล์โปรเจ็กต์ rs232 และในระหว่างที่เราพิมพ์ชื่อไฟล์โปรเจ็กต์ เราจะสังเกตุเห็นว่าโปรแกรมจะพิมพ์ชื่อไฟล์โปรเจ็กต์ลงที่ช่องข้อความ Initial File ไปด้วย ซึ่งจะเป็นการสร้างไฟล์โปรแกรม .asm (ไฟล์แอสเซมบลี) และหากเราต้องการให้โปรแกรมสร้างไฟล์ .asm ที่มีชื่อต่างจากชื่อไฟล์โปรเจ็กต์ เราก็สามารถแก้ไขชื่อไฟล์ .asm ได้ที่ช่องข้อความ Initial File นี้

                ข้อควรระวัง  ในการตั้งชื่อไฟล์แอสเซมบลีต่างจากชื่อไฟล์โปรเจ็กต์นั่นก็คือ เมื่อเราทำการคอมไพลแล้วไฟล์ต่างๆ ที่โปรแกรมทำการสร้างขึ้นมามันจะตั้งชื่อตามชื่อไฟล์โปรเจ็กต์เช่น ถ้าเราตั้งชื่อไฟล์โปรเจ็กต์เป็น Testproject และเราตั้งชื่อไฟล์แอสเซมบลีชื่อ rs232 หลังการคอมไพลเราจะได้ไฟล์ Testproject.hex ดังนี้เป็นต้น

                หากเราไม่ต้องการให้มันสร้างไฟล์โปรแกรม .asm ขึ้นในขณะที่เราสร้างไฟล์โปรเจ็กต์ เราสามารถทำได้โดยการคลิกที่เช็คบ็อก Create Initial File เพื่อเอาเครื่องหมายถูกที่กาอยู่ออก สวนที่เช็คบ็อก Create Folder จะเป็นการสร้างโฟลเดอรขึ้นมาเพื่อเก็บไฟล์โปรเจ็กต์ไว้นั่นเอง ถัดลงมาที่ช่องข้อความ Location จะเป็นตำแหน่งของไฟล์โปรเจ็กต์ที่จะถูกนำไปเก็บ ซึ่งเราสามารถเลือกที่จะเก็บไฟล์ที่ใหม่ได้โดยการคลิกที่ปุ่ม  [...]  ที่อยู่ท้ายช่องรับความหรือพิมพ์ชื่อ path ลงไปเลยก็ได้เช่นเดียวกัน สำหรับในตัวอย่างนี้เราจะเก็บไฟล์โปรเจ็กต์ไว้ที่ C:\My Documents\avr และทำการสร้างไฟล์ .asm ขึ้นพร้อมกับการสร้างไฟล์โปรเจ็กต์ด้วย

                เมื่อทุกอย่างถูกต้องดีแล้วก็ให้เราทำการคลิกที่ปุ่ม Finish เพื่อจะเข้าหน้าจอ text editor สำหรับเขียนโปรแกรมต่อไปหน้าจอที่เกิดขึ้นใหม่หลังการกดปุ่ม Finish แสดงได้ดังรูปต่อไปนี้ (ถ้าเรากดปุ่ม Next โปรแกรมจะให้เราเลือก paltform และ MCUที่เราจะใช้ในการซิมมูเลตและ  debug โปรแกรม ต่อไป)

 

 หน้าจอที่เกิดขึ้นหลังจากกดปุ่ม Finish

                 จากรูปข้างบน จะประกอบไปด้วยหน้าต่าง Work space ซึ่งมีไว้สำหรับจัดการกับไฟล์ในโปรเจ็กต์เช่นการ Add existing file, Remove File หรือ การ Set as Entry File เป็นต้น สวนหน้าต่างถัดมาคือ Text Editor มีไว้สำหรับให้เราเขียนโปรแกรมลงไปและสุดท้ายเป็นหน้าต่าง Output ที่ทำหน้าที่แสดงข้อความบอกให้เราทราบถึงผลจากการคอมไฟล์โปรแกรม ซึ่งหากท่านไม่พบหน้าต่างทั้งสามนี้ท่านสามารถเปิดมันขึ้นมาได้เอง โดยการเข้าไปเลือกที่เมนู View

                เมื่อเราทำการเขียนโปรแกรมลงไปที่ text editor เรียบร้อยแล้วก็ให้ทำการบันทึกไฟล์โดยการเลือกไปที่เมนู File>save และทำการคอมไพลโปรแกรมโดยการกดปุ่ม F7 หรือเลือกที่เมนู Project>Build หากเราเขียนโปรแกรมถูกต้อง โปรแกรมจะไม่ฟ้อง Error ที่หน้าต่าง Output แต่หากเขียนโปรแกรมไม่ถูกต้องมันจะฟ้อง Error หรือ Warning ก็ให้เราแก้ไขมันให้ถูกต้องและทำการคอมไพลใหม่ซึ่งจะทำให้ได้ไฟล์ rs232.aps, rs232.hex, rs232.lst, rs232.map, rs232.asm และ rs232.obj ขึ้นมา หากเราไม่ต้องการไฟล์ .map และ .lst ให้เราเข้าไปที่เมนู Project>AVR Asembler Setup จากนั้นจะพบหน้าต่าง AVRAssembler  ให้เราคลิกเอาเครื่องหมายถูกที่ช่อง Map File กับ Lst File ออกและจากนั้นก็กดปุ่ม Ok ก็เป็นอันเสร็จสิ้น สำหรับไฟล์นามสกุลต่างๆ ดังที่เรากล่าวมาข้างต้นท่านสามารถเปิดเข้าไปดูเนื้อหาข้างในไฟล์ได้ด้วยการเลือกไปที่เมนู File>Open File จากนั้นก็เลือกไฟล์ที่ท่านต้องการเปิดและกดปุ่ม Open

 

 การเปิดไฟล์โปรเจ็กต์และไฟล์แอสเซมบลี

                เมื่อเราต้องการเปิดโปรแกรมที่มีอยู่แล้วขึ้นมาแก้ไขเราสามารถทำได้โดยการคลิกเมนู Project>Open Project เพื่อเป็นการเปิดไฟล์โปรเจ็กต์(*.aps) หลังจากที่เราเปิดไฟล์โปรเจ็กต์แล้วจากนั้นก็คลิกเลือกไปที่โฟลเดอร Assembler ที่อยู่ในหน้าต่างWork space เราจะพบไฟล์ .asm ที่เราต้องการแก้ไขอยู่ในนั้น แต่ถ้าหากเราเปิดไฟล์โดยใช้เมนู File>Open File เราก็สามารถที่จะเปิดไฟล์ .asm(หรือไฟล์อื่นๆ ที่ text editor รองรับ) ได้เช่นเดียวกัน แต่เราจะไม่สามารถทำการคอมไพลมันได้ เป็นได้แต่เพียงการแก้ไขและบันทึกเท่านั้น อย่างไรก็ตามการเปิดไฟล์โปรเจ็กต์(*.aps) ด้วยเมนู File>Open File นี้ก็สามารถทำได้และให้ผลการทำงานเช่นเดียวกับการเปิดมันด้วยเมนู Project>Open Project

 การ Add existing File, Remove File และ Set as Entry File

                 Add existing File ก็คือการเพิ่มไฟล์ .asm เข้ามาในโปรเจ็กต์ โดยเราสามารถทำได้ 2 วิธีด้วยกันคือการเลือกไปที่เมนูProject>Add existing File จากนั้นก็ให้เราเลือกไฟล์ .asm ที่เราต้องการนำเข้ามา สวนอีกวิธีหนึ่งทำได้โดยการคลิกเมาส์ปุ่มขวาไปที่โฟลเดอร Assembler ที่อยู่ในหน้าต่าง Work space จากนั้นเราจะเห็นหน้าต่างออปชั่นเล็กๆ ปรากฏขึ้นมาก็ให้เราเลื่อนเมาส์ไปคลิกเลือกที่ Add existing File จะทำให้เราสามารเลือกไฟล์ .asm ที่เราต้องการได้

                Remove File จะทำงานตรงกันข้ามกับ Add existing File นั่นคือมันจะลบไฟล์ .asm ที่เราไม่ต้องการออกจากโปรเจ็กต์ไฟล์ของเรา เราสามารถ Removeไฟล์ได้โดยการคลิกเมาส์ปุ่มขวาเลือกไปที่ไฟล์ที่เราต้องการลบ จากนั้นจะปรากฏหน้าต่างขึ้นมาให้เราเลือกไปที่ Remove File form Project เพียงเท่านี้ไฟล์ที่เราเลือกมันก็จะถูกลบออกไปจากโปรเจ็กต์ที่เรากำลังทำงานอยู่

                Set as Entry File จะเป็นการเลือกไฟล์ .asm ที่อยู่ในโปรเจ็กต์ไฟล์ขณะนั้นให้มันพร้อมที่จะถูกคอมไพล   ฟังก์ชั่นนี้จะมีความจําเป็นมากเมื่อเรามีไฟล์ .asm หลายไฟล์อยู่ในโปรเจ็กต์เดียวกัน ซึ่งโปรแกรม Astudio4 นี้จะไม่ทำการคอมไพลไฟล์ .asm ทั้งหมดพร้อมกัน แต่จะเลือกคอมไพลเฉพาะไฟล์ที่โดน Set as Entry File เท่านั้น เราสามารถรูได้ว่าไฟล์ .asm ตัวใดที่ถูก set ไว้โดยการสังเกตไอคอนที่อยู่หน้าชื่อไฟล์จะมีรูปลูกศรสีแดงหันหัวลง   หรือดูได้จากรูปนี้

 

รูปแสดงหน้าจอที่เกิดจากการ Add Existing File  และหน้าต่างเอาพุตที่รายงานผลการคอมไพล์  โปรดสังเกตการ Warning (วงกลมสีเหลือง) ต่างๆ ด้วย  ถึงแม้การคอมไพล์ไม่ผิดพลาด แต่อาจจะมีผลต่อการทำงานของ CPU ได้

                 สำหรับการ Set as Entry File สามารถทำได้โดยการคลิกเมาส์ปุ่มขวาเลือกไปที่ชื่อไฟล์ที่เราต้องการคอมไพลจากนั้นจะปรากฏเมนูเล็กๆ ขึ้นมาให้เราเลือกไปที่ Set as Entry File ก็เป็นอันเสร็จ

                เราควรจําไว้อย่างหนึ่งว่าหลังการคอมไพลแล้วไม่ว่าเราจะทำการคอมไพลไฟล์ .asm ตัวใดก็ตามในโปรเจ็กต์นั้น ไฟล์เอาพุตที่โปรแกรมสร้างขึ้นมานั้นจะมีชื่อตามชื่อไฟล์โปรเจ็กต์นั้นเสมอ มันจะไม่มีชื่อไฟล์ตามไฟล์ .asm ที่ถูกคอมไฟล์ ดังนั้นเพื่อป้องกันการสับสนท่านอาจจะให้มีเพียงไฟล์ .asm เพียงไฟล์เดียวอยู่ในไฟล์โปรเจ็กต์แต่ละโปรเจ็กต์ก็ได้และตั้งชื่อให้ทั้งสองไฟล์นี้ตรงกัน

                อีกอย่างหนึ่งที่เราอยากจะให้ท่านสังเกต นั่นก็คือผลที่ได้จากการคอมไพลในแต่ละครั้งว่าเป็นเช่นไรบ้างเช่น ขนาดของไฟล์ที่คอมไพลได้มีขนาดเท่าไรซึ่งบางทีเราเขียนโปรแกรมเพลินมันอาจจะมีขนาดโตกว่าหน่วยความจําที่จะเก็บมันก็ได้ หรือที่สำคัญอีกอย่างหนึ่งก็คือข้อความ Warning ที่โปรแกรมเตือนดังนี้

             “C:\My Documents\avr\rs232.asm(92): warning: A .db segment with an odd number of bytes is detected. A zero byte is added.”

                 หากท่านใดเคยเล่น AVR และใช้ฟังก์ชั่นที่เกี่ยวกับพอร์ตอนุกรม RS232 คงพอจะทราบดีว่าบางครั้ง AVR มันก็ไม่สามารถแสดงข้อความที่อยู่หลังบรรทัดนี้(บรรทัดที่แสดงข้อความ Warning) ต่อไปได้ ทั้งที่ข้อความยังไม่สิ้นสุด นั่นเป็นเพราะว่ามันจะทำการเขียนข้อมูลลงหน่วยความจำโปรแกรมเป็นทีละ word (2 ไบต) ดังนั้นเมื่อข้อความที่เราต้องการจะเขียนลงบนหน่วยความจํามันมีจํานวนเป็นเลขคี่ มันก็จะเพิ่มเลข 0 เข้าไปทายข้อความในบรรทัดนั้นๆ เพื่อให้ครบจำนวนเป็นเลขคู่เสมอ  ทีนี้เมื่อเราเขียนโปรแกรมให้ตรวจสอบข้อความว่าถ้าพบเลข  0 เมื่อใดก็ให้ถือว่าสิ้นสุดข้อความทันที ดังนั้นเมื่อโปรแกรมทำการอ่านและตรวจสอบข้อมูลมาถึงไบตที่ AVR เพิ่มเลข 0 ขึ้นมาเอง โปรแกรมก็เข้าใจว่าเราต้องการสิ้นสุดข้อความที่บรรทัดนี้ดังนั้นจึงทำให้ข้อความที่เหลือไม่ถูกตรวจพบนั่นเอง และวิธีแก้ง่ายๆ นั่นก็คือให้เราเพิ่มอักขระอะไรก็ได้เข้าไปอีกตัวหนึ่งในบรรทัดนี้ยกเว้นเลข 0 เท่านี้ก็สามารถแก้การ warining ตรงนี้ได้(เลข 0 ที่เรากำลังพูดถึงกันอยู่ขณะนี้ไม่ใช่เลข “0” ที่เป็นรหัส ASCII นะครับหากแต่เป็นเลข 0 ที่เป็นเซตของเลขจํานวนเต็ม)

 


เขียนโดย : ETT
Author : ETT team
e-mail : sales@etteam.com
วันที่ทำการปรับปรุง : ๘ พ.ย. ๒๕๔๕