|
}
else //发送高
{
PortIr_High ;
if(IrDatTsmt & 0x01) //发送1
{
IrTmp1 = TDAT_HIGH ;
}
else
{
IrTmp1 = TDAT_LOW ;//发送0
}
if(Ircont >= IrTmp1)
{
Ircont = 0 ;
IrDatTsmt >>= 1 ;
F_IrStatus = 0 ;
BitNum ++ ;
if(BitNum >= (IrDatLong *8 +1))//一次发送16个BIT
{
BitNum = 0 ;
F_IrTsmt = 0 ;//发送结束
}
}
}
}
}
//文件main.c
void main(void)
{
uint16 R_DspIrDat ;
while(1)
{
if(T_10MS >= 200)//200*50u=10ms 跑一次主程序
{
T_10MS = 0 ;
R_DspIrDat = 1234 ;
CmdTansmitData(R_DspIrDat,100) ;//发送1234 间隔100*10MS=1S 发送1次
}
}
}
//中断服务程序
void interrupt server(void) //中断进入时间50U
{
uint8 Tmp ;
uint8 *pTmp ;
TIM6_SR1 = 0x00; // 清除更新标志 50u 中断一 次
T_10MS ++ ;
CmdIrTsmtDat() ; //控制发送
}
|