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

ВитГо

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

пишу для ТЮФ (Турниги\Юрки\ФлайСкай) - там экранная память организована таким образом что вывод символов с координатами 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’ами пользуешься?

Demon163

Да, по всем пяти.
Пробовал всякие с 1.7 до 1.9.1 - результат тотже(в 1.7 не пишет про газ, а просто не работает как должен работать).
Кнопки не зажаты, шил и хексами и компилил заливал, безрезультатно.
Мега чтоли с битой ЕПРОМ, хотя когда прошиваешь(прошить все кнопка) шьет и проверяет(тока ругается что типа прошивки на ЕПРОМ нету).

Aleksey_Gorelikov

Епром инициализируется програмно. Заливать его не надо. По поводу остального - сделайте скриншот фьюзов, которые зашиты. И… в цепи сброса меги у вас конденцатор есть?

З.Ы. какая емкость по выходу питания?

EagleB3
Demon163:

и компилил заливал, безрезультатно.

Тогда советую подпихнуть в код немножко отладочной информации.

Например, на экран положения газа вывести текущее прочитанное положение ручки (это можно посмотреть в моих исходниках, они выложены на сайте; функция void VerReady(void) в Coder.c).

Можно добавить сообщение типа “Calibration correct!” в соответствующее место.

А также, может быть, поставить мессаги по if’ам, определяющим необходимость калибровки при включении питания - понять что именно происходит с EEPROM (в моих исходниках есть и это, см. void ResetToDefaultWithAsk (char ResetMSG) в Coder.c, но там я сделал целый механизм, который, пожалуй, сложноват и нецелесообразен для просто дебага конкретной ситуации).