打印
[STC单片机]

38K的周期时间如何计算?

[复制链接]
1654|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
armxu|  楼主 | 2015-8-8 19:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*************  本程序功能说明  **************
用户可以在宏定义中改变MCU主时钟频率. 范围 8MHZ ~ 33MHZ.
红外接收程序。模拟市场上用量最大的NEC的编码。
用户可以在宏定义中指定用户码.
使用PCA2高速输出产生38KHZ载波, 1/3占空比, 每个38KHZ周期发射管发射9us,关闭16.3us.
使用开发板上的16个IO扫描按键, MCU不睡眠, 连续扫描按键.
当键按下, 第一帧为数据, 后面的帧为重复争,不带数据, 具体定义请自行参考NEC的编码资料.
键释放后, 停止发送.
******************************************/

//========================================================================
// 函数: void   PCA_Handler (void) interrupt PCA_VECTOR
// 描述: PCA中断处理程序.
// 参数: None
// 返回: none.
// 版本: V1.0, 2012-11-22
//========================================================================

#define D_38K_DUTY  ((MAIN_Fosc * 26) / 1000000UL + MAIN_Fosc / 3000000UL)  /*  38KHZ周期时间   26.3us */
#define D_38K_OFF   ((MAIN_Fosc * 17) / 1000000UL + MAIN_Fosc / 3000000UL)  /* 发射管关闭时间   17.3us */
#define D_38K_ON    ((MAIN_Fosc * 9) / 1000000UL)                           /* 发射管导通时间   9us */

请问“#define D_38K_DUTY  ((MAIN_Fosc * 26) / 1000000UL + MAIN_Fosc / 3000000UL)  /*  38KHZ周期时间   26.3us */”中的0.3us的算式是如何推导出来的?


相关帖子

沙发
joyme| | 2015-8-12 17:19 | 只看该作者
这里计算的是指令数,比如8M的晶振,8个指令为1us,8M/1M就是1us的指令数,8M/3M就是0.3us的指令数,主频高才能产生精度达到0.几us的脉宽波形,主频低就会不准甚至产生不了这种波形

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

105

帖子

1

粉丝