www.openedv.com
您好,欢迎您!    会员注册 | 登入 
公告:欢迎访问www.openedv.com开源电子网,开源共享共同进步,祝您新年快乐,万事如意!
设为首页 | 加入收藏
论坛首页 » 51单片机 前往: 
12M晶振 51产生38khz(26us)载波
发表人 内容
[Down] [Up]
[楼主位] tyqhaha

等级:NO
注册时间:
2011/03/30 15:05
文章: 25
离线

 
想请教一段51的红外载波的代码,12M晶振
示波器看到是标准的26US周期的信号,比较疑惑
而且正负周期是1:1,不是想象中的12:1

代码如下:
void delay_LED(unsigned int de)  
{
 while(de--)
 {
       IR_OUT = 1;            
      _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();  
      _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();  
      IR_OUT = 0;            
      _nop_();           
 }
}

 _nop_();  // 1us 
至于while占多少时间不是很懂。
调用函数花2us,返回2us,时间算下来不是26的样子哇,请高手指导下


这篇文章被编辑了 1 次. 最近一次更新是在 2011/05/28 10:06

[加为好友] 回复 引用回复
[Down] [Up]
[1楼] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8097
来自: 湖南
离线

回复【楼主位】 tyqhaha :
---------------------------------
这种要用汇编才准的。
执行while(de--)这样的操作,51估计也要花很多时间。



我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
 
前往: 

Powered by ALIENTEK工作室 © 粤ICP备12000418号-1