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

Aleksey_Gorelikov
SVS:

Проблема решилась, при колибровке, крутилкой 8 канала, крутанул в мак.-мин. 2 раза (определились границы)и вернул в максимум(курсор слева).
Вот тогда серва стала отрабатывать с минимума до максимума.
Дайте ссылку на последнюю версию.

И еще появилась непонятная абра-кодабра и зависание, когда захожу в User`s 1 или 2, в нижней строке абра-кодабра и зависает (может прошивка), дайте неглючные исходники(проэкт)?

Был такой глюк, когда епром соскакивал. Перешей заново (или попробуй в меню модель-стереть модель), во фьюзах активируй БОД. Кстати, откомпилировалось нормально? По идее ошибок и варнингов быть недолжно. В исходниках варнинги по умолчанию есть, но исправить не сложно. Там неиспользуемы переменные, несоответвие размера массива кажется было… Не помню уже короче, но сложного нет.

Еще посмотри посты про кондеры по питанию, бод, цепь сброса. Народ писал кто как от слета епрома лечился. Это 99% епром слетел.

Пы.Сы. Если память не изменяет, то надо преред окончанием калибровки джойстики и крутилки в 0 выставить. Помоему у Евгения при калибровке сохраняется положение 0 и К_min - K_max. Да и процедура калибровки написана с ошибочкой 😃

SVS

Перепрошил, все появилось, поюзаем, поищим глюки, но вроде бы глюки кончились.

ubd

Посмотри какие кондёры стоят до и после Крена 5В. Нужно не более 10 мк ставить иначе слетать ЕЕПРОМ будет. У меня так же слетал, когда поставил кондёры по 10 мк, ЕЕПРОМ не слетает, вот уже больше года.

Более свежих исходников не найдёшь. Есть только те которые с выше описанными глюками. Те кто знает СИ, и собирал для себя этот кодер, исправлял ошиби, но исправленя не выкладывал на форум.

Aleksey_Gorelikov, если не трудно помогите с исправлением ошибок. Вы пишите что там ничего сложного нет, покажите что поправить, мы поправим. Я СИ не знаю вообще, по этому я не ориентируюсь в исходниках, ни как. Так бы сам исправил, и выложил бы на форум.

Denn

Слышал про глюки при необнулённом EEPROMе. Может быть стоит включить в процедуру калибровки обнуление EEPROM при первом включении?

valera_o

при программировании надо просто не забывать прошивать еепром нулями…

Aleksey_Gorelikov
Denn:

Слышал про глюки при необнулённом EEPROMе. Может быть стоит включить в процедуру калибровки обнуление EEPROM при первом включении?

Она при первом включении есть. Слетает в процессе эксплуатации. Бод, монитор питания и кондеры в стабилизаторе - должны помоч. Либо что-то из этих мер, либо их комбинации. 😉

ubd:

Aleksey_Gorelikov, если не трудно помогите с исправлением ошибок. Вы пишите что там ничего сложного нет, покажите что поправить, мы поправим. Я СИ не знаю вообще, по этому я не ориентируюсь в исходниках, ни как. Так бы сам исправил, и выложил бы на форум.

Я довольно давно отошел от этой версии кодера. Точнее он поэтапно переписался ( да и со временем еще дописывается) заново. Серьезная ошибка была только одна, с индексом. Проявлялась - когда какой-то из каналов работал от середины и в одну сторону - нормально, в другую сторону - или стоял или “кое-как” или от другой ручки. Я указывал на нее и в форуме и Евгению. Вроде бы это было в версии 1. Версия 1.2, насколько я помню, от предъидущей отличалась этой исправленной ошибкой и замедленными в 2 раза тримерами.

Я могу помоч исправить, если вспомню где. Дайте ссылку на исходники фокуса - я гляну. Просто лень листать форум да и выкладывали их 10 раз все кому не лень, возможно с новыми ошибками…

ubd

Искать сейчас последнюю версию, замучаешься. Проще выложить заново. Это точно самая последняя из работающих версий. Как раз у этой версии тримера замедленны в два раза.

Все пользователи будут очень благодорны вам, если вы исправите ошибки, какие помните, и какие сможете найти. Только не добаляйте ничего лишнего, я имею в виду новых функций, замена экрана, потому как эта версия будет заливаться в старое железо. Пусть всё останется как есть, только без ошибок.

Заранее спасибо!

Aleksey_Gorelikov
ubd:

Искать сейчас последнюю версию, замучаешься. Проще выложить заново. Это точно самая последняя из работающих версий. Как раз у этой версии тримера замедленны в два раза.

Все пользователи будут очень благодорны вам, если вы исправите ошибки, какие помните, и какие сможете найти. Только не добаляйте ничего лишнего, я имею в виду новых функций, замена экрана, потому как эта версия будет заливаться в старое железо. Пусть всё останется как есть, только без ошибок.

Заранее спасибо!

Посмотрю не раньше вторника. Уезжаю в коммандировку.

Aleksey_Gorelikov
Aleksey_Gorelikov:

Посмотрю не раньше вторника. Уезжаю в коммандировку.

Успел пораньше:

mwb007
Aleksey_Gorelikov:

Успел пораньше:

Спасибо !!!

Пошел перепрошиваться.

SVS

Все работает, тока проверил def.c , все заработало, Огромное спасибо

Andrej100
Aleksey_Gorelikov:

Успел пораньше:

if (U_bat<800)
{
PORTG|=0x4;
delay_ms(20);
PORTG&=0xFB;
delay_ms(20);
куда это вставить чтобы работало 😦 .Пробывал в math.h вставлять , при сробатывание вешает пульт.

ubd

Ты куда это вставлял?

В начало что ли?

Тем более если фигурная скобка открылась, то она должна закрыться.

Вот это:

if (U_bat<880) напряжение включения таймера
{
PORTG|=0x4;
delay_ms(20);
PORTG&=0xFB;
delay_ms(20);
};

Вставляется в файл math.C после надписи //работаем с таймером;

Что там сложного?

Тем более в исходниках нет файла с расширением *.h

Andrej100
ubd:

Ты куда это вставлял?

В начало что ли?

Тем более если фигурная скобка открылась, то она должна закрыться.

Вот это:

if (U_bat<880) напряжение включения таймера
{
PORTG|=0x4;
delay_ms(20);
PORTG&=0xFB;
delay_ms(20);
};

Вставляется в файл math.C после надписи //работаем с таймером;

Что там сложного?

Тем более в исходниках нет файла с расширением *.h

Это всё не работает 😦 ,при вкл пишалки начинают дёргатся машинки всех каналов(из за этого уронил самик) 😦
встовлял в math.с

ubd

Дёргаются? Я не пробовал в момент пищания передатчика, включать приёмник с машинками. Я и не думал что так может быть. Попробую завтра. Может быть у тебя что то с аккумами, дохлые сильно?

Ниже мой скрин-сейвер, куда я вставлял эту часть программы.

mwb007
ubd:

Дёргаются? Я не пробовал в момент пищания передатчика, включать приёмник с машинками. Я и не думал что так может быть. Попробую завтра. Может быть у тебя что то с аккумами, дохлые сильно?

Ниже мой скрин-сейвер, куда я вставлял эту часть программы.

Да. Каналы действительно портятся при срабатывании звуковой сигнализации разряда батареи передатчика. Проверял на симуляторе.

ubd

Прикинте, правда дёргаются! Они как бы зависают и не двигаются.
Но это я пробовал делать на версии с варнингами. Новы кодевижн ещё не скачал.
Может быть на версии с исправленными ошибками будет работать?

Aleksey_Gorelikov, объясни почему дёргаются машинки когда пищалка работает? Как от этого избавиться?

leprud

Они дергаются из-за использования delay, в этот момент не срабатываю прерывания таймеров, сиречь не идут сигналы на ВЧ часть

Aleksey_Gorelikov
ubd:

Aleksey_Gorelikov, объясни почему дёргаются машинки когда пищалка работает? Как от этого избавиться?

Я писал, что этот кусок надо вставлять куда угодно, только не в прерывание. Процедура calc() как раз и входит в прерывание ( вызывается в прерывании!). Вот почему машинки дергаются. Прерывание при выполнении delay() затягивается, в итоге и разваливается весь ппм пакет.
Вставляйте пищалку в coder.c d main(), внутри последнего, бесконечного цыкла, там где trim_sound(); и menu(); вызываются, или в одну из этих подпрограмм.

BerliN

Доброго времени суток.
Мож кто поможет 😒 если не сложно последнюю версию под экран Nokia 3310 адаптировать, а то все экраны 3410 которые доставал не хотят работать что только не пробовал 😃 бесполезно, а 3310 завелся почти сразу, но на него все не помещается, приходится только догадываться что там нарисованно. 😢 поможите плз…

ubd

Так это Andrej100, посоветовал эту подпрограмму туда вставлять, и сам же попался на этом. Значит то же СИ не знает, как и я… Знал бы СИ, то не вставлял бы эту подпрограмму куда попало.

Я не заню СИ, потому и спрашиваю, куда точно всталять. Потому как для меня прерывания и безконечный цикл, ничего не значат.

Алексей спасибо за подсказку.

Вставляйте пищалку в coder.c d main(), внутри последнего, бесконечного цыкла, там где trim_sound(); и menu(); вызываются, или в одну из этих подпрограмм.

Значит вот сюда:
Файл Coder.c

Calc(); //первоначальный расcчет;
CHcalc(0);
TIMSK=0x10;
#asm(“sei”)

LED1=0;

while (1)
{

trim_sound();

menu();

if ((U_bat<1000)&&(U_bat>970)) // напряжение включения/выключения таймера
{
PORTG|=0x4;
delay_ms(20);
PORTG&=0xFB;
delay_ms(20);
};

};
}

Правильно?

У меня 3 Li-po стоят, поэтому пищать будет на 10В, и выключаться на 9,7В.