1. 超聲波單I/O口可以用外部中斷方式來寫
2. ADC也可用中斷方式來讀值
中斷方式將不會有Busy waiting的方式,更具彈性不會卡住
ADC采用中断的方式来读取,在中断中读取出ADC值即可(中断不推荐做太多耗时处理),在main函数while中处理ADC的值。
超声波使用Timer中断来翻转IO口发送。
按照楼主的说法,应该是在处理时使用了延时或者等待等处理方式,实际应用中最好将模块分时处理,保证每个模块都有相应的处理时间,如果一直在等待其中一个模块,那另一个模块的功能会收到影响。尽量使用单片机的外设去实现。
超声波可采用输入捕获来完成采样工作,ADC采样也可通过中断来完成。还有一个重要的就是中断里不要搞太多耗时的任务。