打印
[技术支持]

芯圣C语言中的中断服务程序怎么对应中断源

[复制链接]
1147|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heagle|  楼主 | 2019-7-21 22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大佬,

我在查看芯圣提供的参考例程中,不同中断源的中断服务程序,均是以下面语句开头:
void Intr(void) __interrupt 0
{
}

不知这个中断服务程序如何与硬件的中断源对应?或者说中断服务程序与中断源挂钩是在哪里操作的?

使用特权

评论回复
沙发
heagle|  楼主 | 2019-7-21 22:47 | 只看该作者
我采用的是HC-IDE工具,使用芯片HC18P121L。参考的是“Holychip MCU配套V1.0.0.0”里的代码。但似乎本论坛里面HC89S003P的中断服务程序写法不同。

使用特权

评论回复
板凳
yzh657531561| | 2019-8-5 13:12 | 只看该作者
HC18系列共用一个中断向量。
中断响应后用if语句查询对应的中断标志位是否被置位。
退出中断前须将中断标志位清零。

使用特权

评论回复
地板
lele4090039| | 2019-8-31 21:51 | 只看该作者
在头文件中查看
/*------------------------------------------------
Interrupt Vectors:
Interrupt Address = (Number * 8) + 3
------------------------------------------------*/
#define INT0_VECTOR         0   /* 0x03 EXTERNal Interrupt 0 */
#define TIMER0_VECTOR       1   /* 0x0B Timer 0 */
#define INT1_VECTOR            2   /* 0x13 EXTERNal Interrupt 1 */
#define TIMER1_VECTOR            3   /* 0x1B Timer 1 */
#define UART1_VECTOR            4   /* 0x23 Serial port 1 */
#define WDT_VECTOR            5   /* 0x2B WDT */
#define LVD_VECTOR            6   /* 0x33 LVD */
#define UART2_VECTOR            7   /* 0x3B Serial port 2 */
#define SPI_VECTOR            8   /* 0x43 SPI */
#define T3_VECTOR            9   /* 0x4B Timer 3 */
#define T4_VECTOR            10  /* 0x53 Timer 4 */
#define PWM_VECTOR            11  /* 0x5B PWM */
#define T5_VECTOR            12  /* 0x63 Timer 5 */
#define ADC_VECTOR            13  /* 0x6B ADC */
#define INT2_7_VECTOR            14  /* 0x73 INT2~INT7 */
#define INT8_15_VECTOR            15  /* 0x7B INT8~INT15 */

使用特权

评论回复
5
598330983| | 2019-9-28 18:13 | 只看该作者
头文件或启动文件配置的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