新手请教关于irremote库的RAW数据是怎么看的
请问使用irremote库获取到的raw的数据是怎么看的,需要怎样转换才能看?还有通过debug模式输出的数据又怎么看的,看代码没明白究竟代表什么意思,希望各位高手指点一下int MATCH_MARK(int measured_ticks, int desired_us) {
Serial.print("Testing mark ");
Serial.print(measured_ticks * USECPERTICK, DEC);
Serial.print(" vs ");
Serial.print(desired_us, DEC);
Serial.print(": ");
Serial.print(TICKS_LOW(desired_us + MARK_EXCESS), DEC);
Serial.print(" <= ");
Serial.print(measured_ticks, DEC);
Serial.print(" <= ");
Serial.println(TICKS_HIGH(desired_us + MARK_EXCESS), DEC);
return measured_ticks >= TICKS_LOW(desired_us + MARK_EXCESS) && measured_ticks <= TICKS_HIGH(desired_us + MARK_EXCESS);
}
int MATCH_SPACE(int measured_ticks, int desired_us) {
Serial.print("Testing space ");
Serial.print(measured_ticks * USECPERTICK, DEC);
Serial.print(" vs ");
Serial.print(desired_us, DEC);
Serial.print(": ");
Serial.print(TICKS_LOW(desired_us - MARK_EXCESS), DEC);
Serial.print(" <= ");
Serial.print(measured_ticks, DEC);
Serial.print(" <= ");
Serial.println(TICKS_HIGH(desired_us - MARK_EXCESS), DEC);
return measured_ticks >= TICKS_LOW(desired_us - MARK_EXCESS) && measured_ticks <= TICKS_HIGH(desired_us - MARK_EXCESS);
}
本帖最后由 histamine 于 2013-5-21 17:23 编辑
irremote里面raw数据,其实就是高/低电平持续时间(间隔排布,...低高低高低高...这样的)
红外一体接收头接收到38khz调制信号时输出低电平,没收到38khz调制信号时输出高电平
搞个山寨逻辑分析仪分析下就清楚了
sendRaw函数接受的buf数组里面的元素,其单位是microsecond
decode_results->rawbuf数组里面的元素,其单位是USECPERTICK(默认是50 microseconds)
另外提下,irremote rawbuf默认最多只能存100个数值,对于某些使用私有红外遥控协议的空调遥控器来说,这个长度不太够,把IRremote.h文件里面的#define RAWBUF 100宏定义改大点就行了
页:
[1]