Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
6 kaklik 1
// Odesle nulu nebo jednicku podle nejnizsiho bitu predanych dat
2
// Nula je posloupnost LH a jednicka je HL
3
void odeslat_bit(int bit)
4
{
5
   output_bit(VYSILAC,bit);
6
   delay_us(IMPULS);
7
   output_bit(VYSILAC,!bit);
8
   delay_us(IMPULS);
9
}
10
 
11
// odesle datovy ramec
12
void odeslat_paket(int8 kanal,int8 data)
13
{
14
   int   i;
15
   int8 suma;
16
 
17
 
18
   data &= 0x1F;     // pro jistotu orizneme data, kdyby nekdo chtel prenaset vic poloh
19
   data |= kanal << 5;    // slozi osu a hodnotu do packetu
20
 
21
   swap(data);          // vypocet kontrolniho souctu
22
   suma = data & 0xF;   
23
   swap(data);
24
   suma += (data & 0xF);
25
   suma++;
26
 
27
   odeslat_bit(0);         // start bit
28
 
29
   for (i=8; i>0; i--)     // data
30
   {
31
      odeslat_bit(bit_test(data,7));
32
      data <<= 1;
33
   }
34
 
35
   for (i=4; i>0; i--)     // checksum
36
   {
37
      odeslat_bit(bit_test(suma,4));
38
      suma <<= 1;
39
   }
40
   output_high(VYSILAC);
41
 
42
}
43