美文网首页我爱编程
2018-07-05 C语言的注意项 中断函数一定要短 MCU速

2018-07-05 C语言的注意项 中断函数一定要短 MCU速

作者: 无敌啊左手 | 来源:发表于2018-07-05 09:37 被阅读0次

C语言编程要注意:

  1. 若函数的返回值是一个变量,那么一定要确定这个变量被赋了正确的值
  2. 当使用无符号减法的时候,要确定减法的后值比前值小,防止出现负数的情况

为什么中断函数要尽可能的短?

为的是不影响其他中断的到来,也不影响当前中断的再次进入。比如STM32的PVD函数就要短,因为有时候电压不稳,掉电很快就又上电了,这时候又会触发一次PVD中断。如果前一个PVD中断很长的话,这一个PVD中断就会检测不到。

想解决方法的时候,不能想到一条就开始实施,应该多想出几种方法,做对比,在工作量与未来的效率之间做权衡。若只是闷头按照想到的第一个方法去做,那么很可能最后发现这并不是一个好方法,反而浪费了更多的时间。

对待MCU的工作能力跟不上,我们其实可以有多种方法去优化:

  1. 简化算法,提高效率。这个是最直接的解决方法,但是也是最难办到的。
  2. 适当的舍去一些数据,使得工作量与MCU的频率相匹配。

比如现在的项目是使用MCU的中断去读取一个总线数据,并用这些数据做计算。但是上游产品的速度提高了,使得总线上出现数据的频率大大增高,造成原来程序MCU的中断速度跟不上了。当时想到的方法就是第1个方法,尝试将运算从中断函数中提取出来,放在后台程序中进行。进行到最后发现坑很多,流程全得改变。然后才想到用方法2,将程序改为“确保读出一帧完整的数据”,没有读出完整数据的数据帧就舍去。这样也能解决问题。

相关文章

  • 2018-07-05 C语言的注意项 中断函数一定要短 MCU速

    C语言编程要注意: 若函数的返回值是一个变量,那么一定要确定这个变量被赋了正确的值 当使用无符号减法的时候,要确定...

  • C语言 main()函数

    C语言 main()函数 C语言main函数的完全格式是 argc: 是执行程序时命令行参数个数,需要注意,程序本...

  • MT2503D自定义AT命令

    添加AT命令及对应处理函数 在mcu\custom\common\ps\customer_at_command.c...

  • C语言之函数与预编译= =

    函数定义 C语言程序框架C语言程序的框架有两种: 注意:1.一个源程序文件可由一个或多个函数组成之函数2.一个C语...

  • iOS开发 -- C语言基础3(函数)

    iOS开发 -- C语言基础3(函数) 什么是函数 一、函数的分类 C语言中的函数就是面向对象中的"方法",C语言...

  • Swift 闭包

    闭包 它类似于 C、Objective-C 语言中的 block 或其他一些语言中的匿名函数。 闭包格式 注意: ...

  • 是否还需要在源文件中添加“extern C”?

    c++调用c语言的函数时我们一般在c语言函数声明处用extern "C"包c函数。例如: extern "C"的主...

  • IO 函数

    C 语言标准库函数 函数声明说明注意安全性int getc(FILE *stream);getc 与 fgetc ...

  • gcc

    C语言 c语言是面向函数的语言,所以c语言中全部都是函数 看看单文件中对函数的生命和调用。 要先对函数进行声明再进...

  • 2018-08-29日常C笔记

    C语言初学笔记 C语言程序是由函数组成的C语言程序启动时,系统就会自动调用名字叫main的函数C语言规定了函数定义...

网友评论

    本文标题:2018-07-05 C语言的注意项 中断函数一定要短 MCU速

    本文链接:https://www.haomeiwen.com/subject/cvpuuftx.html