查看: 3163|回复: 9

[其他] 飞思卡尔和红外解码的一些问题

[复制链接]

该用户从未签到

3

主题

13

帖子

0

新手上路

Rank: 1

积分
38
最后登录
1970-1-1
发表于 2014-1-23 10:45:54 | 显示全部楼层 |阅读模式
 #pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT0 (void)
{
  irtime++;  //用于计数2个下降沿之间的时间

}  
  #pragma CODE_SEG DEFAULT

#pragma CODE_SEG __NEAR_SEG NON_BANKED

void interrupt 6 IRQ_interrupt(void)

  {
static unsigned char i;
static byte startflag;
if(startflag)
{
  PORTB_PB0=1;
  if(irtime=33)   //引导码 TC9012的头码,根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码
  
   i=0;
  irdata=irtime;     //记录条边沿的时间间隔,
  irtime=0;
  i++;

if(i==33)
  {
   irok=1;
   i=0;
  PORTB_PB1=1;
  }          //引导码过后就是接受数据了,赋初值i=0
}               //32位数据完成后就把标志位irok置1 表示数据接收完成
else
{
  irtime=0;
  startflag=1;
  
}

}

#pragma CODE_SEG DEFAULT

void Ircordpro(void) //红外码值处理函数
{
unsigned char i, j, k;
unsigned char cord,value;
k=1;
  
for(i=0;i1;   //8为数据移位
   }
   k++;    //字节数加1
  }
  IRcord=value;
  value=0;   
}
if((IRcord[2])==~IRcord[3]) //检测后两位是不是反码 如果是标志位置1
{
  irpro_ok=1;//处理完毕标志位置1
  
}

}

void Ir_work(void)//红外键值散转程序
{

  irpro_ok=0;//处理完成标志
  }               

void main(void)
{     
DisableInterrupts;               
initPIT();
DDRB=0xff;
PORTB=0x00;
IRQinit();

EnableInterrupts;

for(;;)
  
  {  
    if(irok==1)                        //如果接收好了进行红外处理
  {
   // PORTB_PB2=1;
   Ircordpro();
    irok=0;
  }
    if(irpro_ok==1)                   //如果处理好后进行工作处理,如按对应的按键后显示对应的数字等
  {
   Ir_work();
    }  
}
   
  }

变量声明什么的就省了,我的疑问是我按了按键以后 PB0和PB1的灯可以灭掉,从调试看按键以后irok=1了,但是为什么进不了 Ircordpro()这个函数,哪位大神求救啊
我知道答案 目前已有9人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-1-23 11:45:31 | 显示全部楼层

    RE:飞思卡尔和红外解码的一些问题

    楼主你确定你的程序能进入下面这个条件,但是无法进入Ircordpro();函数?
      if(irok==1)                        //如果接收好了进行红外处理
      {
       // PORTB_PB2=1;
       Ircordpro();
        irok=0;
      }
    使用同样的灭灯方法,添加到Ircordpro函数的不同位置,都无法灭灯吗?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-1-23 11:47:03 | 显示全部楼层

    回复:飞思卡尔和红外解码的一些问题

    你这个问题好像之前有问过
    www.nxpic.org.cn/bbs/article_265_570641.html
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    38
    最后登录
    1970-1-1
     楼主| 发表于 2014-1-23 12:59:23 | 显示全部楼层

    回复:飞思卡尔和红外解码的一些问题

     
    回复第 2 楼 于2014-01-23 11:45:31发表:
    楼主你确定你的程序能进入下面这个条件,但是无法进入Ircordpro();函数?
    if(irok==1)                        //如果接收好了进行红外处理
    {
    // PORTB_PB2=1;
    Ircordpro();
    irok=0;
    }
    使用同样的灭灯方法,添加到Ircordpro函数的不同位置,都无法灭灯吗?
     
    嗯 对 如果 把if(irok==1) 改成if(TRUE)就能进去。
     
     
     
     
    QQ图片20140123125836.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-1-23 15:53:59 | 显示全部楼层

    回复:飞思卡尔和红外解码的一些问题

    你外部中断里能看下为什么irok没置1吗?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    38
    最后登录
    1970-1-1
     楼主| 发表于 2014-1-24 09:12:38 | 显示全部楼层

    回复:飞思卡尔和红外解码的一些问题

    回复第 5 楼 于2014-01-23 15:53:59发表:
    你外部中断里能看下为什么irok没置1吗?
     
    那个注释写了。32位数据完成后就把标志位irok置1 表示数据接收完成
    这个应该没问题吧,51就这样写了 没问题呀
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-1-24 09:43:08 | 显示全部楼层

    回复:飞思卡尔和红外解码的一些问题

    回复第 6 楼 于2014-01-24 09:12:38发表:
    回复第 5 楼 于2014-01-23 15:53:59发表:
    你外部中断里能看下为什么irok没置1吗?
     
    那个注释写了。32位数据完成后就把标志位irok置1 表示数据接收完成
    这个应该没问题吧,51就这样写了 没问题呀
     

     

    我是指你的外部中断函数是否如你所想的那样执行了。
    你可以debug一下
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    38
    最后登录
    1970-1-1
     楼主| 发表于 2014-1-24 10:15:48 | 显示全部楼层

    回复:飞思卡尔和红外解码的一些问题

    回复第 7 楼 于2014-01-24 09:43:08发表:
    回复第 6 楼 于2014-01-24 09:12:38发表:
    回复第 5 楼 于2014-01-23 15:53:59发表:
    你外部中断里能看下为什么irok没置1吗?
     
    那个注释写了。32位数据完成后就把标志位irok置1 表示数据接收完成
    这个应该没问题吧,51就这样写了 没问题呀
     

     

    我是指你的外部中断函数是否如你所想的那样执行了。
    你可以debug一下
     
    我方便加您的QQ么。。这样说太慢了。。您有时间的时候我问您,要不加我QQ也行 413059422 谢谢
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    24
    最后登录
    2015-8-8
    发表于 2015-7-21 15:10:34 | 显示全部楼层
    你这个是定时器中断吗?用FTM输入捕捉可不可以实现红外解码功能
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    24
    最后登录
    2015-8-8
    发表于 2015-7-21 15:11:22 | 显示全部楼层
    我想请教你有FTM中断捕捉的红外解码源程序吗?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 03:28 , Processed in 0.107200 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表