Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 5 → Rev 6

/schemata/prenos/letadlo/SW/vysilac/posledni_funkcni_verze/vysilac.c
0,0 → 1,43
// 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,3));
suma <<= 1;
}
output_high(VYSILAC);
 
}