Альтернативная прошивка к FlySky/Turnigy/I-Max/Eurle (Кодер Fokus-a - MSV)
в конце выдал ошибку…
что напрягает снова прочитать не могу!!! и не понимаю от чего зависит прочитает он или нет 😦((
Еще раз, посмотри про PEN !
Кстати, забыл приложить к архиву ТХТ файлик Сергея МСВ, тем самым нарушил его авторские права.
Да ладно… Не в копирайте счастье… 😃
Странно, именно в этой ветке так много недовольных звуком, хотя давно ждал подобных вопросов в основной ветке…
Все звуки определены в файле menu.c в структурах BEEP_TRACK_DEF. Формат массива: нота (0-ля первой октавы), длительность (мсек). Можете записать первый концерт Чайковского или что-нибудь из AC/DC. 😃
Запускаются проигрывание звуков функцией:
void beep_start(BEEP_TRACK_DEF flash *notes, unsigned char cnt, unsigned char rep);
notes- трек;
cnt - кол-во нот в треке;
rep- кол-во повторов трека.
Персонилизируйте свои пульты!
у меня программатор так и не заработал 😦(
пишет что не может войти в режим программирования…
диоды на входе перемыкал - после этого не стартует программа avrprog - пишет что нет совместимой платы 😦(
пробовал запитать передатчик при программировании через усб - тоже фиг…
перемкнул резистор по линии резет программатора - тоже нет…
у кого еще есть какие идеи?
Присоединяюсь к пожеланию найти комп с LPT и использовать простой шнурок только постарайтесь чтобы длина кабеля была минимальная.
Согласно рекомендации каждый сигнальный провод должен чередоваться с земляным.
У меня получился кабель на LPT длиной 35 см и еще внутри передатчика 12 см. Максимальная длина при таком подключении составляет 50 см.
Второй раз прошивал с помощью программы Ponyprog 2.07с, в шнурке у меня резисторы по 110 ом.
Удачи.
Странно, именно в этой ветке так много недовольных звуком, хотя давно ждал подобных вопросов в основной ветке…
Есть еще одна вещь, которую я не афишшировал. Я не корректировал работу таймера, генерирующего звук, а тактируется то он теперь другой частотой. 😉 Отчасти звук хуже из-за этого. Ноты то уплыли…
Еще раз, посмотри про PEN !
Да грабли были, и были они у меня.
Причина - плохая пайка или на конденсаторах обвески кварца, или на “земляной” ноге МЕГИ, что рядом с цепями генератора.
Камень не читался без шаманства с ногой PEN. Но и с ногой PEN он еле ворочался (как будто кварц не на 12МГц, а на 12КГц в лучшем случае. Точнее не считал).
Есть еще одна вещь, которую я не афишшировал. Я не корректировал работу таймера, генерирующего звук, а тактируется то он теперь другой частотой. 😉 Отчасти звук хуже из-за этого. Ноты то уплыли…
Алексей, можете выложить последний вариант проэкта- исходники с починенным шнурком. Есть друг программер попробуем вместе поковырять звук.
А также чем потом его компилировать в хекс.
Заранее благодарю.
Компилировать в хекс - нужен CjdevisionAVR. Искать в инете ( прямую ссылку не дам, правила форума запрещают). Нужна версия не ниже 2.х.х. Иначе не откомпилирует.
Со шнурком - до смешного. Я все порты меги назначил на ввод, потом нужные переназначил на вывод. Собственно, чтобы шнурок заработал, надо было с вывода что по схеме simcontrol (управление коммутатором ППМ) выдать логический 0.
Для этого надо в файле coder.c найти строки, где задаются регистры управления порта ввода-вывода G,можно по комментариям:
// Port G initialization
// Func4=In Func3=In Func2=In Func1=In Func0=In
// State4=P State3=P State2=P State1=P State0=P
И плставить значения:
PORTG=0x0F;
DDRG=0x10;
Не буду ради этого исходники перевыкладывать, надеюсь разберетесь.
Алексей! По совету MSV снова обращаюсь к вам по поводу включения на второй раз.
Оказалось что не включается только дисплей.
Можете подсказать где в исходнике описана процедура инициализации дисплея.
Похоже надо удлинить сигнал сброса.
Это оно?
void LCD_init(void) // ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
{
//int i;
PORTC &= 0x04;
delay_us (100);
PORTC |= 0x04;
flysky_LCD_command(0xA1);
flysky_LCD_command(0xC0);
flysky_LCD_command(0xA2);
flysky_LCD_command(0x1D);
delay_us (100);
flysky_LCD_command(0x2B-);
delay_us (100);
flysky_LCD_command(0x2F);
flysky_LCD_command(0x25);
flysky_LCD_command(0x81);
flysky_LCD_command(CONTRAST);
delay_us (100);
flysky_LCD_command(0xAF);
Похоже надо удлинить сигнал сброса.
Это оно?
Да.
void LCD_init(void) // ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
{
//int i;
PORTC &= 0x04; // подняли сброс
delay_us (100); // ширина импулься
PORTC |= 0x04; // опустили сброс
// вот тут можно задержку поставить.
…
delay_us (200)
Так правильно? Столько должно хватить?
Попробуйте. Практически правильно. “;” забыли. Можно еще ширину сброса попробовать поменять, а может перед сбросом еще паузу поставить.
Спасибо! Попробую разобраться.
Степан, ну чем кончилась история с увеличением времени сброса???
Степан, ну чем кончилась история с увеличением времени сброса???
Не было времени разобраться. Компилятор установил - проект нормально загрузился.
Потом начальство столько работы накидало что только вот к концу недели разобрался.
Планирую исправлять поэтапно - сначала - тренерский разъем
Потом дисплей
Потом рингтоны:)
понятно… а то прочитав в другой ветке про то что залили ерлуговскую прошивку малость подрасстроился - подумал что решили забить на это…
Планирую исправлять поэтапно - сначала - тренерский разъем
Тренерский разъем яж уже поправил (только на выход ппм). На вход - вряд ли буду делать. Там давольно много писать придется, а я не хочу от авторского варианта MSV отходить, т.к. вижу данный проект как подветку “кодера фокуса”. Перед отпуском заказал себе эту “игрушку”. Вернусь с отпуска - получу (если почта тормозить не будет) - попробую памяти моделей прибавить, да лишние крутилки задействовать. Скорее всего, будетут варианты:
- с двумя крутилками и доп. трехпозиционным тумблером вместо “верхней крутилки”
- с тремя крутилками.
По первому варианту - для упрощения модификации тумблер будет сажаться вместо крутилки на АЦП (теже провода). Необходимо будет допаять навесным монтажем на тумблер два одинаковых резистора практически любого номинала. Крутила, если не менять на тумблер тоже будет работать, но как тумблер (край- центр- край.).
Наша благодарность не будет иметь границ, в пределах разумного!😒
Тренерский разъем яж уже поправил (только на выход ппм). На вход - вряд ли буду делать. Там давольно много писать придется, а я не хочу от авторского варианта MSV отходить, т.к. вижу данный проект как подветку “кодера фокуса”. Перед отпуском заказал себе эту “игрушку”. Вернусь с отпуска - получу (если почта тормозить не будет) - попробую памяти моделей прибавить, да лишние крутилки задействовать. Скорее всего, будетут варианты:
- с двумя крутилками и доп. трехпозиционным тумблером вместо “верхней крутилки”
- с тремя крутилками.
По первому варианту - для упрощения модификации тумблер будет сажаться вместо крутилки на АЦП (теже провода). Необходимо будет допаять навесным монтажем на тумблер два одинаковых резистора практически любого номинала. Крутила, если не менять на тумблер тоже будет работать, но как тумблер (край- центр- край.).
а может одной крутилкой и 2 трех позиционными тумблерами обойдемся
самое интересное что на главном экране крутилки отображаются и реагируют на ручки…😃, то бишь как я понимаю процессором они обрабатываются…
Да, вертелки опрашиваются и больше ничего. в прошивеке используется только одна, остальные даже не нормализуются. Привязывать их - надо менять меню и структуру епром. Однако, в кодере МСВ у тумблеров весьма приятная функция - плавное замедление. Я пока не решаюсь выкидывать из программы SW2 и внедрять вместо него крутилку, т.к. считаю задержку более удобной. Крутилка полезна для подстройки каких-либо параметров, и практически бесполезна в том виде, в котором есть. А 3 крутилки - имхо изврат, продиктованный ничем иначе, как наличием свободных каналов АЦП. Использовались бы они как в мультиплексе… Но увы. Переписывать кодер целиком я не буду. Хочу максимально оставить совместимость с МСВ, он то свой проект бериодически обновляет.