ผมกำลังหัดเขียนโปรเเกรมกับไมโครคอลโทลเลอ PIC18 ครับตอนนี้กำลังฝึกใช้ Interrupt
ผมเข้าไปอ่าน code ในเว็บไมโครชิป
อยากให้ผู้เชี่ยวชาญช่วยอธิบบายโค้ดด้านล่างหน่อยครับว่ามันทำงานยังไงบ้าง
/////////////////////////////////////////////////////////////////////
#pragma code HIGH_INTERRUPT_VECTOR = 0x08
void High_ISR_Vector (void)
{
_asm goto YourHighPriorityISRCode _endasm
}
#pragma code LOW_INTERRUPT_VECTOR = 0x18
void Low_ISR_Vector (void)
{
_asm goto YourLowPriorityISRCode _endasm
}
#pragma code
#pragma interrupt YourHighPriorityISRCode
void YourHighPriorityISRCode()
{
USBDeviceTasks();
}
#pragma interruptlow YourLowPriorityISRCode
void YourLowPriorityISRCode()
{
App_ISR_Low(); // located in a different source file
}
// ========= END INTERRUPTS =========
PIC C18
ผมเข้าไปอ่าน code ในเว็บไมโครชิป
อยากให้ผู้เชี่ยวชาญช่วยอธิบบายโค้ดด้านล่างหน่อยครับว่ามันทำงานยังไงบ้าง
/////////////////////////////////////////////////////////////////////
#pragma code HIGH_INTERRUPT_VECTOR = 0x08
void High_ISR_Vector (void)
{
_asm goto YourHighPriorityISRCode _endasm
}
#pragma code LOW_INTERRUPT_VECTOR = 0x18
void Low_ISR_Vector (void)
{
_asm goto YourLowPriorityISRCode _endasm
}
#pragma code
#pragma interrupt YourHighPriorityISRCode
void YourHighPriorityISRCode()
{
USBDeviceTasks();
}
#pragma interruptlow YourLowPriorityISRCode
void YourLowPriorityISRCode()
{
App_ISR_Low(); // located in a different source file
}
// ========= END INTERRUPTS =========