Самодельный передатчик (часть 2)
Спасибо !!
Вы бы знали в какие я дебри залез !!! 😃))
Что-то я сомневаюсь, что MSV будет этим заниматься… Женя Fokus - аналогично. У него сейчас времени нет не то что на это, а в интернет выползти… Я его изредка в аське вылавливаю, и то с мобильника. Да и живут они гараздо дальше 50км от МКАДа.😁
Можете предложить MSV какой-либо процент и заниматься этим сами, или даже (возможно) использовать прошивку некомерчески, а деньги брать непосредственно за свою работу (плату и т.д), если Сергей даст вам на это (использование прошивки) свое разрешение. И даже если не даст - можете торговать одним “железом” никого не спрашивая. Беретесь?
Кстати а цены на изготовление плат (по ссылке на предыдущей странице) действительно небольшие…
брал 100 на 50 мм… 2 стороны 10 плат - 1250 рублей при первом заказе (125 руб. штука) и 850 рублей при повторном (85 рублей штука)…
Жаль что в ХК 6 кан. нет ЖК экрана штатно… а то можно было бы для него платы делать да продавать желающим…
p.s. хотя все таки ситуацию нужно обдумать 😃)
Посмотрел схемы которые Omegats выкладывал…
Нет. Поправляем… Какой вы глазастый 😛. Я только С31 и С15 увидев насторожился…
Спасибо.
Вот читаю ваши мнения по поводу новой v1.9, и облизываюсь- дисплей-то у меня “перевёрнутый”,и залить 1.9 я не могу.Может,кто уже скомпиллил её под перевёрнутый 3310 ?Поделитесь,пожалуйста…😦
Вот 😒
Исправил плату для HK-T6A и ему подобных.
Там в архиве два варианта. Оличаются организацией питания кодера и ВЧ блока.
- на двух импульсных стабилизаторах LM2674-5.0
- на двух линейных стабилизаторах 7805 и одном P-Ch MOSFET.
Все замеченные (спасибо Kappitoshka) ошибки исправлены.
Возможно (как это часто бывает) добавлены новые 😛 - шутка, конечно, но до “массовых заказов для всех обладателей подобных пультов” желательно проверить живьем.
Спасибо за замеченные ошибки. Не буду цитировать, т.к. с мобильного, но по возникшим вопросам… LM2674-5.0 брал в Имраде, резюки и кондеры 1206 (0805 влазят почти везде), кнопки и переключатель - разводил под те что были в наличии. Разъемы сначала пропаивал с одной стороны, потом приподнимал пластик и с другой стороны, где надо. Переключатель - сначала перемычку между слоями, а потом его впаял. Плату делал по ЛУТ. Еще не запускал - успел сделать програматор на FT232RL+МЕГА8 и сдох ноут 😦. Так что…
Еще один вопросик по синтаксису СИ (я понимаю что наверное не совсем то место… но других у меня пока нет)
Описал структуру
typedef struct {
unsigned char itemcol; // Количество пунктов меню
unsigned char *items[]; // пункты меню
unsigned char upitemnum; // указатель на вышестоящий пункт меню
}MENU_STRUCT;
Теперь мне нужно ее проинициализировать значениями
__flash const MENU_STRUCT menu_info[3]={
// Cтартовое меню - 0
{ 2, { “MODEL”, “SYSTEM” }, 255 },
// Меню MODEL - 1
{ 5, { “NEW”, “SELECT”, “EDIT”, “COPY”, “DELETE” }, 0 },
// Меню MODEL - EDIT - 2
{ 6, { “TYPE”, “NAME”, “TIMERS”, “CHANNELS”, “UCH”, “FLY_MODES” }, 0 }
};
вроде так ?
но на строчку
{ 5, { “NEW”, “SELECT”, “EDIT”, “COPY”, “DELETE” }, 0 },
codeVisionAVR ругается что мол пропущена }
мозг уже плавиться… как правильно ?
p.s. эх, как же тяжко переходить на СИ с Паскаля и Дельфей 😦
Я не могу себя назвать продвинутым программером, но, КМК, причина в том, что есть в CVAVR (или вообще в ANSI C?) какое-то ограничение на штуку, которая, вроде как, называется динамическим массивом. Если ее в CVAVR и можно задать, то, видимо, не так, как делаешь ты. И как ее можно задать я не знаю.
Для экспериментов я обычно преобразовываю участки к более “растянутому” виду, тогда становится понятно на что именно ругается компилятор. Например:
// Cтартовое меню - 0
{ 2,
{ "MODEL", "SYSTEM" },
255
}
,
{ 1,
"AB",
"CD",
"EF",
5}
,
{ 6,
{ "TYPE", "NAME", "TIMERS", "CHANNELS", "UCH", "FLY_MODES" },
0
}
};
Теперь изменяй количество “пунктов” для второго раздела меню (удаляя сначала строку “EF”, а потом строки “CD” и “EF”) - и все будет очень наглядно.
Ощущение такое, что компилятор определяет количество элементов массива по первой строке, и обижается, если в последующих строках это количество изменяется.
И в самом деле, если в описании типа сказать либо unsigned char *items[6];, либо unsigned char *items[0];, то проканает вот такая инициализация:
__flash const MENU_STRUCT menu_info[3]={
// Cтартовое меню - 0
{2, { "MODEL", "SYSTEM", "", "", "", ""}, 255 },
{1, { "AB", "CD", "EF", "", "", ""}, 5 },
{6, { "TYPE", "NAME", "TIMERS", "CHANNELS", "UCH", "FLY_MODES" }, 0 }
};
фиксированную длинну массива знаю… но хотелось по короче… а то у меня есть менюха в которой 28 пунктов… 😃))))
Почитай встроенный хелп - там довольно много и довольно толково.
Еще могу прислать мануал на CVAVR v.2.03.5. Или выложить его и еще несколько толковых мануалов по CVAVR, по Си вообще и по микроконтроллерному Си в частности. Или в сети поищи, например, “CodeVisionAVR пособие для начинающих, Лебедев М.Б.” - практически перевод мануала; причем из 250 страниц автор умудрился сделать 600…
переделал на фиксированное количество элементов… все компилится…
остальное в личку
у меня есть менюха в которой 28 пунктов… 😃))))
Это жесть! Это обязательно надо разбивать на подпункты, КМК.
Я просто боюсь что разбив сделаю путанным меню…
28 пунктов это конечные точки каждого из органов управления. их 13 плюс еще одна пара нужна…
сейчас поделил на Stick (4 элемента) , Vario (3), Switch(5), Buttons(1)…
ВитГо, можно вручную выделять память с помощью getmem, и потом с помощью указателей обращаться к элементам массива в этой памяти
ВитГо, можно вручную выделять память с помощью getmem, и потом с помощью указателей обращаться к элементам массива в этой памяти
Да, наверное это единственный выход…
Но для меню я его применять не буду, так как экономия на нулевых стрингах прибавит в коде - скорее всего плюс минус тоже самое и выйдет…
свой вопрос закрываю…
Всем помогающим большое спасибо !!! приятно осознавать что твоему кипящему мозгу помогают ! 😃
Jest lji vozmozhnostj pereklju4itj Dual Rate s odnjim viklu4ateljem na 1,2,4 kanal , kak eto sdelano v Futaba 7C?
Конечно. Но только на hardware уровне. То есть программно этот режим в имеющеся прошивке на тумблер не повесить (разве что в виде микшеров каких-нить) А на постоянно сделать можно - вместо трех тумблеров поставить один и запараллелить соответствующие входы микроконтроллера
Выходы (точнее входы) можно и програмно запаралелить… Хотябы в def.h одну и ту-же ногу указать.
Совершенно согласен!
И, более того, если есть хотя бы минимальные навыки программирования (да или просто желание разобраться с программой - на уровне определения ног никаких сложностей вообще нет!), то, IMHO, это и надо делать программно.
Отдавать три ноги контроллера под то, что можно отлично делать одной ногой - расточительство!
Кстати, как вариант, при желании/необходимости: один из неиспользуемых переключателей (SA14…SA16) можно отдать под команду “Все двойные”. И рулить двойными расходами либо по отдельности существующими переключателями, либо всеми сразу.
Для этого (в тч. групповое переключение расходов одним щелчком) существуют режимы полета.
Молодцы, ребята!!! Благодарю всем за огромную проделанную работу!
Сделал еще вариант Евгения, “повернул” экран, летал на нем. Потом купил Спектрум, потому как надежность работы на 35МГц никакая…
А вот понадобился передатчик на 8каналов, достал с пыльной полки, перепрошил версией 1.7, повернув экран и приспособив к моей раскладке тумблеров. Печатка та же, разве только заменить пищик на безгенераторный, но таки спрошу. Подскажите хотя бы в каком файле можно отменить индикацию потребляемого тока и тока в антенне? Хочу поставить модуль Корона, ток антенны и вообще нет смысла мерять.
А кто нить замерял насколько много времени занимает по пиксельное рисование экрана ? особенно инверсных надписей да и надписей вообще ?
пишу для ТЮФ (Турниги\Юрки\ФлайСкай) - там экранная память организована таким образом что вывод символов с координатами Y кратными 8 - будет заключаться в копировании из знакогенератора 5-6-7 байт… правда знакогенератор должен по другому символы описывать… но я уже и шрифт нашел положенный набок 😃 (от мк161)
стоит переписывать процедуру вывода символа - или эти высвобожденные ресурсы все равно погоды не сделают ?