Самодельный передатчик (часть 1)
Доброго времени суток.
Мож кто поможет 😒 если не сложно последнюю версию под экран Nokia 3310 адаптировать, а то все экраны 3410 которые доставал не хотят работать что только не пробовал 😃 бесполезно, а 3310 завелся почти сразу, но на него все не помещается, приходится только догадываться что там нарисованно. 😢 поможите плз…
Так это 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В.
Да, всё правильно я предположил. Сделал как выше - работает, сигнализирует и при этом управление остаётся в норме.
Andrej100, можешь сделать так же, будет работать.
Значит вот сюда:
Файл Coder.cПравильно?
У меня 3 Li-po стоят, поэтому пищать будет на 10В, и выключаться на 9,7В.
Да.
Доброго времени суток.
Мож кто поможет 😒 если не сложно последнюю версию под экран Nokia 3310 адаптировать, а то все экраны 3410 которые доставал не хотят работать что только не пробовал 😃 бесполезно, а 3310 завелся почти сразу, но на него все не помещается, приходится только догадываться что там нарисованно. 😢 поможите плз…
да не сложно, просто лень. Из соображений доставабельности экрана я переписал графическую библиотеку под довольно распространенный и дешевый дисплей tic - 149 (tic -152). Сам кодер не переписывал, так что работать кодер будет, но вот изображение будет чуть меньше самого дисплея. Попробуйте купить этот дисплей - думаю проблем не будет. Да и контакты у него удобнее… Из модификаций кодера - надо добавить только 2 резистора по 3-10кОм.
Вот еще в этой теме этот дисплей использовали: rcopen.com/forum/f8/topic82797. Там написано, где он продается “у нас”. “У Вас” тоже должен быть по идее.
Да, всё правильно я предположил. Сделал как выше - работает, сигнализирует и при этом управление остаётся в норме.
Andrej100, можешь сделать так же, будет работать.
Я уже сделал и всё ок 😃
да не сложно, просто лень. Из соображений доставабельности экрана я переписал графическую библиотеку под довольно распространенный и дешевый дисплей tic - 149 (tic -152). Сам кодер не переписывал, так что работать кодер будет, но вот изображение будет чуть меньше самого дисплея. Попробуйте купить этот дисплей - думаю проблем не будет. Да и контакты у него удобнее… Из модификаций кодера - надо добавить только 2 резистора по 3-10кОм.
Вот еще в этой теме этот дисплей использовали: rcopen.com/forum/f8/topic82797. Там написано, где он продается “у нас”. “У Вас” тоже должен быть по идее.
Лень конечно штука интересная 😃 жаль конечно, указанный дисплей не нашел, видимо придется довольствоваться тем что есть 😉 Danke что не отказались помочь… может кто то все таки поможет, не из ленивых? Очень не хочется лезть во внутрь, все заново разбирать, резать новое окно под новый дисплей который у нас еще и не продают, да и места под него нет 😕 ПЛЗ…
Так это Andrej100, посоветовал эту подпрограмму туда вставлять, и сам же попался на этом. Значит то же СИ не знает, как и я… Знал бы СИ, то не вставлял бы эту подпрограмму куда попало.
Я не заню СИ, потому и спрашиваю, куда точно всталять. Потому как для меня прерывания и безконечный цикл, ничего не значат.
Алексей спасибо за подсказку.
Значит вот сюда:
Файл Coder.cПравильно?
У меня 3 Li-po стоят, поэтому пищать будет на 10В, и выключаться на 9,7В.
Великолепно!
Нашли виновника???
Выход, то выхот то где???
Не вы одни этим маетесь
Ух ты! А я про пищалку ничего и не знал. Батарейку не успел еще посадить, пульт закончил делать только вчера. Огромное спасибо автору! Из пульта от соосника получилась конфетка. А можно ли, выложить HEX файл с исправленным глюком пищалки, пожалуйста 😃 ? Прошивал кодер прошивкой из “Focus_ispr.zip”. С паяльником дружу а вот с программированием нет. И еще один маленький вопрос, правда он поднимался не так давно, в user, s 1 и user, s 2 в низу экрана мусор, кондеры стоят правильные, рекомендовали во фьюзах активировать БОД, это значит поставить галочку на BODLEVEL или на BODEN ? Экспериментировать с фьюзами боюсь, запорол както несколько ATMega8, а параллельного программатора нет.
Спасибо!
Ура! Глюк с мусором в Users исправил, оказалось что он возникает когда EEPROM прошиваешь файлом “Coder.eep” (шью PONY PROG) или его вовсе не зашить. Я видел указания на то что память надо всю забить нулями но решил что для этого и существует в прошивке файл “Coder.eep”. В итоге открыв этот файл в PONY PROG я заменил все “FF” на “00” и все заработало! И еще раз попрошу, выложите пожалуйста HEX с исправленным глюком пищалки.
Ура! Глюк с мусором в Users исправил, оказалось что он возникает когда EEPROM прошиваешь файлом “Coder.eep” (шью PONY PROG) или его вовсе не зашить. Я видел указания на то что память надо всю забить нулями но решил что для этого и существует в прошивке файл “Coder.eep”. В итоге открыв этот файл в PONY PROG я заменил все “FF” на “00” и все заработало! И еще раз попрошу, выложите пожалуйста HEX с исправленным глюком пищалки.
Вот держи Coder.rar,пищалка вкл при 8.8 откл 8.5 в.Если надо другое напряжение поши исправлю. 😒
Великолепно!
Нашли виновника???
Выход, то выхот то где???
Не вы одни этим маетесь
Ты вообще, о чём? Какой выход?
Всё у всех работает, разобрались.
пищалка вкл при 8.8 откл 8.5 в.Если надо другое напряжение поши исправлю
Не рекомендую ставить такой низкий прог пищалки. При напряжении 8,8 В, уже начинает падать мощность передатчика, а значит падает радиус дейстивия аппаратуры. Лучше, хотя бы от 9 до 8,7В пищало.
Хотя, это нужно проверять, для конкретного передатчика. Если передатчик хорошо работает при 8,5 В, то можно и такой порог ставить.
У заводских передатчиков, вроде бы на 9,5 начинает пищать.
Ты вообще, о чём? Какой выход?
Всё у всех работает, разобрались.
Не рекомендую ставить такой низкий прог пищалки. При напряжении 8,8 В, уже начинает падать мощность передатчика, а значит падает радиус дейстивия аппаратуры. Лучше, хотя бы от 9 до 8,7В пищало.
Хотя, это нужно проверять, для конкретного передатчика. Если передатчик хорошо работает при 8,5 В, то можно и такой порог ставить.
У заводских передатчиков, вроде бы на 9,5 начинает пищать.
Извеняюсь. Вчера не все прочитал.
Уже сделал и себе. Все работает.
Всем Спасибо.
Доброго времени суток! Andrej100, спасибо за исправленный файлик! А вот по поводу порога срабатывания пищалки вопрос интересный! К примеру у меня на SANVA она срабатывает при 9.6 V, и с одной стороны вроде бы пульт заранее предупреждает пользователя, а с другой стороны остаеться меньше времени на хоть какую нибуть работу пульта. А за напряжением и так постоянно следишь, ведь не пойдеш на поле с полусевшей аппаратурой. Так что лично для меня наверное это не сильно критично.
У меня вопрос по схеме. Там MOSI и MISO от SPI идут на ноги 2 и 3.
Смотрю даташит на 128 мегу. MOSI и MISO - 12,13 а 1,2 - RXD и TXD.
Даташит вроде родной. С другой стороны схема вроде много раз повторенная. Я дурак или чего-то не понимаю?
Почитайте в даташит как шьется мега128 по последовательному интерфейсу 😃
ATmega128 программитуется через JTAG или SPI. При программировании через SPI сигналы MOSI и MISO от программатора надо заводить на RXD и TXD порта UART0 (2 и 3 ножки) а не на SPI. Тактовая частота заводится на SCK (11 нога). Этой особенностью м128 отличается от других мег. SPI порт у ATmega128 при программировании не используется, за исключением тактового сигнала SCK.
ATmega128 программитуется через JTAG или SPI. При программировании через SPI сигналы MOSI и MISO от программатора надо заводить на RXD и TXD порта UART0 (2 и 3 ножки) а не на SPI. Тактовая частота заводится на SCK (11 нога). Этой особенностью м128 отличается от других мег. SPI порт у ATmega128 при программировании не используется, за исключением тактового сигнала SCK.
Сиречь на схеме все правильно и баран таки я. Thanx.
…
… может кто то все таки поможет, не из ленивых?
… Очень не хочется лезть во внутрь, все заново разбирать, резать…
Во! вы тоже ленивый. Не поверю, что у “нас” буржуйские запчасти есть, а у “Вас” их не продают.
Я Вам наводку дам. Ищите по тексту (вроде файл Меню.С) вот такие вещи:
lcd_line ( x,y,x1,y1,modе); // Обычная линия
lcd_dashline (x, y,x1, y1) ; // Пунктирная линия
lcd_rectangle(x, y, x1,y1,color); // Прямоугольник
lcd_fillrect (x, y, x1, y1,color); // закрашенный прямоугольник
lcd_setxy(x,y); // установка координат курсора
Ну и корректируете чиселки x,y,x1,y1 так, чтобы изображение на вашем дисплее помещалось. Вродебы и сложного ничего нет, даже “С” знать не обязательно.
Если в программировании не силен, то просто возьми исходники, и поиском с заменой замени во всем проекте “curmodel.trimmer[FLY_MODE]” - на “curmodel.trimmer[1]”, после этого откомпилируй и прошей заново контроллер. Тримера во всех режимах будут одинаковы. Так делать не совсем правильно, в плане “эстетики” программирования, но за то максимально просто, ошибиться негде.
Да нет ошибочка все таки вылезла!!!
После такой замены триммера действительно устанавливаются для всех режимов одинаково. Однако запоминаются только в режиме idle.
Ткните пожалуйста носом где копать в исходниках 😵
СИ потихоньку пытаюсь учить, но сам разобраться не могу.
Да нет ошибочка все таки вылезла!!!
После такой замены триммера действительно устанавливаются для всех режимов одинаково. Однако запоминаются только в режиме idle.Ткните пожалуйста носом где копать в исходниках 😵
СИ потихоньку пытаюсь учить, но сам разобраться не могу.
Обрати внимание на строчки:
в variables.c :
eeprom char trimmer[MAX_MODELS][MAX_MODES][4]; - в этом 3х мерном массиве сохраняются все тримера.
char trimmer[MAX_MODES][4]; - ну а в этом двумерном массиве хранятся значения текущих тримеров.
Ну и в остальных местах проекта что-то аналогичное…
Ты хочешь, чтобы во всех режимах у тебя тримера были одинаковыми. Не красивый путь - я тебе посоветовал, поставить вместо “переменной координаты”
в массиве единичку. Логично тоже сделать и в массиве епрома сделать тоже. Либо вобще исключить ненужное измерение.
З.Ы. можно почитать про многомерные массивы, структуры ( записи) в любой книжке, должно с этим вопросом стать попонятнее. max_modes - константа указывающая количество полетных режимов, т.е. реально равняется 3 (при объявлении массива указывает его размер), а FLY_MODE - переменная, - принимает разные значения в зависимости от того, какой режим включен…
Вопрос к тем, кто уже доработал передатчик: а как вы крепили дисплей в корпусе? Если можно , ответьте подробно!