HK-40A BSEC прошивка под heli или изучаем atmega8

Aleksey_Gorelikov

Бернард Конзе выложил исходники рега еще лет 8 назад. Можно у него подглядывать. На квадракоптерные прошивки тожоже ссылки на форуме встречаются…

avisenja

Иногда посматриваю на энти исходы;), но может чего и не вижу, не знаю, асм меги и пика разный, я за последние 3 месяца возни с мегами если в общей сложности - недельку😒 с ней позанимался, и то хорошо.
Контроллеры в квадратиках больше работают на быструю отработку изменения частоты вращения - и это оправданно, на связь через уарт или и2с, не контролируя напряжение и температуру, много бибиков:) прописано, есть реверс. Но при этом, пренебрегая потерей времени - синхронизацию ловят не выходя из прерывания по окончанию ШИМ, в тупую щелкая выход компаратора на - да/нет по циклу и плюс таймер на случай выхода за предел ожидаемого времени переключения обмоток.
Для вертика, главное сберечь механику, ротор то всёж - ого-го, да вы и сами знаете, чего объяснять…

Вот мой черновик(очень грязный), всё что считалось с моего проца, фото и прочая лабуда.

hk40a 1.ziphk40a 2.zip

avisenja

Разобрался с прерыванием компаратора😁, для синхронизации переключения обмоток и ещё пару ошибок в циклах выловил, да… пикушный асм намного проще!!!

Моторчик начал крутиться уже вполне прилично.

avisenja

Нашёл ошибку в схемке.
Вложил цифро/буквенную маркировку резисторов, мож кому пригодиться.

HobbyKing-40A my.zip

avisenja

Народ!!! Есть вопрос.
Можно сделать код короче, я плохо знаю меговский АСМ, тока учусь😵, писал по анологии с пиковским АСМом

;------------------
; delim na 6 0/1500us -> 00/FF
lsr yh ; 2
ror yl ;
lsr yh ; 4
ror yl ;
lsr yh ; 8
ror yl ;
clr i_temp1 ;
add i_temp1, yl ; +
lsr yh ; 16
ror yl ;
lsr yh ; 32
ror yl ;
add i_temp1, yl ; ++
lsr yh ; 64
ror yl ;
add i_temp1, yl ; +++
brcs int0_mnogo ; perexod ecli resultat > FF

Pantryk

Есть вариант написать это на С и посмотреть как компиляторы делают тоже самое. Мб будет компактнее. А что собственно делает этот кусок?, а то я как-то не смог расшифровать первый комментарий.

avisenja

Это пересчет длительности РРМ от 0 до 1,5мс в код для ШИМ, это не самое страшное.

youtu.be/h1E_4dqkxrE

Для любопытствующих, мой * стенд * для испытаний над донором.😃