在单片机c语言编程中要注意的一些问题:
1、尽量使用短的数据类型。如uchar、bit、uint,有时需要对uchar数据类型进行按位访问,可将其定义在bdam区间。慎重使用float数据类型,有时它可以转化成int数据类型来使用。
2、熟练指针的使用。例如uint是由双字节拼接而成,有时用来存放16位地址。获取其高八位和第八位地址的方法为:只要用uchar*p;p=&int0,则*p表示其高八位,*(++p)表示其第八位,非常方便。
3、使用自加、自减的方法为:a++;a--,它会调用INC、DEC指令,效率远比a=a+1;a=a-1高。
4、循环:使用uchar a;for(a=1;a≤8;a++)时,条件a≤8编辑后代码比较繁琐,可用for(a=8;a=a-1)来代替,充分利用单片机的为零跳转指令。同样,在do{...}while()中也适用。
5、当多个条件判断时,if(A&&B&&C&&D),只要第一个条件A不符合,程序是不管后面的条件的,所以可把最可能出错的条件排在前面处理。
6、子程序的参量。调用子程序时若带参量,程序会开辟存储空间(如Rn)来存放参量,这个空间是可以充分利用的。如延时子程序void delay(uehar time){while(time};J,可以延时相当短的时间。
7、求余运算“%”操作是调用子程序来完成的,效率低。如果是求2的n次方的余数,可使用位操作来代替。如:a=a%8可改用8=a&7,效率明显提高。同样2×N的乘除运算可用来移位来实现。如:a=a*2;b=h/2可改为a=a《1;b=b》1.
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
| OK1126B-S开发板下多时段语音提示型电子时钟被打赏¥27元 | |
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
我要赚赏金
