Blame | Last modification | View Log | Download
// Odesle nulu nebo jednicku podle nejnizsiho bitu predanych dat// Nula je posloupnost LH a jednicka je HLvoid odeslat_bit(int bit){output_bit(VYSILAC,bit);delay_us(IMPULS);output_bit(VYSILAC,!bit);delay_us(IMPULS);}// odesle datovy ramecvoid odeslat_paket(int8 kanal,int8 data){int i;int8 suma;data &= 0x1F; // pro jistotu orizneme data, kdyby nekdo chtel prenaset vic polohdata |= kanal << 5; // slozi osu a hodnotu do packetuswap(data); // vypocet kontrolniho souctusuma = data & 0xF;swap(data);suma += (data & 0xF);suma++;odeslat_bit(0); // start bitfor (i=8; i>0; i--) // data{odeslat_bit(bit_test(data,7));data <<= 1;}for (i=4; i>0; i--) // checksum{odeslat_bit(bit_test(suma,4));suma <<= 1;}output_high(VYSILAC);}