谁用过定时器的capture中断有没有实例可以分享一下啊?
谁用过定时器的capture中断有没有实例可以分享一下啊?void TimerTx1_ISR(void)
{
M8C_DisableGInt;
cap2=TimerTx_wReadCompareValue();
cap=cap1-cap2;
cap1=cap2;
M8C_EnableGInt;
}
Period=65535 ,cap计算两次上升沿的差值,
do{}while(cap<4000||cap>5500);
for(j=0;j<3;j++)
{
for(i=0;i<8;i++)
{
cap=0;
do{}while(cap==0);
do{}while(cap>20&&cap<35);
if(cap>300&&cap<900)//0信号
{
tep=LearningData;
if(i<7){tep=(tep>>1);}
LearningData=tep;
}
else if(cap>900)//1信号
{
tep=LearningData;
tep=(tep|0x80);
if(i<7){tep=(tep>>1);}
LearningData=tep;
}
} 什么问题
所有的do{}while()语句都可以执行下去,可是就是检测不到if语句的范围
for(i=0;i<8;i++)
{
cap=0;
这里为什么要给0?
可以发您整个project? 发射部分验证过是正确的。解码时读到的地址码和数据码都是初始值0,0和1编码识别不出来,可是4.5ms的低电平和26us载波都能识别的话0和1为什么不行呢?
奇怪,不懂了。。。
只能进一个if语句,而且就算
if(cap<300&&cap>900)//0信号
{
LED_On();
tep=LearningData;
if(i<7){tep=(tep>>1);}
LearningData=tep;
}
LED也会亮,这很奇怪啊!麻烦大家了 换个方法吧
结贴了,多谢大家讨论这么多哈,呵呵
页:
[1]