汇编interrupt怎么写

以stm8s105k4举例,

目标:按钮C2按下,产生中断

实现方法:

(1)配置portC 为 floating with interrupt,不用pull up的原因:有external pull up resistor 存在,不需要activate internal pull up resistor。

MOV PC_DDR, #$00
MOV PC_CR1, #$00
MOV PC_CR2, #$FF

(2) Interrupt Sensitivity:有需要的话可以设置

MOV EXTI_CR1, #$30  ; port_C falling edge and rising edge

(3) RIM 

Reset interrupt mask, 通常写在infinite loop前面,将中断掩码恢复到默认状态,即不屏蔽任何中断,使得处理器可以响应所有的中断请求。

(4)写 ISR (interrupt service routine) ,写在infinite loop结束的后面

    interrupt isr_portC
isr_portC
    .....  ;要执行的指令
    iret

 (5)修改interrupt向量表

查表可知 portC 的 irq 是5,所以改segment 'vectit',从这样

	dc.l {$82000000+NonHandledInterrupt}	; irq5

变成这样 

	dc.l {$82000000+isr_portC}	; irq5

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值