Самодельный передатчик (часть 2)
Надежды не сбылись 😃 ожидал увидеть платку под эту аппу с неизменненым ВЧ…
Люди! Может быть кто-нибудь разводил платку под HK-T6A с использованием короновского ВЧ?
платку под HK-T6A с использованием короновского ВЧ
Так этож нонсенс в моем понимании 😃. Не думаю, что у кого-то такое есть. Давайте в личку, пишите что нужно - поправим. Там делов на 10 минут
еще вопрос про генерацию сигнала PPM…
в первом варианте кодера Фокуса длительности каналов PPM рассчитывались во время передачи паузы между пачками, в новом варианте (на меге128) на сколько я понял - после передачи текущего канала сразу рассчитывается его длительность для новой пачки…
это было сделано из-за нехватки производительности процессора сделать это во время паузы или по каким то другим причинам ?
у меня просто есть необходимость рассчитывать 16 каналов… успею за 300-400 мкс или нет ?
кто нить оценивал насколько хватает производительности меги при расчете длительностей каналов?
Кто же тебе скажет, да еще не видя твоего кода?
А хоть бы даже и видя…
Самое простое - смоделировать в Протеусе.
Или даже просто прогнать этот кусок в AVRStudio - она, помнится, проставляет временные метки при трассировке в дебагере.
да кода особо еще нет…
пытаюсь посчитать сколько времени нужно на то или иное действие…
например есть код
//--------------------------------------------------------------------------------------------------
// Процедура чтения данных выбранного канала ADC
// Входной параметр: adc_input - номер канала для чтения
// Выходной параметр: считанное значение
unsigned int read_adc(unsigned char adc_input) {
ADMUX=adc_input|ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; // Stop
return ADCW;
}
получается что для опроса одного ADC канала нужно не менее 10 мкс… у меня их 7 - уже 70…
причем насколько я понимаю while ((ADCSRA & 0x10)==0); - будет еще какая то задержка… - но какая ?
соответственно мысля - вытащить чтение всех ADC каналов в паузу между пачками PPM… там будет около 300 мкс - хватит ?
я тут эксперементировал уже с прерываниями - очень тяжело найти причину ошибок если не успеваешь внутри прерывания до вызова прерывания вторично…
вот и пытаюсь подойти рационально к этому…
в новом варианте (на меге128) на сколько я понял - после передачи текущего канала сразу рассчитывается его длительность для новой пачки…
Математика распределена. Основная часть (все, что до микшеров) делается в паузе. Остальное досчитывается во время строба PPM.
while ((ADCSRA & 0x10)==0); - будет еще какая то задержка… - но какая ?
На время преобразования. См. ДШ.
По быстродействию код практически не оптимизировал, поэтому резерв наверняка очень большой. Можно смотреть на то, что выдает компилятор в асме, и оптимизировать код в Си. Иногда, казалось бы простейшие вещи, компилятор превращает в довольно замысловатый код, иногда си-шные инструкции воспринимает слишком буквально, и делает совершенно не нужные движения. Можно неподдающиеся оптимизации функций переписать на асме…
Отлаживаться по быстродействию очень удобно в протеусе, дергая тестовые ножки и глядя на виртуальный осцилограф.
выкладываю, чтобы потом самому не забыть. правил по живому. работает нормально.
з.ы. ткните носом в мануал. желательно не powerpoint =)
Интересный дисплейчик. Это он?
Интересный дисплейчик. Это он?
Вот стая таких же кс0108:
www.promelec.ru/winstar/graph/
а вот драйверочки к ним:
en.radzio.dxp.pl/ks0108/
На аппаратуре Hitec Prism 7X есть интересная штука: там оцифровывается механический триммер ( в подменю ) , и это значение можно перебросить в субтриммер, и тогда механический триммер можно ставить в нейтраль. Может сделать что-нибудь подобное, но, например, для режима Normal , а в остальных режимах триммер оставить или изменять на ту-же величину?
да этих дисплеев - как грязи. даташит читайте внимательно чтобы контроллер был ks0108.
испохабил корпус своей старой футабы. врезал экран. слева 4-ре кнопки основные. справа кнопки EXIT и MENU, которые можно было не ставить, они не нужны. прошивка для турниги 9Х.
столкнулся с таким косяком - не прохожу калибровку. в меню “монитор” ручки ходят от -100 до 100. а должны от -256 до 256. цеплял на AREF подстроечник, включал в исходнике режим работы с AREF, а не AVCC. крутил крутилки - все бесполезно. в принципе меня не парит в исходнике пороги подвинуть с 512 до 200, но может есть какой-то метод поправить аппаратно ситуацию? резисторы ручек подключены на землю и питание 5 вольт.
вообще, чем грозит низкое разрешение (не дотягивание до верхних границ)? пока обнаружил, что таймер в режиме “AUTO” стартует не зависимо от положения ручки газа. видимо там игнорируются калибровки ручек.
Ребята ести у кого то прошивка 1.9 или 1.9.1 под 3410 желательно без температуры и тока антенны .Заранее благодарен.
Вот 1.9 под 3410
3410.rar
ручки ходят от -100 до 100. а должны от -256 до 256.
Кстати, а кто сказал что ±256? Там же масштабирование делается, а в монитор вобще проценты от расхода выводятся? Поставите расходы в 120% будет ±120…
З.Ы. Кстати, зачем от турниджи прошивку??? Почему не от МСВ, не коцанную??? Я ж там кой-чего под турниджи специально менял. Назад вернули??? К примеру вывод ППМ, корректировал таймера под 16мгц кварц…
З.Ы.Ы. и почему всеж дисплей этот, а не тик? Там ж проводов мало, можно еще что-нибудь к меге прицепить. А с паралельным дисплеем - тяжко. Ног в обрез. Разве что кнопки с тумблерами на матрицы разводить…
Кстати, а кто сказал что ±256? Там же масштабирование делается, а в монитор вобще проценты от расхода выводятся? Поставите расходы в 120% будет ±120…
насчет монитора не скажу, а в процедуре калибровки ясно сказано:
if(ADmax[i]-ADmin[i]<512)
не хватает “ручек” чтобы калибровку пройти. вывел на экран абсолютные значения с АЦП. все ручки ходят ADmax-ADmin около 200 отсчетов.
З.Ы. Кстати, зачем от турниджи прошивку??? Почему не от МСВ, не коцанную??? Я ж там кой-чего под турниджи специально менял. Назад вернули??? К примеру вывод ППМ, корректировал таймера под 16мгц кварц…
кварц какой - мне фиолетово, лишь бы правильно РРМ формировался. а коцанность - ерунда. мне одной доп крутилки вполне хватает, ток антенны не нужен, у меня ассан, синтезатор не нужен по той-же причине. термометр и тахометр вообще не знаю зачем. ну и выбор в пользу прошивки для турниги - дисплей там 128х64, не охота лазить и расставлять картинку по местам.
З.Ы.Ы. и почему всеж дисплей этот, а не тик?
да просто у меня есть этих дисплеев.
слева 4-ре кнопки основные. справа кнопки EXIT и MENU,
Э-э-э, я наверное что то пропустил😍, откуда взялись кнопки EXIT и MENU???
поясните кто нить по временным параметрам PPM используемым в самодельном передатчике
Длина канального импульса от 1000 до 2000, а вот какова длина паузы между импульсами ?
p.s. запустил в своей прошивке микшер каналов, но приемник чтото не понимает то что я ему передаю… на первый канал приемника влияет третий передаваемый… третий канал приемника (двигатель) - короткие писки (то есть нет сигнала)…
Наверное чтото с временными задержками напутал…
Расскажите как это работает у вас ?
пауза между импульсами входит в эти 1мс до 2мс и обычно составляет 0,3мс
то есть считается не длина самого импульса, а длина импульса и паузы после него ?
то есть так:
-----1000-------|_300__|--------
|-----------------------|
длительность всего промежутка считается как длительность канального импульса ?
в данном случае (положительная фаза импульса 1000 мкс, отрицательная 300) канальный импульс будет считаться как 1300 мкс ?