Самодельный передатчик (часть 2)

EagleB3

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

Отдавать три ноги контроллера под то, что можно отлично делать одной ногой - расточительство!

Кстати, как вариант, при желании/необходимости: один из неиспользуемых переключателей (SA14…SA16) можно отдать под команду “Все двойные”. И рулить двойными расходами либо по отдельности существующими переключателями, либо всеми сразу.

msv

Для этого (в тч. групповое переключение расходов одним щелчком) существуют режимы полета.

valera_o

Молодцы, ребята!!! Благодарю всем за огромную проделанную работу!
Сделал еще вариант Евгения, “повернул” экран, летал на нем. Потом купил Спектрум, потому как надежность работы на 35МГц никакая…
А вот понадобился передатчик на 8каналов, достал с пыльной полки, перепрошил версией 1.7, повернув экран и приспособив к моей раскладке тумблеров. Печатка та же, разве только заменить пищик на безгенераторный, но таки спрошу. Подскажите хотя бы в каком файле можно отменить индикацию потребляемого тока и тока в антенне? Хочу поставить модуль Корона, ток антенны и вообще нет смысла мерять.

ВитГо

А кто нить замерял насколько много времени занимает по пиксельное рисование экрана ? особенно инверсных надписей да и надписей вообще ?

пишу для ТЮФ (Турниги\Юрки\ФлайСкай) - там экранная память организована таким образом что вывод символов с координатами Y кратными 8 - будет заключаться в копировании из знакогенератора 5-6-7 байт… правда знакогенератор должен по другому символы описывать… но я уже и шрифт нашел положенный набок 😃 (от мк161)

стоит переписывать процедуру вывода символа - или эти высвобожденные ресурсы все равно погоды не сделают ?

EagleB3

2 msv, чисто идея по поводу отображения индикаторов:

Чтобы управлять отображением и при этом не менять структуру меню и не вводить лишних переменных в EEPROM, можно, наверное, сделать так: если порог сигнализатора тока антенны поставлен в “0”, то убирать с экрана пиктограмму, индикатор и цифровое значение для антенны. Можно и прочие “антенные” места (обращение к ADC канала, обсчет) обходить по этому условию. А может быть за одно и вообще всю работу с LMX2306 обходить.

ushmax

ВитГо, думаю, что погоды не сделают. Кроме того, даже если вывод станет дольше, на PPM это не скажется, а на глаз заметно не будет, думаю.

max-umc
ВитГо:

А кто нить замерял насколько много времени занимает по пиксельное рисование экрана ? особенно инверсных надписей да и надписей вообще ?

пишу для ТЮФ (Турниги\Юрки\ФлайСкай) - там экранная память организована таким образом что вывод символов с координатами Y кратными 8 - будет заключаться в копировании из знакогенератора 5-6-7 байт… правда знакогенератор должен по другому символы описывать… но я уже и шрифт нашел положенный набок 😃 (от мк161)

стоит переписывать процедуру вывода символа - или эти высвобожденные ресурсы все равно погоды не сделают ?

В 3310 она организована точно также. Выводить символы копированием байтов имеет смысл при чисто текстовом индикаторе, это упрощает код. При графическом режиме работы индикатора выводить шрифт лучше попиксельно, тогда делается функция PutChar(x,y,char) и символы рисуются в любом месте индикатора, да и делать вывод шрифтом разного размера проще.

ВитГо

еще один вопросик про синтаксис СИ

есть структура например такая
typedef struct {
unsigned char MODEL_TYPE; // тип модели
int EPR; // например крайняя правая точка канала
} MODEL;

можно ли создать массив указателей на эти параметры ?
что то типа
int *valpoint[2] = { &(int) MODEL.MODEL_TYPE, &MODEL.EPR }

что и где чем является я буду программно отслеживать… нужно чтобы массив адресов на параметры мог указывать на разные типы данных…

пока получаю ошибку компилятора что например MODEL_TYPE имеет тип unsigned char, а не например int…

или мне нужно как то по другому структуру модели определять?

ВитГо

даже наверное не int *varpoint а просто какой то тип pointer… что нить такое в си есть ?

ushmax

Есть, называется void*, но тогда Вам придётся всегда помнить, на что оно указывает…

Например:
int A;
char B;

