-
- в MPLAB есть кодогенератор, он и это генерит. Правда не потокобезопасно. - IBAH(22.08.2024 18:30)
- Вот проект под dsPIC33EP512GP504. Принимает, обрабатывает и
передаёт строки с аппаратным контролем потока RTS/CTS (иначе не
получалось выйти на высокую скорость обмена с Windows без потерь).
Писал давно, деталей не помню, но комментариев там масса, должно
быть всё понятно. До 1.5Мбит/с обмен был стабильный. Больше не
получалось - может, проблемы на стороне USB-UART CP2102, может ещё
что. Но мне больше и не надо было. Обработка в прерываниях. Зачем
Delay в UART'e - не Nikolay_Po(23 знак., 22.08.2024 11:53, ссылка)
- а в чём трабл самому написать? влёгкую делал мегабирный обмен даже на меге16 , буфер, протокольный диалоговый обмен с парсингом заголовков, ретреями, контролем таймаутов и прочим, CRC16. и всё на фоне ещё довольно ресурсоёмких задач и в среде многозадачного планировщика. Никаких проблем не наблюдалось. Но да, "ассемблер" :)) - Adept(23.08.2024 01:48)
- Спасибо, изучу. - Ig_B(22.08.2024 12:33)
- Другие прерывания работают? - Kpoк(22.08.2024 09:39)
- Давно не пользовался MPLABом... Ig_B(619 знак., 22.08.2024 10:38)
- Ну, моё выше точно работает. И хорошо комментировано. Сейчас глянул
- и всё понял. Дилей там только на время инициализации UART и
отправки заголовка данных .csv. Остальное, включая обработку
RTS/CTS - в прерываниях. Ошибки тоже принимаются и сохраняются в
буфере, в старшем байте слова. - Nikolay_Po(22.08.2024 12:15)
- Спасибо, сразу увидел свой косяк в прерывании на прием. Ig_B(84 знак., 22.08.2024 15:40)
- Вы невнимательны. U1TXIE в прерывании передачи выключается в ноль, если данные для передачи закончились. Прерывание выключает самое себя, чтобы не вызваться по опустошению аппаратного буфера, когда данных на передачу больше нет. - Nikolay_Po(22.08.2024 19:46)
- Может, я там смотрел, разрешено ли прерывание ещё, или уже нет... Не вспомню. Может, ошибка? Э Nikolay_Po(153 знак., 22.08.2024 19:34)
- Спасибо, сразу увидел свой косяк в прерывании на прием. Ig_B(84 знак., 22.08.2024 15:40)
- Ну, моё выше точно работает. И хорошо комментировано. Сейчас глянул
- и всё понял. Дилей там только на время инициализации UART и
отправки заголовка данных .csv. Остальное, включая обработку
RTS/CTS - в прерываниях. Ошибки тоже принимаются и сохраняются в
буфере, в старшем байте слова. - Nikolay_Po(22.08.2024 12:15)
- Давно не пользовался MPLABом... Ig_B(619 знак., 22.08.2024 10:38)