搜索
bottom↓
回复: 60

十几年工作经验总结的单片机编程思想

  [复制链接]

出0入0汤圆

发表于 2019-12-13 09:56:19 | 显示全部楼层 |阅读模式
本帖最后由 jjj 于 2019-12-13 09:58 编辑

1.死循环
2.状态机
3软件分层
(裸机程序非阻塞!)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-12-13 09:59:09 | 显示全部楼层
楼主账号名很赞

出0入8汤圆

发表于 2019-12-13 09:59:42 | 显示全部楼层
裸机,基本上都是时间片轮询吧。

出45入88汤圆

发表于 2019-12-13 10:23:40 | 显示全部楼层
我现在50K的程序量都是用前后台。

出0入14汤圆

发表于 2019-12-13 10:50:10 | 显示全部楼层
简单点用 定时器+状态机  
复杂点用  OS+任务(同步机制)

出0入0汤圆

发表于 2019-12-13 14:04:54 | 显示全部楼层
你们都玩的好高级我现在还是死循环的玩法

出40入518汤圆

发表于 2019-12-13 14:16:48 | 显示全部楼层
你们都玩的好高级我现在还是找个例程改改就跑

出0入0汤圆

发表于 2019-12-13 14:24:52 | 显示全部楼层
if  else           

出0入4汤圆

发表于 2019-12-13 14:32:04 | 显示全部楼层
再加一个,模块化

出20入62汤圆

发表于 2019-12-13 14:33:26 | 显示全部楼层
一直没研究太懂这些。
我自己弄了个定时器,做周期的任务
又弄了个状态量,负责状态切换的。
交叉着用。

出10入0汤圆

发表于 2019-12-13 15:35:07 | 显示全部楼层

出0入0汤圆

发表于 2019-12-13 15:56:55 | 显示全部楼层
不仅仅是单片机,总结起来所有计算机程序都是大循环套小循环。

出75入8汤圆

发表于 2019-12-13 16:11:18 | 显示全部楼层

if  else+1 除了这个很少用其他的。

出0入14汤圆

发表于 2019-12-13 16:19:10 | 显示全部楼层
if   switch  这个全都是状态机。

出0入0汤圆

发表于 2019-12-13 16:34:56 | 显示全部楼层
if  else 走天下

出0入0汤圆

发表于 2019-12-13 16:38:58 | 显示全部楼层

逼格高一点,if else是采用当前人工智能算法中的决策树理论
if中的比较结果则是人工智能中的,聚类等分类技术

出0入0汤圆

发表于 2019-12-13 16:42:18 | 显示全部楼层
ZHAOBAO511 发表于 2019-12-13 16:11
if  else+1 除了这个很少用其他的。

再+1

出0入0汤圆

发表于 2019-12-13 16:59:44 | 显示全部楼层
玩了几年了,还没有研究的这么深入,楼主有好的教程推荐吗?

出0入0汤圆

 楼主| 发表于 2019-12-13 17:26:58 | 显示全部楼层
本帖最后由 jjj 于 2019-12-14 16:19 编辑

if else switch 这些都是编程技巧。不是编程思想
其它技巧还有
__packed  强制类型转换  指针 回调函数 结构体 共用体  C语言位域(位段) 条件编译  宏定义  static关键字  结构体指针 c库函数 事件驱动  这些统统是技巧, 只要多看多写多悟多以练,就能熟能生巧。  
前提是要在编程思想的指导下做技巧训练。

出0入0汤圆

发表于 2019-12-13 19:19:46 | 显示全部楼层
死循环,时间片轮,中断

出0入0汤圆

发表于 2019-12-13 19:27:27 来自手机 | 显示全部楼层
我准备用lf  else 申请专利

出0入0汤圆

发表于 2019-12-13 20:45:21 | 显示全部楼层
可能做到这三点,基本上可以应付所有的裸机编程了

出0入0汤圆

发表于 2019-12-13 21:46:54 | 显示全部楼层
jjj 发表于 2019-12-13 17:26
if else switch 这些都是编程技巧。不是编程思想
其它技巧还有
__packed  强制类型转换  指针 回调函数 结 ...

总结很好   赞同

出0入0汤圆

发表于 2019-12-13 21:56:43 | 显示全部楼层
定时器状态机

出0入0汤圆

发表于 2019-12-14 09:03:06 来自手机 | 显示全部楼层
目前只用前后台系统。

出0入0汤圆

 楼主| 发表于 2019-12-14 16:21:27 | 显示全部楼层
上面好几位网友说的“前后台”我是不是可以理解为死循环 + 事件驱动

出0入0汤圆

发表于 2019-12-14 18:18:42 | 显示全部楼层
不够干。。。。

出0入0汤圆

发表于 2019-12-14 18:59:36 | 显示全部楼层
楼主实在是高!赶紧申请专利!在国际杂志上发表论文!数十年的心血呀!

出0入0汤圆

发表于 2019-12-14 21:21:43 | 显示全部楼层
jjj 发表于 2019-12-13 17:26
if else switch 这些都是编程技巧。不是编程思想
其它技巧还有
__packed  强制类型转换  指针 回调函数 结 ...


牛比,申请专利,走起。。。






出0入0汤圆

发表于 2019-12-14 21:45:05 来自手机 | 显示全部楼层
一切都是while(1)还有for(;;)

出0入0汤圆

发表于 2019-12-14 21:49:15 | 显示全部楼层
至少加一条,把所有的全局变量放在一个gv struct里面,马上成了面向对象

