3.2 两个中断函数的流程图
1.流程图
在单片机程序中,定义了两个中断函数:ADC0_ISR ( )和UART0_ISR ( )。ADC0_ISR ( ) 的流程图见图3.3,UART0_ISR ( ) 的流程图见图3.4和图3.5。
2.说明
在图3.3中,判断条件"gPermitSend=1"的必要性分析见下:
(1)在gRecord=0时,程序不会执行到其所在的"else if ( sample==33 )"模块。那么,单在gRecord=0时,是可以去掉"if ( gPermitSend==1 )"判断语句的。
(2)在gRecord=1时,程序也不会执行到"else if ( sample==33 )"模块。那么,单在gRecord=1时,也是可以去掉"if ( gPermitSend==1 )"判断语句的。
(3)在gRecord=11时,程序可能会执行到"else if ( sample==33 )"模块,且存在着gPermitSend=0、gPermitSend=1两种可能。
在gRecord=11时,gPermitSend具体值的含义如下。当gPermitSend=1时,有两种可能的情形:MCU尚未向PC发送一个数据包Ⅱ,允许MCU发送***个数据包Ⅱ;MCU向PC发送的一个数据包Ⅱ,PC已经正确接收它,并且数据处理完毕,对此,PC向MCU回应0x06&