红外发送代码分析

论坛 期权论坛 脚本     
匿名技术用户   2020-12-30 07:31   26   0
 if ((TIM1->IER & TIM1_IER_CC2IE) && (TIM1->SR1 & TIM1_SR1_CC2IF))
    {
        TIM1->SR1 &= (u8) (~TIM1_SR1_CC2IF);

        ret = get_nth_width(&_irwave, ir_eng._cur_send_bit, &width);//取得红外波的长度
        if ((0x00 == ret) || (ir_eng._cur_send_bit >= ir_eng._cur_wave_bit))
        {
            stop_compare();
            ir_eng.g_ir_state = IR_IDLE;
            return;
        }
        ir_eng._cur_send_bit++;//取波的个数


        if (width & 0x8000) 
        {
            pwm_stop();//如果是低电平,进入这个函数。
        }
        else
        {
            pwm_start();
        }
 next_lbl:
        cur = TIM1_GetCapture2();
        width &= 0x7FFF;//过滤负号,取得真实的脉宽值
        cur += width;
        TIM1_SetCompare2(cur);
    }
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP