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

ВитГо

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

есть структура например такая
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, но там я сделал целый механизм, который, пожалуй, сложноват и нецелесообразен для просто дебага конкретной ситуации).

Demon163
Aleksey_Gorelikov:

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

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

Фюзы: галки стоят на СКОРТ, BODEN, BODLEVL
Конденсатор 0,1 мкф на массу, рез 10к к +5в по сбросу. По питанию помоему 100 мкф, только какая разница по питанию то какой кондер стоит?

EagleB3:

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

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

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

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

А вот это для меня уже темный лес.

Aleksey_Gorelikov
Demon163:

Фюзы: галки стоят на СКОРТ, BODEN, BODLEVL
Конденсатор 0,1 мкф на массу, рез 10к к +5в по сбросу. По питанию помоему 100 мкф, только какая разница по питанию то какой кондер стоит?

Ну вот она и собачка. С фьюзами ок, в цепь сброса килоом, на выход стабилизатора не больше 10мкф. И будет счастье.

Разница в том, что при выключении он долго разряжается, при включении - долго заряжается. Бод хоть и активирован, но походу не справляется. Ну и цепь сброса у тебя “медленная” слишком.

Demon163

Спасибо, вечером после работы попробуем, надеюсь все получится, а то уже мозги кипят и появляется жалость к выдернутым родным платам передатчика )))

valera_o

Заказал вчера короновские модули. Плату не переделываю, буду пока юзать версию 1.7. В любом случае, кодер по функционалу выводит любой НАДЕЖНЫЙ комплект ТХ\РХ на уровень 500-600 баков… Мой спектрум отдыхает не говря уже о футабе 6… Молодцы ребята!!!
Как всё начиналось…

Теперешний вид передатчика. Модуль пока граупнер 35 МГц.

Корпус - симулятор для ФМС. Аналогичен ескаю.

Demon163
Aleksey_Gorelikov:

Ну вот она и собачка. С фьюзами ок, в цепь сброса килоом, на выход стабилизатора не больше 10мкф. И будет счастье.

Разница в том, что при выключении он долго разряжается, при включении - долго заряжается. Бод хоть и активирован, но походу не справляется. Ну и цепь сброса у тебя “медленная” слишком.

цепь сброса теперь быстрая, по питанию 1 мкф… а собака, зараза такая, всеравно просит сильно не газовать 😦

PS: вернул на место 1.9.1

В CV прочитал флэш и еепром… блин, а еепром то теперь не пустая…