ทำไมต้องเรียน AVR ด้วยภาษา c แทนที่จะเรียน c ของตระกูล PIC
ก่อนอื่นมาดูนี่กันก่อนหน้าตาของ debuger ใช้ avr studio ถ้าเทียบกับ pic ก็คือ mplab
avr studio นั้นสามารถดูค่าตัวแปรได้ ดูค่า port ได้และยังสามารถ disasmbler ได้อีกด้วย แถมยังแทรกเป็นภาษา c ทีละบรรทัดว่าหลังจากแปลงแล้ว
แต่ละบรรทัดเป็น asm ได้ยังไงด้วย เหมาะสำหรับคนที่ต้องการเรียนรู้ 2 ภาษา ซึ่งอาจจะเป็น c มาก่อนอยากจะรู้ asm เพิ่มขึ้นมาก็สามารถดูได้ว่าแต่
ละคำสั่งนั้นในภาษา c asm เขาใช้อะไร ยังสามารถตั้ง break point ได้ด้วย และยังสามารถคำนวณเวลาในการทำงานแต่ละ function หรือ แต่ละคำสั่ง
เช่นต้องการตรวจสอบว่า 5 บรรทัด นี้ใช้เวลาทำเท่าไหร่ก็สามารถตั้ง break point และ รันได้ทันที ตัว simulate จะบอกเวลาให้ครับ ดูรูปกันดีกว่า

