Альтернативная прошивка к FlySky/Turnigy/I-Max/Eurle (Кодер Fokus-a - MSV)

ubd

Я не знаю что такое маппинг…

Aleksey_Gorelikov

Ну я имел ввиду назначение ног. В общем да, в теле прерывания просто дрыгал ногой. Вот, смотри:
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
static unsigned char nb=0;
static unsigned int sum=0;
static unsigned char fpv=0;
static unsigned int out=40000;

ICR1H=(unsigned char)(out>>8); //заливаем длительность канала
ICR1L=(unsigned char)out;

if (cur_model.modulation){
PORTB.0=1;
delay_us(100);
PORTB.0=0; } else
{PORTB.0=0;
delay_us(100);
PORTB.0=1; } ;

Собственно делай_ус(100) - 100 микросекунд “иголка”.

ubd:

В меню Model, после пункта Reset, появились Aileron и Elevator. Их там не должно быть. Как убрать?

Меню.с:

#define menuT0L 4
#define menuT1L 12
#define menuT2L 12
#define menuT3L 2
#define menuT4L 5
#define menuT5L 8
#define menuT6L 2
#define menuT7L 3
#define menuChL 6

Циферки - это кол-во пунктов в меню. Поиграйся. 😃

Вячеслав_Михеев
Aleksey_Gorelikov:

Ну я имел ввиду назначение ног. В общем да, в теле прерывания просто дрыгал ногой. Вот, смотри:
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
static unsigned char nb=0;
static unsigned int sum=0;
static unsigned char fpv=0;
static unsigned int out=40000;

ICR1H=(unsigned char)(out>>8); //заливаем длительность канала
ICR1L=(unsigned char)out;

if (cur_model.modulation){
PORTB.0=1;
delay_us(100);
PORTB.0=0; } else
{PORTB.0=0;
delay_us(100);
PORTB.0=1; } ;

Собственно делай_ус(100) - 100 микросекунд “иголка”.

Меню.с:

#define menuT0L 4
#define menuT1L 12
#define menuT2L 12
#define menuT3L 2
#define menuT4L 5
#define menuT5L 8
#define menuT6L 2
#define menuT7L 3
#define menuChL 6

Циферки - это кол-во пунктов в меню. Поиграйся. 😃

Я уже думал данно прошивкой никто не пользуется 😒

Aleksey_Gorelikov
ubd:

Убрал переключение режимов полёта, тумблер сделал как SW2_1 и SW2_2. Но трёх позиционник не работает как 6-й канал, реакция на него есть - пикает когда щёлкаешь, но 6-й канал в мониторе не работает, стоит в 0. Нужно ещё что то сделать, я не знаю что…

Содер.с:
if(prop3<200) input[5]=0;
else if(prop3>800) input[5]=1500;
else input[5]=750;

Вот тут пятый (т.е. шестой, т.к. нумерация от нуля!) канал привязан к крутилке проп3
Вместо этого надо что-то типа:
if(keys & F_SW2_1) input[5]=0;
else if(keys & F_SW2_2) input[5]=1500;
else input[5]=750;

ubd

Спасибо, большое!
В понедельник попробую. Всё на работе.

ubd

Я уже думал данно прошивкой никто не пользуется

Да ну, пользуемся. Штатная Турниговская тупая напроч.

ubd

Ещё бы сделать вызов Монитора нажатием вправо. Я что то сам пытался, не вызывается.

Aleksey_Gorelikov

У меня в след. верисиях было сделано, но кажется нажатием влево. Кину завтра исходники на почту, сравни (старый ноут так и не достал, исходники там.)

ubd

Там кнопка вправо не задействована была вообще, на неё сделаю.

ubd

В общем всё сделал.
SW2 работает, в меню модель теперь порядок.

А вот с межканальной паузой, проблема теперь другая. Она стала 0,4, но длительность канала стала считаться некорректно.
В крайних положениях не дотягивает до 1мс, и до 2 мс. т.е. в одну сторону даёт не 1 а 1,3 мс а в другую сторону не 2 а 1,7мс. Как раз я на 0,3 увеличил паузу, и на 0,3 уменьшилиьс расходы. Это точно. Специально сейчас сидел осциллом стомотрел в разрешении 0,2мс на клетку. Всё точно на 0,3мс, недотягивает в обе стороны. Ну и как итог, АП от msv стоит в FS, т.к. управляющий канал и канал газа, не доходит до 1 мс.

А среднее положение, чётко 1,5 мс.

Алексей, помогай…

Aleksey_Gorelikov

Да не должна ширина “иголки” виять на таймер. Может и до этого расходы неполные были и никто не замечал??? По идее - достаточно увеличить расходы или в микшировании более 100% поставить, если “фокус” не помогает, то ограничение канальных импульсов в кодер.с:
//limit
if(val<-1350) val=-1350;
if(val>1350) val=1350;

ubd

