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

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--)......)哪些因素会影响一段/一条语句执行的时间?
希望大家多多提出意见和自己的看法,大家一起讨论。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
Acuity
1楼-- · 2019-08-14 08:36
这个时候就需要上一个操作系统了,实时系统。
Acuity
2楼-- · 2019-08-14 12:34
裸机是单一任务,顺序执行,纯延时更是浪费CPU资源,上个系统,开几个线程就顺畅多了。
allaqppq
3楼-- · 2019-08-14 17:22
Acuity 发表于 2017-8-16 23:13
裸机是单一任务,顺序执行,纯延时更是浪费CPU资源,上个系统,开几个线程就顺畅多了。

可以移植UCOSII实现伪多线程吗, 另外多线程为什么就能更顺畅一些呢?
allaqppq
4楼-- · 2019-08-14 21:31
Acuity 发表于 2017-8-16 23:12
这个时候就需要上一个操作系统了,实时系统。

原来如此!
allaqppq
5楼-- · 2019-08-15 02:24
 精彩回答 2  元偷偷看……
allaqppq
6楼-- · 2019-08-15 03:46
顶              

一周热门 更多>