เปรียบเทียบ avr,pic
AVR เร็วกว่า pic ถึง 1.5 เท่าถึง 2.5 เท่า ดังตารางนี้
|
จำนวนขา เบอร์ ความเร็ว ต่อ clock ได้สูงสุด ใน 1 วินาทีทำคำสั่ง + ตัวเลขขนาด8bit ได้ |
40 ขา pic16f877 4clock=1 cycle 20MHZ 20MHZ/4= 5 ล้านคำสั่ง
40 ขา pic16f485 4clock=1 cycle 40MHZ 40MHZ/4= 10 ล้านคำสั่ง
40 ขา AVR90s8535 1clock=1 cycle 8-12 MHZ 8MHZ/1= 8-12 ล้านคำสั่ง
40 ขา AVR90s8515 1clock=1 cycle 8-12 MHZ 8MHZ/1= 8-12 ล้านคำสั่ง
18 ขา pic16f628 4clock=1 cycle 20MHZ 20MHZ/4= 5 ล้านคำสั่ง
20 ขา AVR90s1200 1clock=1 cycle 16 MHZ 16MHZ/1= 16 ล้านคำสั่ง
28 ขา AVR90s4433 1clock=1 cycle 16 MHZ 16MHZ/1= 16 ล้านคำสั่ง
28 ขา pic16f853 4clock=1 cycle 20MHZ 20MHZ/4= 5 ล้านคำสั่ง
ยกแรกนี้ pic ไม่เหลือคุณค่าเลยครับ มาดูอีกยกดีกว่า
|
จำนวนขา เบอร์ ราคา eeprom atd comparator rom pwm timer |
40 ขา pic16f877 220 บาท มี มี 10bit 8ch ไม่มี 8kw 2 3
40 ขา pic16f485 300 บาท มี มี 10bit 8ch ไม่มี 16kw 2 3
40 ขา AVR90s8535 180 บาท มี มี 10bit 8ch มี 8kw 2 3
40 ขา AVRmega8535 180 บาท มี มี 10bit 8ch มี 16kw 2 3
40 ขา AVR90s8515 160 บาท มี ไม่มี มี 4kw 2 3
18 ขา pic16f628 190 บาท มี มี 10bit ch มี 2kw 2 2
20 ขา AVR90s1200 160 บาท มี ไม่มี มี 8kw 2 2
28 ขา AVR90s4433 180 บาท มี มี 10bit 8ch มี 8kw 2 3
28 ขา pic16f853 200 บาท มี มี 10bit ch มี 4kw 2 3
ยกนี้ pic ไม่เหลือคุณค่าเลยครับ มาดูอีกยกดีกว่า
ทดสอบด้วยโปรแกรมไฟวิ่ง ซ้ายไปขวา 8 ดวง หน่วงเวลา 1 sec
ภาษา c for avr (code vision,imagecraft) ภาษา c for pic(ccs )
ขนาดโปรแกรมที่เบรินแล้ว 223 byte 543 byteแสดงว่า ccs ไม่ดีเรื่องขนาด
เขียนโปรแกรมสร้างพัลแบบต่อเนื่อง (portb=0;portb=1 วนรอบไปเรื่อยๆ)ทดสอบที่ MIPS เท่ากัน
ภาษา c for avr (code vision,imagecraft) ภาษา c for pic(ccs )
ความเร็ว ทำได้ดี เวลามากกว่าAVR มากแสดงว่า ccs ไม่ดีเรื่องความเร็ว
เขียนโปรแกรมวนรอบด้วยคำสั่ง for ซ้อนกัน 5 loop ทดสอบที่ MIPS เท่ากัน(cycle ที่เท่ากัน)
ภาษา c for avr (code vision,imagecraft) ภาษา c for pic(ccs )
ทำได้ดี คอมไพล์ผ่านแต่ทำไม่ได้ hang แสดงว่า ccs ไม่ดี
เขียนโปรแกรมโดยเอา code ตัวอย่างที่มีอยู่มาแก้ไข (cycle ที่เท่ากัน)
ภาษา c for avr (code vision,imagecraft) ภาษา c for pic(ccs )
ทำได้ดี คอมไพล์ผ่านแต่ทำไม่ได้ hang แสดงว่า ccs ไม่ดี
และขอเสริมอีกนิดครับ c for pic นั้นไม่มี option ทางการเลือกว่าจะเอาแบบ speed และ ไม่สามารถได้ว่าต้องการประหยัด code และยังไม่มีตัว debuger อีกด้วยดังนั้น ใช้แล้วพบว่าห่วยมากๆๆๆ
ขอเปรียบเทียบกับตัวทูล IDE หน่อยนะครับ กับการใช้งานกับ ภาษา c และ ASM
AVR studio MPLAB ของ pic
debuger ภาษา c ได้ง่ายๆครับ ทำได้แต่ต้องเซตกันอุตลุต
ดูค่าตัวแปรได้เลย พร้อมมี interface สวยงาม ดูไม่ได้นะครับต้องซื้อตัว tool เพิ่ม
ใช้ง่ายจริงๆ พร้อมโปรแกรมชิพได้ทันที ใช้ยากจริงๆ โปรแกรมชิพไม่ได้
ดูหน้าตาก็เห็นครับระหว่างความปราณีตในการออกแบบ คนละเรื่องกันเลยจริงๆ อย่าเชื่อคนอื่นกันให้มากครับ
ว่า pic ดีที่สุด ไม่ใช้ pepsi นะครับจะได้ดีที่สุด ควรจะเชื่อคนที่ทำงานจริงๆครับ ดูที่ผลงานที่เขาทำเองนะครับ ไม่ใช้ดูงานที่เขา จ้างคนอื่นทำ แล้วจำเอามาสอน
ดู ccs สิครับหน้าตาไม่ได้เรื่องเลย การ interface ก็ไม่ดีครับ แถมรวนเป็นพัลวัน

ผมคงไม่ต้องพูดอะไรมากอีกแล้วครับ ตัว AVR นั้นมีการนำเอาไปใช้ในบอร์ด อุตสาหกรรมมากมายวันหลังผมจะถ่ายรูปมาให้ดู
เพราะมีระบบกันสัญญาณรบกวนที่ดีมาก แม้กระทั้ง atd ในตัวยังเลือกได้ว่า low noise ได้