febb: (Default)
febb ([personal profile] febb) wrote2015-04-13 04:31 am

Хьюстон, у нас нет проблем!

Продолжение темы: http://febb.livejournal.com/3000621.html


Начальная версия программы приема данных подразумевала настройку
на частоту передатчика и была не способна уже перестроиться.
Добавил (default case in switch below) повторную инициализацию
если данные прочитаны со сбоями.

Это уже очень интересная штука получается. К примеру сигнал посылается
Гагарину в космос и существуют помехи или например посылается разными
передатчиками с разными частотами. Приемник способен перестроиться
на новую частоту и восстановиться после помехи или сбоя.
Ну разумеется какое-то количество данных потеряется по ходу,
но связь восстановится!

Ну и эта самая простая реализация, но на удивление работает.
Она помогает к примеру при тестировании менять задержки и автоматически
найти самую высокую скорость передачи данных. Оказалось что
это порядка времени выполнения нескольких инструкций процессора.
Круто!


for(;;)
{
b = getSerByte();
switch(b)
{
case 11:
for(k=0; k < 16u; ++k)
Line1[k] = getSerByte();
for(k=0; k < 16u; ++k)
Line2[k] = getSerByte();
Display();
break;
default:
initSerInput();
break;

}
}