gpt4 book ai didi

microcontroller - Microchip C18 上的正常中断延迟和上下文保存时间是多少?

转载 作者:行者123 更新时间:2023-12-04 06:22:13 25 4
gpt4 key购买 nike

我正在使用 Microchip C18 编译器,并且在发生中断时,我在 ISR 代码开始运行之前遇到了相当长的延迟。

作为一个实验,这是我的主要功能:

while(1)
{
LATAbits.LATA4 = 1;
LATAbits.LATA4 = 0;
}

作为中断处理程序,我使用的是从一些示例中复制的代码(我不知道为什么这样做):
#pragma interrupt high_isr
void high_isr(void)
{
LATAbits.LATA4 = 1;
LATAbits.LATA4 = 1;
LATAbits.LATA4 = 0;
LATAbits.LATA4 = 1;
LATAbits.LATA4 = 1;
LATAbits.LATA4 = 0;
}

#pragma code high_vector=0x08
void interrupt_at_high_vector(void)
{
_asm GOTO high_isr _endasm
}

我通过 SPI 接收字节,在接收到一个字节后不久,主循环停止。然后在 ISR 代码开始运行之前有 16.5 µs 的延迟。那是 165 个指令周期!

interrupt timing
enlarge image

我知道有一些与中断相关的上下文保存,而低优先级中断更糟。我已经禁用了 IPEN 并且我只使用了高优先级向量。 165 条指令是上下文保存的正常持续时间吗?

最佳答案

在某些情况下,中断开销和你的一样大!
看看this .

关于microcontroller - Microchip C18 上的正常中断延迟和上下文保存时间是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com