Самодельный передатчик (часть 2)
а то может оказаться что дешевле будет в китае заказать собранный кодер, чем здесь устраивать охоту за запчастями😁
В кодере нет труднодоставаемых деталей. А платы они тяжелые, доставка собраных плат из Китая будет дорогим удовольствием. Тем более что при попытке заказать партию в несколько десятков штук ими может заинтересоваться таможня и прийдется их растамаживать со всеми вытекающими последствиями по увеличению стоимости.
В кодере нет труднодоставаемых деталей.
У Вас в городе может быть, а у нас вот так вот, заказывать и ждать, да еще и цены блин ломят.
Господа прошу помощи…
Никогда с СИ не сталкивался, а сейчас разбираясь в программе кодера приходиться 😦
Нашел вот такой вот код:
v=-channel->epa[0];
Что делает операция “->”?
никак не могу найти ее описание %(((
расскажите кто знает ! (а перелопатил штук 5 самоучителей и руководств выложенных в сети… только в одном месте чтото мутное было и то без особого описания… чтото про “лево предрасположенный выбор” !!!
Как писал выше, версия 1.9 под 3410
Посмотрел схемы которые Omegats выкладывал. Там на тренере/ученике конденсаторы c5 и c6 местами перепутаны и на ресете c15 паралельно c31 пошел. На плате это поправлено?
v=-channel->epa[0];
Что делает операция “->”?
чтото про “лево предрасположенный выбор” ??!!
Надо просто посмотреть к чему это относится и понятнее станет 😃
Вот к чему:
typedef struct {
signed char subtrimmer;
signed char epa[2];
signed char reverse;
}CHANNEL;
Что делает операция “->”?
это не операция, это оператор доступа по указателю, к члену структуры(класса)
Спасибо !!
Вы бы знали в какие я дебри залез !!! 😃))
Что-то я сомневаюсь, что 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, и потом с помощью указателей обращаться к элементам массива в этой памяти
Да, наверное это единственный выход…
Но для меню я его применять не буду, так как экономия на нулевых стрингах прибавит в коде - скорее всего плюс минус тоже самое и выйдет…
свой вопрос закрываю…
Всем помогающим большое спасибо !!! приятно осознавать что твоему кипящему мозгу помогают ! 😃