学海无涯机电社区

 找回密码
 立即注册
搜索
查看: 448|回复: 2
打印 上一主题 下一主题

谈谈写程序遇到的思维阻力

[复制链接]
威望
90
金钱
35
贡献
3676

26

主题

90

帖子

3676

积分

论坛元老

Rank: 8Rank: 8

积分
3676
跳转到指定楼层
楼主
发表于 2020-4-20 07:08:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在写的单片机程序也不少了,一些编程思想也学得不少了。一个项目也能很快开发好,但总觉得写程序的过程中会遇到一些阻力:
1、模块化编程:会经常遇到一会儿在这个模块中写,一会儿在那个模块中写,频繁切换影响思维的连贯性,写着写着有些厌倦。
2、如果不是模块化编程:也会翻前翻后,也影响思维的连贯性。
3、引用以前写过的程序,尽管很注意程序的可重用性,但也不知道哪些要自己写,哪些要引用以前的程序,写着写着觉得有些乱。
4、写程序过程中,时不时需要定义变量,也会导致翻前翻后。
5、要常看芯片规格书,了解硬件中寄存器的定义,也影响程序思维的连贯性。
6、尽管事前已经充分看规格书,充分规划程序的框架,但难免在开发中频繁改变程序框架,重新定义变量,很难做到一气呵成,感觉写得不怎么顺手。有的甚至画了程序流程图(当然单片机不可能每个程序都画流程图),也写起来要频繁改程序框架。
7、如何抽象:如果起初不考虑一些细节,但写到细节的时候,又发现起初的程序框架需要改。
遇到这些阻力的时候,总不由自主地想站起来看看,喝喝水之类的,觉得开发不是很得心应手。为了增强开发兴趣,开发更多的程序,需要克服这些阻力。不知大家有没有类似的感受,怎么克服的?
威望
75
金钱
30
贡献
3541

26

主题

67

帖子

3541

积分

论坛元老

Rank: 8Rank: 8

积分
3541
沙发
发表于 2020-4-20 07:09:49 | 只看该作者
1、模块化编程:会经常遇到一会儿在这个模块中写,一会儿在那个模块中写,频繁切换影响思维的连贯性,写着写着有些厌倦。
答:每个项目都积累一点代码,随着年龄的增长你会发现,程序越写越少。就像现在arduino一样,积累了很多库,开发个项目,应该跟玩似的。
2、如果不是模块化编程:也会翻前翻后,也影响思维的连贯性。
答:对于小项目的确是这样的。
3、引用以前写过的程序,尽管很注意程序的可重用性,但也不知道哪些要自己写,哪些要引用以前的程序,写着写着觉得有些乱。
答:尝试多写,如果代码量不大或你没混到企业中层,你不会体会到模块化的优点。
4、写程序过程中,时不时需要定义变量,也会导致翻前翻后。
答:可以用头文件定义变量。
5、要常看芯片规格书,了解硬件中寄存器的定义,也影响程序思维的连贯性。
答:用会一个都是一个套路。随着年龄的增长,你成为决策者的时候,你可以用你熟悉的平台,你有选择权。
6、尽管事前已经充分看规格书,充分规划程序的框架,但难免在开发中频繁改变程序框架,重新定义变量,很难做到一气呵成,感觉写得不怎么顺手。有的甚至画了程序流程图(当然单片机不可能每个程序都画流程图),也写起来要频繁改程序框架。
答:代表你在进步。
单片机的c库通常是这样的:
typedef struct {
unsigned a;
unsinged b;
} device_typedef;

void init_device(device_typedef *dev);
void write_device(device_typedef *dev,unsigned value);
这是c语言写库的套路。用指针的。改也是改模块。
至于框架
(1)类操作系统多个while循环一起跑流。非常适合有液晶,有键盘,有通讯,把单片机当作计算机系统的产品。
(2)状态机裸奔流。一些顺控,自动化产品,例如自动豆浆机,自动洗衣机
(3)回调函数流。消息或事件机制。特别适合通讯类。
这三个是单片机中比较热门的三大框架。
7、如何抽象:如果起初不考虑一些细节,但写到细节的时候,又发现起初的程序框架需要改。
答:因为进步而重新代码,在软件行业里很多。但是你的产品成熟了,就别折腾了。

综上所述,如果你是出社会了,就要抛弃应试教育中看标准答案的习惯。
进入工作领域,没有标准答案。只有合适不合适。包括研发周期,产品定位,成本,生产可行性等因素去取舍。这是一个开放性问题。
回复

使用道具 举报

威望
114
金钱
75
贡献
3841

44

主题

106

帖子

3841

积分

论坛元老

Rank: 8Rank: 8

积分
3841
板凳
发表于 2020-4-20 07:10:45 | 只看该作者
我觉的 上到系统级的话 会更方便些  复杂的就上小型系统 RTOS之类的   简单的小程序 就用分时复用 挺好
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋| 学海无涯机电社区  

GMT+8, 2024-4-20 12:20 , Processed in 0.099385 second(s), 29 queries .

Powered by Discuz!

© Comsenz Inc.

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