Открываете даташит на контроллер, например - Attiny13a, находите раздел Register Summary. Там есть таблица с названиями регистров, их привязка к адресам и разбивка по битам с указанием имени каждого бита.
Соde Vision, Си или Assembler используют именно эти названия.
Как понять такие заклинания в CodeVisionAVR?
Качаем ПДФ-ку на контроллер.
Распечатываем оттуда две с половиной вещи:
Список регистров и карту памяти
Список ассэмблерных команд
Потом все это выкидываем в мусорку, берем arduino nano и делаём всё на ней 😃
ps:
вообще, это логические операции и побитовые сдвиги с использованием содержимого регистров. Это иногда имеет смысл, если надо сделать быстрый как понос код, но обсуждаемая задача не требует от контроллера максимального быстродействия. Можно все в человекопонятных переменных решать, даже с плавающей точкой.
Потом все это выкидываем в мусорку, берем arduino nano и делаём всё на ней
Это не особенности CVR, обычный C.
ADCSRA|=(1<<ADIF)
В регистре ADCSRA (по сути, это обычная переменная с фиксированным адресом) устанавливается бит с порядковым номером ADIF. Остальные биты не меняются.
CLKPR=(0<<CLKPCE) | (1<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
В регистре CLKPR устанавливается бит CLKPS3, остальные сбрасываются.
Замечу, что вычисление значения делает прекомпилятор и в итоговой программе будет уже готовая константа.
Такая форма записи нужна исключительно для удобства программиста, более наглядна, чем просто число.
Берём ардуину-нано, впихиваем в неё вот это, подтыкаем к компу и радуемся.
Цена вопроса триста рублёв.
Вот еще вариант для любителей STM32: хабр.
За пол часа напильником выпиливается анализ PPM и запускается ADC на 4 канала. В системе контроллер определяется как джойстик. Все работает.
Ардуины я купил для других целей. А Тину-13 хочу победить. Столкнулся с такой неприятностью: при входном напряжении меньше примерно 1/3 напряжения питания АЦП выдаёт нули во всех разрядах, потом работает “по теории”. Проверил три экземпляра. Может ли кто-нибудь сталкивался с похожими задачами?
Победил!
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"3f350f403df9550077795f7d":{"_id":"3f350f403df9550077795f7d","hid":2045,"name":"V_Alex","nick":"V_Alex","avatar_id":null,"css":""},"3ff69d1e3df95500777955a3":{"_id":"3ff69d1e3df95500777955a3","hid":2659,"name":"ADF","nick":"ADF","avatar_id":null,"css":""},"47ce0c933df955007777d11e":{"_id":"47ce0c933df955007777d11e","hid":32219,"name":"msv","nick":"msv","avatar_id":null,"css":""},"4aca93473df9550077769578":{"_id":"4aca93473df9550077769578","hid":54585,"name":"Shinshilla","nick":"Shinshilla","avatar_id":null,"css":""},"4d55c04d3df955007775630b":{"_id":"4d55c04d3df955007775630b","hid":80749,"name":"Dinotron","nick":"Dinotron","avatar_id":null,"css":""},"4f8f3d0e3df95500777454e6":{"_id":"4f8f3d0e3df95500777454e6","hid":118056,"name":"Dhole","nick":"Dhole","avatar_id":null,"css":""},"588a04663df9550077709f28":{"_id":"588a04663df9550077709f28","hid":268747,"name":"VVishen","nick":"VVishen","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":2666,"post_count":48273,"last_post":"65f92eb7c68e4ffcbcbdffa9","last_topic":"5a9828483df9550077cbbef3","last_topic_hid":517779,"last_topic_title":"Самодельный Futaba CIU-2","last_ts":"2024-03-19T06:20:39.517Z","last_user":"4f3e22e13df955007774805c"}},"topic":{"_id":"584d2c923df9550077d8afa9","hid":481478,"title":"Пульт для симуляторов","views_count":2317,"last_post_counter":21,"cache":{"post_count":21,"first_post":"584d2c923df9550077d8b3e2","first_ts":"2016-12-11T10:38:10.000Z","first_user":"4aca93473df9550077769578","last_post":"593981253df9550077d8b424","last_post_hid":21,"last_ts":"2017-06-08T16:53:57.000Z","last_user":"4aca93473df9550077769578"},"st":1,"section":"61c9a54c3df9550077bb50ba"},"subscription":null,"pagination":{"total":21,"per_page":25,"chunk_offset":13},"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"}