首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    各路大牛的C语言编程建议和技巧,看完感触颇深

    我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以来这些基于许多经验的观点一直积累在我的头脑中。因此希望这些观点能帮助你们,了解如何规划一个程序的细节。(我还没有看到过一篇讲关于如何规划整个事情的好文章,不过这部分可以是课程的一部分)要是能发现它们的特质,那很好;要是不认同的话,那也很好。但如果能启发你们思考为什么不认同,那样就更好了。在任何情况下,都不应该照搬我所说的方式进行编程;要用你认为最好的编程方式来尝试完成程序。请一以贯之而且毫不留情的这么做。

    02

    你所找的算法库,都在这里

    在工业控制中,经常要用到一些算法,而对实时性要求苛刻的系统,还需要用汇编语言来实现这些算法,例如在电机控制中,经常使用的坐标变换,功率变换等,而对这些算法如果不熟悉,那么很难完成控制任务,这些算法对软件的实现也要有技巧,而恩智浦为你扫清了这些障碍,在其实时控制嵌入式软件库中(RTCESL)提供了从基础数学运算,到高级数学变换,以及高级观测器,这些都可以方便的使用在复杂的实时控制应用中,包括电机控制,可以帮助工程师加快开发进度,且方便使用。这些库都是经过高度优化,使用汇编语言实现,但是提供C语言接口,目前支持的片子有kinetis的M0+, M4,M7以及恩智浦的DSC系列。

    02

    这些电机控制算法有人替你做好了

    曾经在公众号里提到很多电机控制的文章,而电机控制跟我们的工农业密切相关,可以说如果没有电机控制,我们的生活,生产将无法继续,而电机的种类也有很多,像交流异步(ACIM),直流有刷(BDC),直流无刷(BLDC),永磁同步(PMSM),不同的分类还有很多,像步进电机,私服电机,控制电机,等等,而电机的控制需要一些特殊的算法,虽然这些都是很早很经典的算法,但因其复杂,对数学有一定要求,还是有很多工程师搞不明白,更别说用MCU或者DSP去实现这些算法了,而现在你在也不用担心了,很多的厂商都提供基本的电机控制库,这些库有的是用汇编写的,有的是用C语言写的,封装成库,提供给工程师使用,像恩智浦就提供了电机控制的通用库和高级库,以及一些数学公式库,和滤波算法库,虽然厂家提供了这些库,但小猿还是奉劝如果做电机控制的工程师,自己一定要搞懂这些基础的公式算法。今天我们来简单介绍恩智浦的通用电机控制库,供大家参考。目前最新的是4.5的版本,在官网下载下面的库安装文件。直接下一步下一步安装。

    02

    单片机-控制-直流电机-基于L9110S-、L298N、TB6612FNG驱动[通俗易懂]

    L298N有两个供电,一个是逻辑控制部分的5伏供电,一个是电机的供电。 实物图中标注的12伏是给电机供电的,不接的话电机不转。 板上有一个5伏稳压管,如果板上5伏使能有效的话,L298N的逻辑部分供电就从这个稳压管获得,这样就不用外接5伏,此时还可以将得到的5v稳压跟别的模块供电。如果外接5伏的话,板上5伏使能就要断开无效了。 稳压管的输入和输出有个压差,如果给电机的供电太低的话(比方说只有5v),通过压差后可能会降低太多,那么逻辑控制部分所要求的5v电压可能就达不到了,此时需要将板上5伏使能断开,然后外接5v的电源来给逻辑控制部分供电。

    02

    资料分享|基于SHT11的简易温湿度检测仿真

    51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。

    03

    uCOSII操作系统移植笔记

    笔记一: 今天粗略的看了一下周立功关于uc/osII在lpc2104上的移植方面的说明,这之中印象最深的应该是irq中断和软中断方面的处理,由于arm芯片的特殊性(拥有7种处理器模式),即每种处理器模式都有自己的堆栈,这样在处理堆栈的时候就会相应的麻烦一些。 在 响应异常时,该移植计划在初始代码里面比在没有操作系统的初始代码多了irq的处理,移植里面的irq处理多了由汇编语言编写的对任务环境的保存,没操作 系统的中的任务环境的保存都是由在产生irq中断是用c语言声明的__irq关键字来完成了,移植中irq中断不能采用__irq关键字,因为c语言不能 保证堆栈结构,而uc/osII必须要保证堆栈结构。除此之外,相对于没操作系统的初始代码,基本上是没有什么改变。 在uc/osII的任务切换 中,采用了arm里面的软中断指令swi来执行,对于非中断性的任务切换(如挂起和等待信号量的时候)uc/osII是采用了宏os_task_sw() 来执行的,然后联系到osctxsw()函数来完成任务切换,而遇到中断情况时在返回是需要任务切换是则采用了osintctxsw()来执行的,在周立 功的移植当中,他把osctxsw()与osintctxsw()合二为一了,统一采用osintctxsw()来实现。之所以这样搞的原因是任务进行切 换的时候,都必须进入软中断的状态,而对于软中断的异常响应代码已经将任务的环境变量进行了保存,从而也不需要像osctxsw()里面规定的那样对将环 境变量进行保存。 这是我看今天看了移植说明后所理解的东西,当然还得细致的对代码进行分析,特别是osintctxsw()代码的分析,虽然移植的代码大体是遵从了uc/osII的编码规范,但对于arm的多种处理器模式移植代码有特别的改变,以实现cpu时间和ram的利用。

    04

    智能避障小车_基于单片机的智能玩具车系统设计

    近些年随着国民生活水平的提升,以小车为载体的轮式机器人进入了我们的生活,尤其是在一些布线复杂困难的安全生活区和需要监控的施工作业场合都必须依赖轮式机器人的视频监控技术。因此,基于嵌入式技术的无线通信视频监控轮式机器人应运而生。由于它们与人类工作相比具有成本低廉、安全稳定的优点,目前已经在许多危险作业以及工业场合得到了广泛应用而且轮式机器人不需要像人那样采取过多的保护措施,因此轮式机器人更适合在危险困难的工作环境中工作。然而轮式机器人在行驶中所能碰到的障碍很多,例如前部凸出物的碰触,后部凸出物的拖托,中部凸出物的顶举,特别还有垂直障碍和壕沟等,所以必须对轮式机器人的越障问题进行研究来解决类似问题。

    03
    领券