找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 996|回复: 4
打印 上一主题 下一主题
收起左侧

单片机程序的优化问题

[复制链接]
跳转到指定楼层
楼主
ID:601478 发表于 2019-11-30 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在写一个小的菜单程序,需要做到设置按键用于循环10个子程序,加减按键用于改变对应子程序的数值,现在是想能不能把这10个子程序压缩成一个大的子函数,因为10个子程序的大体框架都一样,只是其中的数值设定的范围不一样,10个子程序的数值都是进入子程序时从EEPROM读取出来,按键设定好了后退出子程序时再写进EEPROM这样;
想了两天都没什么好的思路,就是每个子程序中数值范围的差别这里搞不了,有的是0~99,有的是0~65,还有0~1、0~2、0~3、0~24这样...............
差异性大,参差不齐,各位大哥看看有什么思路可以搞一下这样
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2019-12-1 10:07 | 只看该作者
给你一个数码管时钟长短按调整点闪烁+闹钟38译码器+仿真示例程序参考,读懂按键扫描程序后稍微改一下就能满足你的需求。
数码管时钟长短按调整点闪烁+闹钟38译码器+仿真.zip (126.58 KB, 下载次数: 8)

回复

使用道具 举报

板凳
ID:653659 发表于 2019-12-1 18:02 | 只看该作者
将一样的部分写成一个程序。
程序入口,将不一样的部分,也就是你说的数值,作为参数传进去。
程序内部,通过switch或者if...else,判断按键的数值。
程序的出口,按照你需要的进行返回就行了。
回复

使用道具 举报

地板
ID:653650 发表于 2019-12-1 19:06 | 只看该作者
一个提高代码效率的最基本的方式就是减小变量的长度。使用 C 编程时,我们都习惯于对循环控制变量使用 int 类型,这对 8 位的单片机来说是一种极大的浪费,你应该仔细考虑你所声明的变量值可能的范围,然后选择合适的变量类型,很明显,经常使用的变量应该是unsigned char,只占用一个字节。
回复

使用道具 举报

5#
ID:601478 发表于 2019-12-2 08:51 | 只看该作者
wulin 发表于 2019-12-1 10:07
给你一个数码管时钟长短按调整点闪烁+闹钟38译码器+仿真示例程序参考,读懂按键扫描程序后稍微改一下就能满 ...

谢谢大佬!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表