搜索
bottom↓
回复: 33

一直用汇编,近来用C写了几个软件 。

[复制链接]

出0入34汤圆

发表于 2020-6-8 10:59:02 | 显示全部楼层 |阅读模式
一直用PIC的汇编,近期有些改用STM8,STM32,于是用C了,半桶水的C,语法还要不时看下书,什么结双构体,共同体,指针也半懂不懂的,也写了几个软件。
编程的思想是在延续汇编的思想,汇编时用标志位,全局变量,控制程序走向,现在C也一样用,但网上看技巧,都是有提尽量不用全局变量,用了就是个坑,有点不时白,很多变量都是多函数用到的,不用全局变量怎么做?
比如,开关机标志,只要开机就存在,0是关机,1是开,用全局变量不是最方便吗?

出0入0汤圆

发表于 2020-6-8 11:16:37 | 显示全部楼层
自己好用就行,大项目讲究升级和维护性,小项目就讲究实用。

出0入0汤圆

发表于 2020-6-8 11:17:43 | 显示全部楼层
小项目可读性要好,毕竟已经自己要维护的 适合自己就好

出0入0汤圆

发表于 2020-6-8 11:27:22 | 显示全部楼层
全局变量主要是影响移植而已吧
如果你不考虑模块化设计,不考虑移植,自己用着方便就好了

出0入0汤圆

发表于 2020-6-8 11:46:18 | 显示全部楼层
哈哈,我也是从汇编走过来的,刚开始也是不明白怎么不用全局变量,你说的开关变量,把开关放在函数里搞个输入参数,这样就是他们说的不用全局变量,这点你明白了就真的理解了所谓的指针。

出0入0汤圆

发表于 2020-6-8 12:03:03 | 显示全部楼层
你问的很多函数调用全局变量问题,你可以函数调用函数呀,怎样不就解决了不用全局变量了(全局变量放在函数里,看我上一条回复),只是思想变通一下而已。

出0入34汤圆

 楼主| 发表于 2020-6-8 12:03:52 | 显示全部楼层
lw32 发表于 2020-6-8 11:27
全局变量主要是影响移植而已吧
如果你不考虑模块化设计,不考虑移植,自己用着方便就好了 ...

哦,原来是移植的原因,这就容易理解不用全局变量的原因了

出0入90汤圆

发表于 2020-6-8 12:07:18 | 显示全部楼层
网上说的,很多都是语焉不详,而且有些人自己水平差,于是就提出各种告诫。
你作为新手,就要多写,多思考。这就跟小马过河一样。

出0入0汤圆

发表于 2020-6-8 12:13:56 | 显示全部楼层
honami520 发表于 2020-6-8 12:07
网上说的,很多都是语焉不详,而且有些人自己水平差,于是就提出各种告诫。
你作为新手,就要多写,多思考 ...

对,用多了就自然明白书上说的术语,比如刚开始写程序,写的少用一页可以很好维护,写个几万行就不方便看了,这时就想把它分开几页来写,这就是所谓的模块化编写程序了。

出0入0汤圆

发表于 2020-6-8 12:53:27 | 显示全部楼层
有一本书,写给大家看的C语言书,讲得比较容易看懂。
不巧现在这台电脑没有这本书的电子版。

出250入8汤圆

发表于 2020-6-8 16:35:57 | 显示全部楼层
尽量少用全局变量,就是为了减小程序模块之间的耦合关联,否则你移植一个模块,还有多个变量去查找,太麻烦。


全局变量也不可避免,论坛傻孩子大神好像发过专门的帖子,高人!  我的经验是要用的话,就放在结构体里,起码不用到处声明,省事啊。结构体就是分类了,便于理解。

出0入54汤圆

发表于 2020-6-8 16:39:01 | 显示全部楼层
像你说的开关机状态变量的问题,用电源模块管理这个变量,提供一个接口返回这个变量的值,其他模块要访问的话全部通过这个接口来访问。

出0入14汤圆

发表于 2020-6-8 17:05:11 | 显示全部楼层
多多写代码,还有看别人代码

出0入71汤圆

发表于 2020-6-8 17:29:23 | 显示全部楼层
用了C就再也回不了汇编了,除非客户威逼色诱

出0入34汤圆

 楼主| 发表于 2020-6-8 18:06:03 | 显示全部楼层
dellric 发表于 2020-6-8 17:29
用了C就再也回不了汇编了,除非客户威逼色诱

那得看单片机类型,该用还是要用的

出0入17汤圆

发表于 2020-6-8 18:16:33 | 显示全部楼层
威逼倒是见过,色诱还真有点期待

出0入300汤圆

