原创
F449红外编码
2006-11-20 11:42
2209
4
4
分类:
通信
我用F449做的,38K载波采用TB的PWM输出,用F123做相应改动。
void main (void)
{
.....
/*----设置Timer_B实现PWM输出38K频率方波-----*/
TBCTL = TBSSEL1 + TBCLR; // 时钟源=SMCLK, 清除定时器
TBCCR0 = 14-1; // PWM频率=37.45KHz(周期=26.7us)
TBCCTL1 = OUTMOD_4; // TBCCR1 翻转输出
P2DIR |= 0x04; // 定义P2.2为输出
P2SEL |= 0x04; // 选择P2.2为TB1功能
SET_IrDA(); // 设置红外收发设备运行模式(启/停38khz振荡器)
.......
}
//*--------- 设置红外通讯运行状态 ----------------------------
void SET_IrDA(void)
{
if (IrDA_STA == 0xAA) TBCTL |= MC0; // 若发射标志置位,则启动Timer_B计数器连续计数模式
else TBCTL &= 0xFFCF; // 否则,停止Timer_B计数器运行
}
文章评论(0条评论)
登录后参与讨论