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

yura_v

Залез в код
по поводу смещения на пиксель - да стоит 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 в процессе вычисления -
я не спец в си.

Фокус!Желательно проверить весь код на переполнение в процессе вычислений.

focus

x2=(AD[4]-ADmin[4])*50/(ADmax[4]-ADmin[4])+23 ;

у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃

yura_v
focus:

у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃

эти пофиг. к ним присвоение в самом конце. Главное с какой точностью вычисления делаются.
каков у тебя диапазон измений AD[i] ?

После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.

Кстати наверно не стоит при копировании модели копировать и её название.

jon_bear
yura_v:

После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.

Привет! А они загадились не после выключения-включения передатчика? у меня такое было, и решилось просто, спасибо VAD64 ! (см. Сообщение #503)

ubd

Рекомендую активизировать в процессоре систему BOD. При выключении питания напряжение спадает плавно, а при критически низком напряжении процессор может делать странные вещи, в том числе - портить EEPROM. Включенный BOD будет переводить проц в RESET при падении напряжения ниже заданного порога.

Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?

yura_v
ubd:

Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?

насколько из тех постов я понял - оба. если питание у меги 5 вольт. сам ещё не шил.

кстати а никто не хочет дописать тахометр для этого проекта?

Modris

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.

ubd

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.

Как хочешь, т.е. как тебе удобнее. Я например, посмотрел как сделано на заводской компьютерной аппаратуре и сделал примерно так же.

yura_v

А есть у кого разводка в eagle? а то спринтлейаут под линухом не идёт зараза. А макеток больше нету.

yura_v

попробовал дописать осциллограф(точнее просто вывод сигнала) - добавил пункт меню в 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();
}
}

focus

Т.к. помо чтения АЦП из этой подпрограммы, оно еще читается в прерывании. Причем 100 раз в секунду… поэтому и виснет.

Korzoff

Уважаемые rulll и focus!

IMHO, в опубликованных вами архивах не хватает копирайта, лицензии и реквизитов для приема благодарности (в денежном эквиваленте).

yura_v
Korzoff:

Уважаемые rulll и focus!

IMHO, в опубликованных вами архивах не хватает копирайта, лицензии и реквизитов для приема благодарности (в денежном эквиваленте).

Это точно.
Единственно что можно добавить для полноты опенсорса - порт на gcc

focus

Единственно что можно добавить для полноты опенсорса - порт на gcc

А что это?

lamobot

GNU compiller collection
очень хороший открытый компиллер
я работаю только с ним, хотя пару раз сталкивался с серьезными проблемами (возможно дело во мне)
портировать на него твою прогу-проще написать ее заного.

an2an
lamobot:

хотя пару раз сталкивался с серьезными проблемами (возможно дело во мне)
портировать на него твою прогу-проще написать ее заного.

Интересно, вчем же они заключаются? С трудом могу представить…

svb
lamobot:

GNU compiller collection
очень хороший открытый компиллер
я работаю только с ним, хотя пару раз сталкивался с серьезными проблемами (возможно дело во мне)
портировать на него твою прогу-проще написать ее заного.

я портировал первую версию(неполную, для Меги16) Жениной прошивки на GCC на Мегу128.
резюме - РАБОТАЕТ. переделок - минимум.

lamobot

2an2an:
у меня есть большая програма для мега128. в ней довольно много вычислений, так вот результат этих вычислений противоречит логике. при разных уровнях оптимизации программа работает абсолютно по разному. тот же код (вообще без изменений), скомпилированный для х86 и запущенный со слоем эмуляции выдает идеальный результат.
даже и не думайте о том что я не знаю как в си грамотно делить и умножать. дело не в этом
код я вам не покажу ни под каким предлогом 😲

2svb:
ну и отлично

то что проще заного написать-это мое имхо.

бай бай

an2an
lamobot:

2an2an:
у меня есть большая програма для мега128. в ней довольно много вычислений, так вот результат этих вычислений противоречит логике. при разных уровнях оптимизации программа работает абсолютно по разному. тот же код (вообще без изменений), скомпилированный для х86 и запущенный со слоем эмуляции выдает идеальный результат.
даже и не думайте о том что я не знаю как в си грамотно делить и умножать. дело не в этом
код я вам не покажу ни под каким предлогом 😲

Я уверен, что в этом коде есть ошибки. Если Вы стесняетесь показать конкретно этот код, может быть Вы сможете изготовить пример кода демонстрирующий этот “феномен”? Думаю, что если Вы только попытаетесь написать пример, то сами найдете ошибку…

1 month later
Anton_M
svb:

я портировал первую версию(неполную, для Меги16) Жениной прошивки на GCC на Мегу128.
резюме - РАБОТАЕТ. переделок - минимум.

вы не поделитесь ? хочу под WinAVR.

Alesandro

Каким программатором пользуетесь, разработчики? для ATmega128…