Subversion Repositories svnkaklik

Rev

Blame | Last modification | View Log | Download

// Odesle nulu nebo jednicku podle nejnizsiho bitu predanych dat
// Nula je posloupnost LH a jednicka je HL
void odeslat_bit(int bit)
{
   output_bit(VYSILAC,bit);
   delay_us(IMPULS);
   output_bit(VYSILAC,!bit);
   delay_us(IMPULS);
}

// odesle datovy ramec
void odeslat_paket(int8 kanal,int8 data)
{
   int   i;
   int8 suma;


   data &= 0x1F;     // pro jistotu orizneme data, kdyby nekdo chtel prenaset vic poloh
   data |= kanal << 5;    // slozi osu a hodnotu do packetu

   swap(data);          // vypocet kontrolniho souctu
   suma = data & 0xF;   
   swap(data);
   suma += (data & 0xF);
   suma++;

   odeslat_bit(0);         // start bit

   for (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);

}