微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 谁有CC2530 芯片的红外接收程序啊

谁有CC2530 芯片的红外接收程序啊

时间:10-02 整理:3721RD 点击:

最近研究这个,可是红外接收就是没有产生中断,不知道怎么回事,

下面是我写的红外接收解码程序,大家帮忙给看看哪错啦

#include <ioCC2530.h>

#define IR P1_0
#define LED P1_1
#define uchar unsigned char
#define uint unsigned int

uchar A,Q;
uchar M[4];

void main()
{

A=Q=0;
P1SEL =0x01;//设置P1_0为外设
P1DIR &= 0x00;//P1_0为输入
P1DIR |= 0x02;//P1_1为输出
P1IFG |= 0x00;//状态清零
P1IEN |= 0x01;//中断使能
PICTL = 0x02;//下降沿引起中断
LED = 0;
EA = 1;
while(1)
{

}
}
#pragma vector = P1INT_VECTOR
__interrupt void P1_ISR(void)
{
uint cnt=0;
uchar i;
P1IFG =0x00;

while(!IR)
cnt++;
if(cnt < 1000)
{
P1IEN = 0x01;
return;
}
cnt = 0;
while(IR)
if(cnt++ > 400)
{
P1IEN = 0x01;
return;
}
if(cnt < 200)
{
P1IEN = 0x01;
return;
}
for(i=0; i<32; i++)
{
cnt = 0;
while(!IR);
while(IR)
if(cnt++ > 200)
{
P1IEN = 0x01;
return;
}
M[i/8] >>= 1;
if(cnt > 60)
M[i/8] |= 0x80;
}
if(M[0] == M[1] && M[2] == M[3])
{
A = M[0];
Q = M[2];
while(1)
{
LED = !LED;
}
}
P1IEN = 0x01;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top