在单片机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.
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |