加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

嵌入式C语言编程小知识概括

发布时间:2021-11-23 15:31:59 所属栏目:教程 来源:互联网
导读:1. 流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的条件执

1.   流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。
 
2.   在LPC2200系列中:
 
可以通过过下面的程序延迟10毫秒:
 
for(i=0;i<200;i++)
 
  {
 
       for(j=0;j<200;j++);
 
  }
 
3.   同过下面语句将一个16位的变量放在两个8位的变量中。  
 
 //IP数据报总长度高字节
 
   IpHeadUint8[10]=(IpHead.e_ip.Crc&0xff00)>>8;
 
      //IP数据报总长度低字节
 
      IpHeadUint8[11]=IpHead.e_ip.Crc&0x00ff;
 
4.   在对全部数组元素赋初值时,可以不指定数组长度。
 
eg;inta[]={1,2,3,4,5};
 
但如果当输出第a[5]以上的元素时,系统回输出随机数值,所以使用此方法时,不能使用超过初始值元素以上的元素。
 
5.   由于ADS先天性的对printf不支持;因此不便于我们调试,可以利用串口输出来代替printf来调试。
 
6.   用或运算,可使某位置为1,其它位不变
 
eg:  PINSEL0  |= 0x00000005; //设置串口引脚
 
使第0位和第二位置一,其他位不变。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读