Как прием так и последующая генерация ШИМ импульсов- связаны с точным определением длины импульсов, что не всегда возможно при наличии программных прерываний, которые вносят искажения в процедуру.
Прерывания по таймеру для этого и используются, ШИМ - идеальна. А вот что за “аппаратные меры” интересно узнать.
Прерывания по таймеру для этого и используются, ШИМ - идеальна. А вот что за “аппаратные меры” интересно узнать.
Пока это все на бумаге- может выглядеть очень красиво.
Но если вы подключите реальную серву к реальной плате- почти наверняка услышите противное з…з…з
Вот это и есть джиттер 😦
ппаратн
Даташит читайте- там про это все написано:)
А вот что за “аппаратные меры” интересно узнать.
Тут, наверное, речь идёт об аппаратном модуле Input Capture (иногда называется по-другому). Идея в том, что он по фронту на входном пине запоминает значение счётчика. Таким образом можно очень точно измерять ширину импульса, поскольку на этот процесс прерывания не влияют. У raspberri таких модулей нет, зато у него очень высокая тактовая частота, поэтому джиттер времени от прихода фронта до собственно исполнения кода обработчика прерывания может быть достаточно небольшим. Т.е. всё равно может обеспечиваться необходимая точность.
Допустим, мы хотим иметь разрешение измерения серdосигнала в 12 бит, т.е. 4096 отсчётов. 1 мс / 4096 = 244 нс. Джиттер должен быть меньше этой величины. Т.е. время до исполнения обработчика не должно превышать 244 нс. Допустим тактовая частота у нас 1 ГГц и мы в среднем исполняем команду за 2 такта. Время исполнения одной команды 2 нс. Таким образом за 244 нс мы можем исполнить 122 команды. Если длина любого обработчика не превышает 122 команды, тогда мы укладываемся. Я сильно сомневаюсь что в Линуксе это возможно. Но идея здесь в том, что можно оценить разрешение, которое мы получим, если будем пользоваться прерыванием по фронту на GPIO.
А вообще тема какая-то психоделическая, OP, кажется, на каких-то своих волнах…
речь идёт об аппаратном модуле Input Capture
Воистину!
Я то в эту проблему воткнулся лет 10 назад, начав вплотную заниматься автопилотом 😃
Причем в Протеусе- все шоколадно, а когда сделал реальную плату- все и зажужжало:(
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"405ec5c83df9550077794e80":{"_id":"405ec5c83df9550077794e80","hid":3166,"name":"RW9UAO","nick":"RW9UAO","avatar_id":null,"css":""},"41f4feac3df9550077792636":{"_id":"41f4feac3df9550077792636","hid":5798,"name":"Shavelsky","nick":"Shavelsky","avatar_id":null,"css":""},"484a1c243df955007777a2b0":{"_id":"484a1c243df955007777a2b0","hid":35286,"name":"blade","nick":"blade","avatar_id":null,"css":""},"4b98340f3df9550077763668":{"_id":"4b98340f3df9550077763668","hid":62554,"name":"Vovets","nick":"Vovets","avatar_id":null,"css":""},"5a5a82673df9550077700eb0":{"_id":"5a5a82673df9550077700eb0","hid":318618,"name":"Skyfreec","nick":"Skyfreec","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":"5a6057583df9550077cce964","hid":514959,"title":"Аналоговый вход с ацп","views_count":1176,"last_post_counter":18,"cache":{"post_count":18,"first_post":"5a6057583df9550077ccec86","first_ts":"2018-01-18T08:14:16.000Z","first_user":"5a5a82673df9550077700eb0","last_post":"5a6428ef3df9550077cceca8","last_post_hid":18,"last_ts":"2018-01-21T05:45:19.000Z","last_user":"484a1c243df955007777a2b0"},"st":1,"section":"61c9a54c3df9550077bb50ba"},"subscription":null,"pagination":{"total":18,"per_page":25,"chunk_offset":12},"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"}