恭喜,你发布的帖子
发布于 2020-03-27 11:54:09
9楼
有个疑问,我发的程序实例中,当INT0接收完成后调用INT1,在int1中执行MOVB 10,SMB34这个指令,是每次int1被调用后,才这个定时才开始计时吧,不然也不会是每次按定时时间延迟10ms执行XMT发送,不知道这样理解对不。
如果不是按照定时时间10ms发送,这个指令MOVB 10,SMB34,放在主程序初始化一次就行吧?
@手机18043155123:
首先先解释一下中断,当定义一个或者多个中断后,中断的执行是一个循环周期的,把它理解为一个沿脉冲后面的程序段是类似的道理。定时中断:每进行到定义的时间就循环执行一次。
你在int_0是接收中断所连接的子程序,并且在这个中断子程序中定义定时中断_0(SMB34) = 10 mS,这个10mS时间你是用来执行发送XMT指令的,那么,当执行中断INT_0后的10mS后,系统每10mS被执行一次发送。这样的逻辑一定是有问题了,这是逻辑的错误,也是我看到在4楼想要单独说明的问题。
你另一个问题是在INT_0子程序中定义定时中断,中断的定义仅仅只需要一次,如特殊标志位SM0.1使能就可以,当然,你在INT_0中使能加中断次数也是可以的,目的只是定义中断初始化仅仅只需要一次。
请填写推广理由:
分享
只看
楼主