Самодельный передатчик (часть 1)
Залез в код
по поводу смещения на пиксель - да стоит 7 а не 8 в этих меню. Поправил.
по поводу prop
в math.c он присваивается ad[7] которого не существует - при компиляции ворнинг
есть подозрение что он не идёт в канал в результате этого.
if (AD[4]>0) input[7]=AD[4]*Kmax[4]/10;
else input[7]=AD[7]*Kmin[4]/10;
по поводу калибровки prop
я вывел в эран калибровки все значения в цифре AD[x] и проч
ubd - если у тебя калибруется нормально то значит у тебя абсолютное значение с ацп значительно меньше 1023
А у меня со всех джойстиков максимум 1023. Бага в следующем
В коде рисуется палка длиной 50 писелей и маркер.
x2=(AD[4]-ADmin[4])*50/(ADmax[4]-ADmin[4])+23 ;
lcd_rectangle(23,50,73,52,1);
lcd_fillrect(x2-1,48,x2+1,54,1);
как видно при умножении чисел от 656 до 1023 на 50 результат переполняет двухбайтовую внутреннюю переменную.
поэтому следует либо уменьшить длину полозка до 31 либо както навязать longint в процессе вычисления -
я не спец в си.
Фокус!Желательно проверить весь код на переполнение в процессе вычислений.
x2=(AD[4]-ADmin[4])*50/(ADmax[4]-ADmin[4])+23 ;
у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃
у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃
эти пофиг. к ним присвоение в самом конце. Главное с какой точностью вычисления делаются.
каков у тебя диапазон измений AD[i] ?
После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.
Кстати наверно не стоит при копировании модели копировать и её название.
После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.
Привет! А они загадились не после выключения-включения передатчика? у меня такое было, и решилось просто, спасибо VAD64 ! (см. Сообщение #503)
Рекомендую активизировать в процессоре систему BOD. При выключении питания напряжение спадает плавно, а при критически низком напряжении процессор может делать странные вещи, в том числе - портить EEPROM. Включенный BOD будет переводить проц в RESET при падении напряжения ниже заданного порога.
Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?
Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?
насколько из тех постов я понял - оба. если питание у меги 5 вольт. сам ещё не шил.
кстати а никто не хочет дописать тахометр для этого проекта?
Voznjiklji tupije voprosi pro organi upravljenija v peredat4ike po sheme kotoraja nahoditsa v arhive CVProject_Final_S:
1: kuda podsoedinjatj konektor JP4?
2: kakova vida pereklju4a4elji cifrovih kanalov JP8?
i kakaja ih funkcija
3: Kakaja poljza i kak ispoljzovatj dvoinije rashodi?
4: na 4to vlijajut “MOD K1” i “MOD K2”???
5: spasoben lji etot moduljator rabotatj sovmestno s sprijemnjikam Graupner FM??
kak posovetujete ustanavljivatj organi upravljenija v puljte?
Imejetsa korpus ot Graupner FM314.
1: kuda podsoedinjatj konektor JP4?
Никуда.
2: kakova vida pereklju4a4elji cifrovih kanalov JP8?
i kakaja ih funkcija
Это тумблеры, а SW2.1 и SW2.2 тумблер трёх позиционный средний вывод тумблера на минус.
3: Kakaja poljza i kak ispoljzovatj dvoinije rashodi?
Можно оперативно в полёте уменьшить или увеличить расходы рулей, на тол-во процентов которое запрограммируешь заранее на тумблеры которые отвечают за расходы.
4: na 4to vlijajut “MOD K1” i “MOD K2”???
Это режимы полёта. Это примерно то же самое что выбрать другие настройки передатчика прямо в полёте. Как бы загружается другая модель. В принципе на первых порах эти тумблеры можно даже не выводить на корпус.
5: spasoben lji etot moduljator rabotatj sovmestno s sprijemnjikam Graupner FM??
Да. Он способен работать с любым стандартным передатчиком.
kak posovetujete ustanavljivatj organi upravljenija v puljte?
Imejetsa korpus ot Graupner FM314.
Как хочешь, т.е. как тебе удобнее. Я например, посмотрел как сделано на заводской компьютерной аппаратуре и сделал примерно так же.
А есть у кого разводка в eagle? а то спринтлейаут под линухом не идёт зараза. А макеток больше нету.
попробовал дописать осциллограф(точнее просто вывод сигнала) - добавил пункт меню в options
но выяснилось что если обращаться к ацп в этом пункте то оно либо вешается либо глюкает
Фокус, почему так?
Пришлось вынести это как калибровку на включение пульта.
с реальным сигналом попробовать ещё не успел
наводку от пальца кажет
void oscill (void)
{
unsigned char i;
int y0[95];
while (LEFT){
lcd_clear();
lcd_line(1,30,90,30,1);
for (i=1; i<95; i++){
read_adc(Rpop_contr);
y0[i]=ADCW;
}
for (i=1; i<95; i++) lcd_pixel(i,23-y0[i]/60,1);
lcd_refresh();
}
}
Т.к. помо чтения АЦП из этой подпрограммы, оно еще читается в прерывании. Причем 100 раз в секунду… поэтому и виснет.
Уважаемые rulll и focus!
IMHO, в опубликованных вами архивах не хватает копирайта, лицензии и реквизитов для приема благодарности (в денежном эквиваленте).
Уважаемые rulll и focus!
IMHO, в опубликованных вами архивах не хватает копирайта, лицензии и реквизитов для приема благодарности (в денежном эквиваленте).
Это точно.
Единственно что можно добавить для полноты опенсорса - порт на gcc
Единственно что можно добавить для полноты опенсорса - порт на gcc
А что это?
GNU compiller collection
очень хороший открытый компиллер
я работаю только с ним, хотя пару раз сталкивался с серьезными проблемами (возможно дело во мне)
портировать на него твою прогу-проще написать ее заного.
хотя пару раз сталкивался с серьезными проблемами (возможно дело во мне)
портировать на него твою прогу-проще написать ее заного.
Интересно, вчем же они заключаются? С трудом могу представить…
GNU compiller collection
очень хороший открытый компиллер
я работаю только с ним, хотя пару раз сталкивался с серьезными проблемами (возможно дело во мне)
портировать на него твою прогу-проще написать ее заного.
я портировал первую версию(неполную, для Меги16) Жениной прошивки на GCC на Мегу128.
резюме - РАБОТАЕТ. переделок - минимум.
2an2an:
у меня есть большая програма для мега128. в ней довольно много вычислений, так вот результат этих вычислений противоречит логике. при разных уровнях оптимизации программа работает абсолютно по разному. тот же код (вообще без изменений), скомпилированный для х86 и запущенный со слоем эмуляции выдает идеальный результат.
даже и не думайте о том что я не знаю как в си грамотно делить и умножать. дело не в этом
код я вам не покажу ни под каким предлогом 😲
2svb:
ну и отлично
то что проще заного написать-это мое имхо.
бай бай
2an2an:
у меня есть большая програма для мега128. в ней довольно много вычислений, так вот результат этих вычислений противоречит логике. при разных уровнях оптимизации программа работает абсолютно по разному. тот же код (вообще без изменений), скомпилированный для х86 и запущенный со слоем эмуляции выдает идеальный результат.
даже и не думайте о том что я не знаю как в си грамотно делить и умножать. дело не в этом
код я вам не покажу ни под каким предлогом 😲
Я уверен, что в этом коде есть ошибки. Если Вы стесняетесь показать конкретно этот код, может быть Вы сможете изготовить пример кода демонстрирующий этот “феномен”? Думаю, что если Вы только попытаетесь написать пример, то сами найдете ошибку…
я портировал первую версию(неполную, для Меги16) Жениной прошивки на GCC на Мегу128.
резюме - РАБОТАЕТ. переделок - минимум.
вы не поделитесь ? хочу под WinAVR.
Каким программатором пользуетесь, разработчики? для ATmega128…