void* p = (void*)&A;
void* q = (void*)&B;

int a = *(int *)p;
char b = *(char *)p;

Здесь (int*)p – преобразование p к типу “указатель на int”, а *(int*)p уже даёт тот самый int.

Denn

Наконец появилось свободное время! Проверил работу кодёра в том месте, где было подозрение на ошибку - всё работает нормально!
Сергей, спасибо ещё раз!

Mininc

Здравствуйте. Уже месяца 2 прошло как поставил себе этот кодер с прошивкой1.8. Все заработало с первого раза!!! Но вот не могу понять: когда летаю на реальной модели - все работает прекрасно. А вот при подключении к любому из симуляторов рычажки на экране время от времени начинают хаотично дергаться в разные стороны. Иногда могу час пролетать - ни чего не происходит, а иногда летать просто не возможно! Кабель пробывал и USB, и через вход звуковой карты подключал - НИ ЧЕГО НЕ ПОМОГАЕТ… ЧТО ДЕЛАТЬ ??? Подскажите, если кто сталкивался с таким…

EagleB3

КМК, фигня на участке от платы кодера до разъема, с которого снимаешь PPM.
Или, например, контакт в разъеме пошаливает. Может, просто грязный он там - вот и гуляют потенциалы…

Kappitoshka

Народ, как вы правите платы в sprint?! Ужас то какой если хочешь под себя поправить.
А в diptrace-е никто схему не набрасывал? Или кто может перегнать схему от Omegats из игла?
Diptrace, к стате, для любителей (2 стороны и до 1000 выводов) в СНГ бесплатен (эта версия игл не импортирует).

Вахтанг
Mininc:

Но вот не могу понять: когда летаю на реальной модели - все работает прекрасно. А вот при подключении к любому из симуляторов рычажки на экране время от времени начинают хаотично дергаться в разные стороны. Кабель пробывал и USB, и через вход звуковой карты подключал - НИ ЧЕГО НЕ ПОМОГАЕТ… ЧТО ДЕЛАТЬ ??? Подскажите, если кто сталкивался с таким…

У меня то-же самое с Futaba-6EX!

Mininc
Вахтанг:

У меня то-же самое с Futaba-6EX!

И как Вы с этим боретесь ???

Вахтанг

Да теперь никак, не пользуюсь симулятором и всё. В реале всё нормально. Имею 5 самолетов, все записаны в память аппи, 6-й сим (пробовал переносить на другой канал). Проблемы начались после переустановки Windows, а может просто совпало. Надо проверить с другим USB шнурком, с другим компом пробовал. Изначально, пару лет назад, тоже были некоторые проблемы. Удалось победить тщательными настройками сима. Теперь просто оптала необходимость в нём, даже после перерыва на зиму полетал нормально, без сима.

Demon163

Люди добрые, подскажите кто нибудь чего еще такого сделать надо, чтоб кодер калибровку прошел.
сделано:

  • поправлены резисторы чтоб в мин было почти 0 В;
  • выставлено опорное напряжение;
  • стики подвигал, на дисплее обозначения центральных точек появились
    давлю вправо - термометр, еще вправо - пишет что типа газу убавить надо, убавляю, а надпись не пропадает и пищит дико. Выкл, вкл… ааааа, опять калибровка. Каналы не попутал, сразу говорю, пробовал убавлять и прибавлять все что можно - не помогает
Edward_tlt
Demon163:
  • выставлено опорное напряжение;

Владимир, какое опорное получилось? И визуально на дисплее стики от края до края двигаются?

EagleB3
Demon163:
  • стики подвигал, на дисплее обозначения центральных точек появились
    давлю вправо - термометр

Центральные точки - по всем пяти каналам?

Demon163:

еще вправо - пишет что типа газу газу убавить надо. Убавляю, а надпись не пропадает и пищит дико.

Какая версия прошивки?

Demon163:

Выкл, вкл… ааааа, опять калибровка.

Очень странно. Если между калибровкой стиков и калибровкой термометра не было написано, что calibration incorrect, то калибровка выполнена. И в EEPROM это записано, и при повторном входе калибровку просить не должны (если только какая-то кнопка меню не зажата при включении аппы).

…Компилятором владеешь или только готовыми hex’ами пользуешься?