Простой регулятор коллекторного двигателя с реверсом на ATtiny25
Может мой опыт пригодится, кину свои пять копеек.
У меня в LRS канальные импульсы считываются без внешних прерываний, всё построено на циклах while, 16-и разрядный таймер молотит с частотой 1/8 тактового генератора, то есть 1000кГц, то есть 1 тик в микросекунду. Вот код, из комментов думаю всё понятно:
while(!PPM_IN){};//дожидаюсь высокого уровня и запускаю счётчик
TCNT1H=0;
TCNT1L=0;
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
while(PPM_IN){};//дожидаюсь низкого уровня и считываю его
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
PWML = TCNT1L;//подсчёт длительности канала
PWMH = TCNT1H;
в случае 16 разрядного таймера да, а у аттини*5 только два восьми разрядных
У автора в коде есть место где он по переполнению таймера инкрементирует переменную которая за длину импульса отвечает. а как это дальше масштабируется и пересчитывается я не понял((
Тогда можно сделать две переменных, в одной щитать кол-во переполнений, в другой значение таймера после спада импульса
наверно так и сделаю. по крайней мере попытаюсь) потому что не всегда понимаю что происходит в коде)) хорошо осциллограф есть можно посмотреть что на что влияет
Или еще один вариант, написать программный счетчик (на временных задержках в 1 мкс), Если подразумевается использование коллекторного регулятора на земноводной модели, то и 8-и битного разрешения за глаза
все оказалось гораздо проще) у топик стартера в коде есть строчка pulse_length=(count_length<<8)+temp;
temp это текущее значение таймера,
counb_lengt это количество переполнений. как раз то что нужно было осознать. и без Вас наверно бы долго думал что к чему\\
на земноводной модели, то и 8-и битного разрешения за глаза
модель земноводная, микроэко для бассейнов. да и просто корабль тоже пойдет… сегодня перепишу заново посмотрю что получится
Удачи
Так как я в пиках ничего не понимаю, то решил заменить PIC12F675 на ATtiny25…
Сама схема (особенно выходной каскад) интересна для слаботочных применений на транзисторах с малой емкостью затвора, поскольку для сильноточных управление верхними ключами становится проблематичным (их вообще лучше переключать только при реверсировании). Но при этой схеме на управление выходами нужно всего две лапки контроллера. Ресурсы тини25 тут явно избыточны, достаточно тини5 😃 Это вариант с питанием от шины приемника (2-3А) и без отсечки:
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"3f350f403df9550077795f7d":{"_id":"3f350f403df9550077795f7d","hid":2045,"name":"V_Alex","nick":"V_Alex","avatar_id":null,"css":""},"518e78793df9550077736bf0":{"_id":"518e78793df9550077736bf0","hid":152538,"name":"Alexey2","nick":"Alexey2","avatar_id":null,"css":""},"529f6f423df955007772f224":{"_id":"529f6f423df955007772f224","hid":187889,"name":"Евгеньич","nick":"Евгеньич","avatar_id":null,"css":""},"5666d9363df95500777167f0":{"_id":"5666d9363df95500777167f0","hid":241910,"name":"ooogo","nick":"ooogo","avatar_id":null,"css":""}},"settings":{"can_see_ip":false,"can_report_abuse":false,"can_see_hellbanned":false,"forum_can_view":true,"forum_can_reply":false,"forum_edit_max_time":30,"forum_can_close_topic":false,"forum_show_ignored":false,"forum_mod_can_delete_topics":false,"forum_mod_can_hard_delete_topics":false,"forum_mod_can_see_hard_deleted_topics":false,"forum_mod_can_edit_posts":false,"forum_mod_can_pin_topic":false,"forum_mod_can_edit_titles":false,"forum_mod_can_close_topic":false,"can_vote":false,"forum_mod_can_add_infractions":false,"forum_topic_title_min_length":10,"forum_reply_old_post_threshold":30,"votes_add_max_time":168,"forum_show_post_interval":7,"can_see_deleted_users":false},"section":{"_id":"61c9a54c3df9550077bb50ba","hid":8,"title":"Самодельная электроника, компьютерные программы","parent":"61c9a54c3df9550077bb50f3","description":"Софт для моделирования и черчения, самодельные электронные устройства.","is_category":false,"is_votable":true,"is_writable":true,"cache":{"topic_count":2667,"post_count":48274,"last_post":"6757f71af9bb00ab89de832d","last_topic":"6757f71af9bb00ab89de832c","last_topic_hid":572572,"last_topic_title":"DVB-T2 для FPV видео","last_ts":"2024-12-10T08:08:58.227Z","last_user":"5b0062d13df95500776fe377"}},"topic":{"_id":"56b788333df9550077e6b22e","hid":445179,"title":"Простой регулятор коллекторного двигателя с реверсом на ATtiny25","views_count":5666,"last_post_counter":13,"cache":{"post_count":13,"first_post":"56b788333df9550077e6b57b","first_ts":"2016-02-07T18:08:51.000Z","first_user":"5666d9363df95500777167f0","last_post":"576fd0a23df9550077e6b595","last_post_hid":13,"last_ts":"2016-06-26T12:54:58.000Z","last_user":"5666d9363df95500777167f0"},"st":1,"section":"61c9a54c3df9550077bb50ba"},"subscription":null,"pagination":{"total":13,"per_page":25,"chunk_offset":3},"posts_list_before_post":["paginator","datediff"]},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}