Может и до этого расходы неполные были и никто не замечал???

Сейчас попробую изменить на 0,1 мс и постмотеть что будет.

Алексей, базара нет, при паузе в 0,1 то же самое расходы не полные. Точно так же не хватает 0,3 мс. Я просто до этого так внимательно не расматривал.

Слушай, получается и прошлая прошивка не даёт 100% расходы.
Оригинальная прошивка от MSV нормально работает. Она у меня до сих пор юзается на полностью самодельном передатчике.

Как бы нужно поправить этот косяк. Я понимаю что можно в меню расходы добавить, но это колхоз.
Говоришь вот это влияет на канальный импульс:
//limit
if(val<-1350) val=-1350;
if(val>1350) val=1350;

Только не понятно какие значения ставить? 1350 это мкс? Или что?

ubd

Здаётся мне что с увеличением частоты, уменьшилась и длительность канального импульса. Получается что под кварц 16 мгц, длительность канального импульса на пересчитывали…

Aleksey_Gorelikov
ubd:

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

Ну если нужно - правь. Я считаю, что при максимальных (120%) расходах аппы импульс ппм не должен выходить за пределы 1.1-1.9мс. И моя логика объясняется просто: на ппм нет стандарта как такового. Общепринятым считается 1-2мс, у каких то аппаратур 0.8-1.8, у каких-то 1.2-2.2. Кто и что считает косяком - мне плевать. Я за совместимость с любыми радиомодулями-приемниками-декодерами. Завтра появится кто-то с jr модулем и начнет плеваться, что ему 0.8мс предел подавай, а потом кто-нибудь захочет 16 каналов в 22мс упихать - мне всеравно! Логика масштабирования (да и всего передатчика) не выходит за рамки линейного уравнения y=k*x+b сложного тут ничего нет. В свое время дядька Глайдер очень доходчивый труд написал по логике передатчиков.
Я с самого начала писал, что проект поддерживать не планирую. Однажды мой друг купил турниджи, и пока она валялась у меня я поигрался с прошивкой самодельного передатчика на этом железе. В какой-то момент - прошивка вызывала интерес и я понемногу ей занимался, потом забросил. Я ждал, что кто-то подхватит эстафетную палочку и дешевая но функцианальная аппаратура позволит нищим школьникам шагнуть на шаг вперед в моделизме.
Турниджи не дала нового витка развития самокодеру, но под нее пишут другие энтузиасты и другой, между прочим весьма достойный софт. Мне турниджи не интересна. Я по прежднему раздаю исходники всем желающим, подсказываю, но не работаю ни на кого! Мне не интересно тратить время на то, что кто-то воспринимает “стандартный” ппм не так, как я. Исходники у тебя есть - впреред! Твори, выдумывай, пробуй. Право пришития перламутровых пуговиц - у тебя.

А базар - он есть. Кому не нравится - могут купить бренд, могут влить прошивку от Влада, ер9х и миллион подобных, не нравится “колхоз” - можно использовать стандартную и пинать за косяки производителя, раз ты ему его труды оплатил.

ubd

Да нет я без претензий.
Я просто к тому что бы мне помочь поправить, вот и всё.
Но если это сложно и трудоёмко, то ладно. Нет так нет.

ВитГо

Пауза должна быть 300 МКС по-моему а не 400

PigTail

Опять таки и на паузу стандарта нет, но самая распространенная 400

ubd

От 300 до 400 стандарт. В общем то это не принципиально. Просто 100 слишком мало оказалось. Хотя и 100 достаточно. У меня FrSky модуль работает с той прошивкой где 100, уже год. Я только сейчас это узнал что там 100 мкс.

В общем я сделал расходы до 135% и всё ОК, длительности нормальные.

Алексей, спасибо!

22 days later
MPetrovich

Приветствую всех.
Есть необходимость в подключении к сателлиту Hobby King 2.4Ghz Receiver 6Ch V1 системы стабилизации FuBar по протоколу S.Bus. Принципиально, описание обоих протоколов я нашёл; однако, прежде, чем мутить собственный декодер, хочу спросить у народа: может кто-то уже делал что-то похожее? Заранее спасибо всем, кто откликнется.

Aleksey_Gorelikov
MPetrovich:

Принципиально, описание обоих протоколов я нашёл

Принципиально на описание обоих протоколов вам указали. Специально для вас конвертер сателит-фубар никто не делал. Dollop делал свои приемники на базе сателитов, и в другой ветке я вам уже предлагал с ним связаться и давал ссылку на его дневник с описанием приемника (и исходниками его проекта). Странные вы. Ваш вопрос к собсуждаемой в этой теме прошивки вобще никаким боком не относится.

MPetrovich

Понял. Думал - может повезёт, кто-то заморачивался. Ну, на нет и суда нет, как говорится. Буду, значит, сам пилить.
Вопрос задал в этой теме, поскольку здесь люди явно с программированием знакомы.