请教,我想编一个多次计数中断,如下:计到1000中断,计到1500中断,计到2000中断后一直计数,当外部复位后从0再计到1000中断,计到1500中断,计到2000后一直计数,再复位循环。程序如下,能实现但是复位得电不能时间长,时间一长出现故障SF灯怎么回事?是不是外部复位中断程序不对,如何实现上述
OB1主程序
LD SM0.0
MOVD HC0, VD300
LD SM0.1
CALL HSC_INIT
HSC_INIT子程序
LD SM0.0
MOVB 16#F8, SMB37 //设置控制位:增计数;复位有效逻辑 HIGH(高);4X 速率;已使能;
MOVD +0, SMD38 //装载 CV
MOVD +1000, SMD42 //装载 PV
HDEF 0, 10
ATCH EXTERN_RESET, 28 //中断程序 EXTERN_RESET:HC0 的外部复位
ATCH COUNT_EQ, 12 //中断程序 COUNT_EQ:HC0 的 CV = PV
ENI
HSC 0
EXTERN_RESET外部复位中断程序
LD SM0.0
MOVB 16#E0, SMB37 //设置控制位:写入当前值;写入预置值;
MOVD +0, SMD38 //CV = 0;
MOVD 1000, SMD42 //PV = 1000;
ATCH COUNT_EQ, 12
HSC 0
COUNT_EQ中断程序
LD SM0.0
MOVB 16#E0, SMB37 //设置控制位:写入当前值;写入预置值;
MOVD +0, SMD38 //CV = 0;
MOVD 1500, SMD42 //PV = 1500;
ATCH INT_4, 12
HSC 0
= Q0.5
INT_4中断程序
LD SM0.0
MOVB 16#E0, SMB37 //设置控制位:写入当前值;写入预置值;
MOVD +0, SMD38 //CV = 0;
MOVD 2000, SMD42 //PV = 2000;
ATCH INT_3, 12
HSC 0
INT_3中断
LD SM0.0
MOVB 16#E0, SMB37 //设置控制位:写入当前值;写入预置值;
MOVD +0, SMD38 //CV = 0;
MOVD 0, SMD42 //PV = 0000;
HSC 0