Это нюанс реализации декодера. Можно решить задачу в лоб, сделать перывание от таймера 100кГц и с разрешением 100мкс считать длительность импульсов, результат счета будет где-то от 0 до 127-150 в зависимости от ширины. Минус такого подхода, жрет 20% ресурсов контроллера. Поэтому решил взять другой вариант. Обработка прерывания от портов ввода-вывода при изменении состояния. Прерывание от портов сработало, таймер запущен. Таймер тикает 4 МГц, с разрешением 250нс, полный период 26мс. Сработало второй раз прерывание на том же порту, считываем показание счетчика таймера и получаем искомую длину. Но помимо длинны надо еще период, поэтому счетчик таймера продолжает тикать дальше. Снова прерывание, закончили считать период. Вроде бы и можно обнулить счетчик таймера, но беда в том, что на другом канале может идти импульс в это время и надо искать когда данные всех каналов прошли. Это вызывает некоторую сложность в реализации декодера, пока этого хочу избежать.
А что кодируется периодом? По моим понятиям длины импульса вполне достаточно чтобы понять, что идет на серву… Некоторые коптероводы и 400 Hz запихивают на регулятор - и вполне щасливы…
А что кодируется периодом? По моим понятиям длины импульса вполне достаточно чтобы понять, что идет на серву… Некоторые коптероводы и 400 Hz запихивают на регулятор - и вполне щасливы…
Ну вот примерно для такого случая, чтобы можно было декодировать и 400Гц управление, опять же уплыла частота приемника от температуры - поплыли длительности импульса и периода пропорционально, подсчет периода решит эту проблему.
че то сомневаюсь в целесообразности сих извратов при футабъем приемнике…
че то сомневаюсь в целесообразности сих извратов при футабъем приемнике…
Приемники будут любые, не только Futaba
Сам в некоторых сомнениях поэтому и затеял это обсуждение
Еще один вариант делать калибровку аппаратуры РУ при ее смене. Выставлять минимум, максимум длительности импульса и период.
Ну раз приемники любые - то калибровка пригодится, мало ли как пульт настроен… Но период учитывать - не понимаю зачем
Сделал захват и декодирование 4-х PPM каналов. Период и правда не стал считать.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"4405a56c3df955007778c8e5":{"_id":"4405a56c3df955007778c8e5","hid":12374,"name":"SGordon","nick":"SGordon","avatar_id":null,"css":""},"51ae839c3df9550077735f6e":{"_id":"51ae839c3df9550077735f6e","hid":157099,"name":"pitman","nick":"pitman","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":"53a390b73df955007704ce38","hid":368844,"title":"Futaba R617FS PPM декодер","views_count":2048,"last_post_counter":15,"cache":{"post_count":15,"first_post":"53a390b73df955007704d1fe","first_ts":"2014-06-20T01:39:03.000Z","first_user":"51ae839c3df9550077735f6e","last_post":"53ad12e43df955007704d21a","last_post_hid":15,"last_ts":"2014-06-27T06:44:52.000Z","last_user":"51ae839c3df9550077735f6e"},"st":1,"section":"61c9a54c3df9550077bb50ba"},"subscription":null,"pagination":{"total":15,"per_page":25,"chunk_offset":7},"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"}