出0入0汤圆

发表于 2019-12-15 10:00:30 | 显示全部楼层
本帖最后由 xtwhf 于 2019-12-15 10:08 编辑
RAMILE 发表于 2019-12-14 21:49
至少加一条,把所有的全局变量放在一个gv struct里面,马上成了面向对象


太高级了!单片机居然可以找对象! 真没想到结构穿个马甲就成了对象

出0入0汤圆

发表于 2019-12-15 12:24:16 | 显示全部楼层
目前还没看到干货。。。

出0入0汤圆

 楼主| 发表于 2019-12-15 22:05:02 | 显示全部楼层
xtwhf 发表于 2019-12-14 18:59
楼主实在是高!赶紧申请专利!在国际杂志上发表论文!数十年的心血呀! ...

怎么感觉像是讽刺我呀

出0入0汤圆

发表于 2019-12-15 22:31:49 | 显示全部楼层
jjj 发表于 2019-12-15 22:05
怎么感觉像是讽刺我呀

既然享受了部分人的点赞,那也要忍受另部分人的吐槽

出0入0汤圆

发表于 2019-12-15 23:13:46 | 显示全部楼层
定时器+状态机  
死循环。 现在用的几乎都是这两种。  

出0入0汤圆

 楼主| 发表于 2019-12-16 08:12:53 | 显示全部楼层
xtwhf 发表于 2019-12-15 22:31
既然享受了部分人的点赞,那也要忍受另部分人的吐槽

差点把本给忘了

出0入0汤圆

发表于 2019-12-16 08:45:20 | 显示全部楼层

而我就不同了,我是if  elseif   else

出0入0汤圆

 楼主| 发表于 2019-12-28 11:01:00 | 显示全部楼层
jjj 发表于 2019-12-13 17:26
if else switch 这些都是编程技巧。不是编程思想
其它技巧还有
__packed  强制类型转换  指针 回调函数 结 ...

忘了 一个很重要的技巧,“面向对象”, 简单说就是把相关的数据、属性、操作封装在一个结构体中

出0入0汤圆

发表于 2019-12-28 12:14:37 | 显示全部楼层
习惯自己的思维了

出0入0汤圆

发表于 2019-12-28 13:58:33 | 显示全部楼层
单片机也就是这样了,但是玩得熟练要花点时间

出0入0汤圆

发表于 2019-12-28 15:59:07 | 显示全部楼层
用不好操作系统,搞不出好东西,不解释。

出0入0汤圆

发表于 2019-12-30 13:20:50 | 显示全部楼层
楼主有qq等联系方式吗

出45入88汤圆

发表于 2019-12-30 13:33:26 | 显示全部楼层
用习惯了状态机,再切换到操作系统的事件触发,有点不习惯

出0入0汤圆

发表于 2019-12-30 23:08:29 | 显示全部楼层
你这总结的精简又深奥.

出0入0汤圆

发表于 2019-12-31 09:07:32 | 显示全部楼层
时间片轮询挺好用,资源占用少,比较灵活

出0入0汤圆

发表于 2019-12-31 10:03:55 | 显示全部楼层
我认为没有最好的编程方法,只有最适合一个项目的编程方法。裸跑架构,不同的RTOS,我认为有时间都尝试下,跑跑例程,正如武侠小说老套路,主角学尽百家特长,融汇贯通,终成一代宗师

出0入0汤圆

发表于 2019-12-31 10:06:44 | 显示全部楼层
精辟

出0入0汤圆

发表于 2019-12-31 13:11:25 来自手机 | 显示全部楼层
搭车问下有ai写单片机程序的吗

出0入0汤圆

发表于 2019-12-31 13:38:18 | 显示全部楼层
Pjm2008 发表于 2019-12-13 10:50
简单点用 定时器+状态机  
复杂点用  OS+任务(同步机制)

任务同步用事件标志位  传信息用队列?

出0入0汤圆

发表于 2019-12-31 17:06:11 | 显示全部楼层
所有程序都是死循环吧。

出0入0汤圆

发表于 2020-1-1 19:05:43 来自手机 | 显示全部楼层
硬件支持什么 就用什么

出0入10汤圆

发表于 2020-1-1 19:15:25 | 显示全部楼层
能用就行  只有老板点头就点到为止

出0入0汤圆

发表于 2020-1-2 09:42:03 | 显示全部楼层
我的目的是稳定运行  不出问题

然后再谈思想 哈哈

出0入0汤圆

 楼主| 发表于 2020-1-2 10:53:45 | 显示全部楼层
unnormal 发表于 2020-1-2 09:42
我的目的是稳定运行  不出问题

然后再谈思想 哈哈

2者是相辅相成的

出0入0汤圆

发表于 2020-1-2 11:06:31 | 显示全部楼层
jjj 发表于 2020-1-2 10:53
2者是相辅相成的

恩恩

同意同意

出0入0汤圆

发表于 2020-5-12 16:52:43 | 显示全部楼层
liu672992381 发表于 2019-12-13 19:27
我准备用lf  else 申请专利

申请专利,走起

出4375入62汤圆

发表于 2020-5-16 09:26:09 | 显示全部楼层
shiva_shiva 发表于 2019-12-15 12:24
目前还没看到干货。。。

目前还没看到干货。。。   +1

出255入0汤圆

发表于 2020-5-18 22:11:18 | 显示全部楼层
系统无非就是这几种结构,很实用,单片机,控制上位机基本都是这个模式。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-25 19:30

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

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