void IRsend_sendGREE(long datavalue ,unsigned int greeCRC)
{
long data = 0;
long temp = 0;
IRsend_enableIROut(38);
IRsend_mark(GREE_HDR_MARK);
IRsend_space(GREE_HDR_SPACE);
data = (datavalue&0xffffff80)|0x0A;
for (int i = 0; i < 32; i++){
if (data & TOPBIT) {
IRsend_mark(GREE_BIT_MARK);
IRsend_space(GREE_ONE_SPACE);
}
else {
IRsend_mark(GREE_BIT_MARK);
IRsend_space(GREE_ZERO_SPACE);
}
data <<= 1;
}
data = 0x02;
for (int i = 0; i < 3; i++){
if (data & TOPBIT) {
IRsend_mark(GREE_BIT_MARK);
IRsend_space(GREE_ONE_SPACE);
}
else {
IRsend_mark(GREE_BIT_MARK);
IRsend_space(GREE_ZERO_SPACE);
}
data <<= 1;
}
IRsend_mark(GREE_COM_MARK);
IRsend_space(GREE_COM_SPACE);
temp = datavalue&0x00000040;//7
data = (temp>>6);
data = data<<4;
temp = datavalue&0x00000020;//6
data = data|(temp>>5);
data = data<<5;
temp = datavalue&0x00000018;//5 4
data = data|(temp>>3);
data = ((data<<16)|0x1000)<<1;//3
temp = datavalue&0x00000004;
data = data|(temp>>2);
data = (data<<5)|(greeCRC&0x000f);
for (int i = 0; i < 32; i++){
if (data & TOPBIT) {
IRsend_mark(GREE_BIT_MARK);
IRsend_space(GREE_ONE_SPACE);
}
else {
IRsend_mark(GREE_BIT_MARK);
IRsend_space(GREE_ZERO_SPACE);
}
data <<= 1;
}
IRsend_mark(GREE_BIT_MARK);
IRsend_space(0);
}