发表于 2020-6-8 19:41:59 | 显示全部楼层
看网上干啥,他们那些人动不动就想移植,直至今天我基本没移植过什么,用什么东西就老老实实写一个就完了,一层一层定义的是高手,你看一个东西都看不明白要一层一层的找到底层,这就是他们那些写代码的手法,随便看到底层就和见了鬼一样,这些所谓的高手,一旦碰到了严格时序立马缴枪投降,模拟的也尽量的不碰,至于adc准不准那根本不管,就算不准也是芯片不准和他们没关系。以至于现在外面卖的stm32开发板没有一个带基准的,不带基准绝对不是用不起,而是带了基准再测不准不好面对罢了,总之不能较真,只要一较真就纯属无理取闹,真服了这帮人了

出0入0汤圆

发表于 2020-6-8 20:38:24 | 显示全部楼层
膜拜编汇编的人,最底层、最直接的操作控制!

出0入0汤圆

发表于 2020-6-8 20:45:38 | 显示全部楼层
推荐看看《C语言程序设计:现代方法(第2版)》

出20入186汤圆

发表于 2020-6-9 08:33:51 | 显示全部楼层
我入门也是一直用汇编,后来一直用C,然后汇编就忘记了,

出0入0汤圆

发表于 2020-6-9 09:02:16 来自手机 | 显示全部楼层
用了C就再也回不了汇编了,除非客户威逼色诱

出0入0汤圆

发表于 2020-6-10 21:22:04 来自手机 | 显示全部楼层
多看多写多练

出0入131汤圆

发表于 2020-6-10 21:47:17 | 显示全部楼层
当年学习51的时候就是用汇编,现在stm32系列 不可能再去学习一遍汇编,威逼色诱都不行

出4375入62汤圆

发表于 2020-6-10 22:45:56 | 显示全部楼层
建议找个想学汇编的,交换一下技能

出0入96汤圆

发表于 2020-6-11 08:32:05 | 显示全部楼层
实现功能是最重要的,既然编译器允许你这样做,就有道理,自己读着方便,修改方便就行了,如果和别人合作另说!

出0入34汤圆

 楼主| 发表于 2020-6-11 08:45:52 | 显示全部楼层
asj1989 发表于 2020-6-10 21:47
当年学习51的时候就是用汇编,现在stm32系列 不可能再去学习一遍汇编,威逼色诱都不行  ...

stm32的话,连PDF也没办法细看,太复杂了

出0入34汤圆

 楼主| 发表于 2020-6-11 08:47:19 | 显示全部楼层
gallle 发表于 2020-6-11 08:32
实现功能是最重要的,既然编译器允许你这样做,就有道理,自己读着方便,修改方便就行了,如果和别人合作另 ...

那是当然,实现了,谁管你用了什么

出0入0汤圆

发表于 2020-6-11 14:13:12 | 显示全部楼层
汇编大佬,我这边有个工作室,经常有人要用汇编做一些简单设计,是否有时间做个兼职?单片机主要是89C51

出0入0汤圆

发表于 2020-6-11 14:13:43 | 显示全部楼层
ibmx311 发表于 2020-6-8 19:41
看网上干啥,他们那些人动不动就想移植,直至今天我基本没移植过什么,用什么东西就老老实实写一个就完了, ...

32可以用内部1.2v基准

出0入34汤圆

 楼主| 发表于 2020-6-11 14:23:48 | 显示全部楼层
xld826 发表于 2020-6-11 14:13
汇编大佬,我这边有个工作室,经常有人要用汇编做一些简单设计,是否有时间做个兼职?单片机主要是89C51 ...

89C51停产了吧,除了维修,没人用了吧,让他们改了吧

出0入0汤圆

发表于 2020-6-11 14:43:50 | 显示全部楼层
epwwm 发表于 2020-6-11 14:23
89C51停产了吧,除了维修,没人用了吧,让他们改了吧

仿真。。。

出0入0汤圆

发表于 2020-6-11 17:07:44 | 显示全部楼层
能写好汇编程序,写C 程序也不会太差的,不过还是建议看下软件的框架方面的书,如操作系统方面的,多线程等等什么的吧。。。

出0入4汤圆

发表于 2020-6-13 09:21:58 来自手机 | 显示全部楼层
pic,avr汇编指令都是按c优化过的,从汇编转过来应该不难,全局变量在头文件里声明一下就可以了,直接调用头文件,很多做pic或者台湾芯片的都是1-2k的ROM,基本上都是使用状态查询来完成循环的,程序往往是动一发牵全身,所以外人觉得全局变量容易出错,其实全局变量是状态轮询机制的核心

出0入0汤圆

发表于 2020-6-13 09:45:48 | 显示全部楼层
xld826 发表于 2020-6-11 14:13
汇编大佬,我这边有个工作室,经常有人要用汇编做一些简单设计,是否有时间做个兼职?单片机主要是89C51 ...

学生毕业设计?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 22:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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