从单片机刷新资源来扩展学习

2019-08-14 08:06发布

首先抛出总的问题:如何掌握单片机片内资源的合理利用与资源分配?
1、曾经做过一个作品,在stm32里,在一个子函数里加入多句printf函数,会大大影响主程序的运行,后来才知道是串口打印的代码太占用时间了,将printf函数注释掉发现程序更流畅了。
2、最近在做一个摄像头拍摄,LCD同步刷新显示,高速舵机执行动作的一个作品,发现如果LCD刷新显示存在,会大大影响舵机执行的频率(舵机会响应卡顿),听别人说这是因为LCD屏幕刷新占用了大量资源,我用LED测试了一下(在有LCD刷新和没有刷新的情况下,主函数里同一位置有LED取反),发现LCD确实会影响主函数的时间资源(LED取反频率不同了)。
那么想问问大神们,怎么才能知道这些需要注意的地方,难道只能通过每次的实践来记录?怎么计算每个程序块占用的时间、存储资源?另外哪些常用的功能函数能放进中断,哪些不能。怎么才能最大限度地减少单片机软件资源的浪费?

或者说,决定了一个函数的执行时间的因素有什么?除了函数内本身的delay延时和变量的计算(从原始的循环嵌套写的delay受到启发for(i=110;i>=0;i--)......)哪些因素会影响一段/一条语句执行的时间?
希望大家多多提出意见和自己的看法,大家一起讨论。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。