บทความ

กำลังแสดงโพสต์จาก 2020

ฟังก์ชันอินเตอร์รัปต์ใน c standard mode กับ MPLAB X IDE และ XC Compiler V2.2 (หรือสูงกว่า)

รูปภาพ
ในหนังสือ PIC16F MPLAB XC8 (PIC16F Programming กับ MPLAB XC8 Compiler) โค้ดส่วนที่เกี่ยวกับการเขียนฟังก์ชันอินเตอร์รัปต์จะประกาศใช้งานแบบนี้ ซึ่งเป็นการสร้างฟังก์ ชันอินเตอร์รัปต์ที่ใช้ c standard C90 static void interrupt isr(void)  {     … } เมื่อเราติดตั้ง MPLAB X และ XC8 Compiler เวอร์ชันใหม่ ค่าเริ่มต้น (default) ของ c standard ได้เปลี่ยนไปเป็น C99 แล้วในปัจุบัน การเขียนชื่อฟังก์ชันอินเตอร์รัปต์จึงเปลี่ยนไปเป็นดังนี้ 
 void __interrupt() isr(void) {     ….
 } *** ถ้าคอมไพล์โค้ดโปรแกรมจากต้นฉบับไม่ผ่านแสดงว่า เราใช้ mode C90 อยู่ วิธีแก้ไขคือ 
 1. เปลี่ยนไปใช้โหมดเดิมคือ C90 2. แก้ไขชื่อฟังก์ชันอินเตอร์รัปต์ใหม่ให้เป็นแบบ C99
 รายละเอียดด้านล่าง // Interrupt function all static void interrupt isr(void)     // c standard mode: C90
 {   if (RBIE && RBIF)    // RB Port change-on   {     PORTA = 0x0f;     __delay_ms(1000);     PORTB = 0;...