标题:C语言能干啥?
只看楼主
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
结帖率:88.89%
已结贴  问题点数:90 回复次数:18 
C语言能干啥?
这个题目有点大,写这篇感想的原因是常常看到论坛里面有人对C语言能干啥产生疑惑,对自己能在C语言上走多远感觉困惑。所以我想就我这些年的开发经验,就C语言能干啥说点自己的想法。
    C语言与其它语言一样,都是工具,只有结合实际的问题才能产生魅力,而C语言自身的特点决定了它可以偏向底层,出色地完成实时数据处理与控制的任务。我从2002年开始接触控制系统课程,同时接触了单片机,那个时候还是用汇编在51上写代码。当时单片机上的代码纯粹是为了演示的,比如IO口点灯,AD和DA转换以及数码管显示等,而控制理论上就是一堆传递函数分析,bode图,根轨迹图等,感觉两者完全不相关。后来到了2005年,我开始用单片机开发直流电器的控制器,这个时候用上了C语言,并且实现了根据不同的PWM占空比来获得不同的电机转速,这个时候,才让我感觉C语言原来可以和控制系统开发结合在一起。虽然还是开环控制,但是总算把两者联系到了一起。
    再往后,我参与了计算机数据采集与控制的项目,就是在计算机PCI插槽上扩展一块IO板卡来实现对外设控制,当然现在PC机上很少见到PCI插槽了,但是工控机上还是有不少的PCI和ISA。PC机上都被USB占领了,并且随着USB技术本身的发展,数据吞吐量不断加大,也完全可以取代原来的PCI板卡。这个时候,我发现原来在计算机上增加IO板卡后,然后用VC写个界面,就可以做个闭环控制系统了,基本要素就是采集被控对象的位移信号,跟设定位置作差,然后推动执行机构运动。这时,感觉c语言体现在控制系统开发的各个方面了。   
    可以说,用c开发一整套控制系统,需要个人长期的能力积累,除了语言本身外,还要掌握底层硬件、控制理论等,可能基于此,一些公司将c写的控制系统软件封装,推出了控制系统快速开发的软件,比如MATLAB/xpc,Labview等,这些图形化编程可以简单拖几个框图,不用写任何c代码就完成了一个闭环控制系统的快速开发,真的比较有吸引力。但这些环境的成本都不低,并不适合任何控制系统的开发,而且实际的控制系统往往是复杂的,复杂体现在对各种突发状况的处理,同时代码本身应该有很强的扩展性,用别人封装好的模块,难以达到很好的扩展效果。并且由于是定制好的图形,里面的算法与数据细节很多是隐藏的,不利于开发者提高自身能力。
    庆幸的是,在现在的工作岗位上,整个控制算法完全是用c和汇编搭建起来的,这时,发现控制理论完全用c在实际的控制系统中体现,也终于理解了控制理论上的各种Z变换怎么变成差分方程,然后得到离散信号序列之间的关系,从而进一步变成代码的过程。
    我建了一个群,如果论坛有人对c开发控制系统有疑问,或有技术上的问题想找人探讨,欢迎在群里发言,群号是299042155,如果我知道的,会不吝和大家分享,共同进步。
搜索更多相关主题的帖子: C语言 单片机 控制系统 数码管 开发 
2014-06-14 19:28
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
得分:12 
楼主大牛,求指导。。。。
2014-06-14 19:31
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:12 
谢谢分享
2014-06-14 19:48
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:0 
希望有更多的人对控制系统中的c语言感兴趣,提升c语言水平

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2014-06-16 07:36
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:12 
这种分享很好

总有那身价贱的人给作业贴回复完整的代码
2014-06-16 08:03
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
得分:12 
楼主做C语言有多少年了

我不是砖家,要努力成为砖家。
2014-06-16 08:41
chrisgardner
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:73
专家分:114
注 册:2013-9-25
得分:12 
楼主好像对工控比较了解,我也做过自动化控制,但是都是小项目,程序写在PLC里,现在想学学C语言,但不知道除了单片机,C怎么和实际控制结合
2014-06-16 09:19
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
得分:12 
努力学习

--整天敲那些破代码能找着媳妇儿吗。。。---
2014-06-16 10:15
筱鱼
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2014-5-22
得分:12 
楼主很厉害的赶脚!!!!!
2014-06-16 10:36
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:0 
回复 6 楼 砖家的谎言
学生的时候开始做,大概是2005年。不过,2011年参加工作后才发现,之前写的代码可以忽略的。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2014-06-16 18:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-432930-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.326683 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved