linux两个子进程 流程图,3.2 两个中断函数的流程图

本文详细介绍了Linux系统中两个中断函数——ADC0_ISR()和UART0_ISR()的流程图及逻辑分析。在ADC0_ISR()流程图中,重点讨论了gPermitSend变量在不同状态下的意义和判断条件的重要性。而在UART0_ISR()流程图中,阐述了数据包发送、错误处理和重传机制。通过对gPermitSend的置位和复位时机的分析,揭示了在特定情况下防止数据包发送冲突的必要性。
摘要由CSDN通过智能技术生成

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&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值