Уважаемый romanmeteo! Поймите, мое выступление, без сарказма и насмешек. Это искренне. Если я Вам чем то навредил, то прошу извинить меня.
У меня накоплен определенный опыт по работе с радиоуправляемыми моделями (более 40 лет). Сигнал в радиоканал подается в виде определенной последовательности импульсов, которые в дальнейшем модулируют радиочастоту (АМ или ФМ модуляция). Далее сигнал несется по воздуху, где в одном из мест его перехватывает радиоприемник.
Так вот, Вы подаете на канал передатчика, непрерывно идущие посылки чисел, соответствующие напряжению датчиков (в данном случае напряжение, считываемое с потенциометров джойстиков). С помощью АЦП (внутри контроллера). Оно преобразуется в десяти разрядную посылку, соответствующую числам от 0 до 1023. В подавляющих случаях, десяти разрядная посылка преобразуется внутри контроллера в восьми разрядную посылку (Атмега - восьми разрядные для вычислений). Таким образом Вы отправляете восьми разрядное число (от 0 до 255) в радиомодуль, работающий на частоте 2,4 ГГц. Это называется ИКМ (импульсно-кодовая модуляция). Теперь представьте, что во время пересылки одной последовательности числа, вдруг пропадает 1 бит, тогда из максимального числа 255, может получиться 55. Это удар по всей системе приемника-преобразователя (для вашего моторчика, в лучшем случае, это помеха, выразившаяся в подергивании или внеплановой "перегазовке" - эффект динамически заторможенной системы). Но если мы бы рассматривали относительно передачи звукового сигнала, то такой перепад напряжения, выбил бы весь акустический тракт, от усилителя до динамика. Для восстановления потерянной информации предпринимаются ряд мер, как в передающей, так и в приемной части (как правило, это довольно сложная система). Но из простых мер, это последовательная подача синхроимпульса, буферизация входного числа и сравнения с ранее поданным, ожидание последующего и сравнения с предыдущим и т.д. Я никогда не работал с NRF трансиверами, потому создалось впечатление, что у нее на борту вмонтирован Фурье процессор.
Теперь о Ваших сложностях, связанных с реверсом двигателя. Для того, чтобы моторчик понимал, в какую сторону крутиться, необходимо иметь некую "нулевую" точку отсчета. Тогда, все числа до этой точки будут принимать значения со знаком "минус" (допустим, вращение влево), а после этой точки, со знаком "плюс" (допустим, вращение вправо). Методик создания такой ситуации много, например от -N через 0 к +N. Но у Вас на выходе джойстика напряжение, изменяющееся от 0 до 5В. Значит средним значением напряжения для Вашего джойстика будет 2,5В. Входящее значение числа после АЦП контроллера будет 1024/2=512. Соответственно, это число 512, будет "нулевой" точкой Вашего отсчета. Числа от 0 до 511 - отрицательные, а числа от 513 до 1023 - положительные. Так же возможно преобразование -512_0_+512.
Но в системе радиоуправления обозначился некоторый стандарт. Импульсы, необходимые для работы сервомеханизмов, а так же остальных исполнительных устройств должны лежать в пределе от 1 до 2 мСек.
Таким образом, нулевая точка для этого диапазона будет 1,5 мСек. Значит в микросекундах это будет выглядеть 1000_1500_2000. Вот эти числа и будут основой для операций в FLProg. Т.е. масштабируем входные числа 0-1023, в 1000-2000, организуем детектор нуля на компараторе, со значением 1500. Для ШИМ модуляции, значения чисел должны быть (2000-1000)/2=500 и масштабируем (для понимания ШИМом) 0-500, в 0-255. Далее организуем логику переключения направления движения для входов IN1-IN4 L-298.
ВНИМАНИЕ! Не перепутайте логику переполюсовки транзисторов драйвера, иначе он может выйти из строя.
Не забудьте соединить общую шину (минус) контроллера с общей шиной драйвера.
Для машинки с управлением рулем через серво, след. модуль: