gpt4 book ai didi

embedded - 为什么 INT0 的向量数是 1 而不是 datasheet 中的 2?

转载 作者:行者123 更新时间:2023-12-01 03:10:49 40 4
gpt4 key购买 nike

我正在使用 ATmega32 进行中断当我尝试做外部中断 0 的驱动程序时,遇到了一个问题

ATmega32 中的中断向量表

ISR(vector)中的中断向量代码

在 iom32.h 代码中,我们看到 ((INT0_vect "_VECTOR(1) ")) 它是数字 1 但在数据表中我们看到数字是 2,为什么?

最佳答案

数据表从重置向量开始编号。但是不需要为复位向量显式定义(如 RESET_vect),因为它不会与 ISR() 结合使用。所以在 header/AVRGCC 实现中它被省略了。

如果你编译这个

ISR(INT0_vect) {  }

并查看中断向量表

00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c ; 0x8c <__ctors_end>
4: 0c 94 5f 00 jmp 0xbe ; 0xbe <__vector_1>

可以看到__vector_1放在字节地址4处,对应数据表中的字地址2。

关于embedded - 为什么 INT0 的向量数是 1 而不是 datasheet 中的 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52484365/

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