Немного оффтопну сначала: Юзал LPC2129, ну и пересев на LPC1768, перекинул рутину приема DMX оттуда туда. Ну а что, одинаковая периферия, подумал я. Не заработало. Оказывается в LPC1768 флаг BI поднимается вместе с флагом FE. В LPC2129 поднимался только BI.
А теперь к вопросу: Хочу заюзать DMA для приема DMX512. Но нужно отлавливать начало, т.е. break-импульс. Как сделать? Софтварно ловить break и включать DMA на прием 512 байтов? А что, если ошибка? Или есть возможность заставить DMA хватать LSR помимо RBR и софтварно уже анализировать массив LSRов? Тогда этот метод ничуть не лучше обычного софтварного.
Может есть какие-то решения? Прошу поделиться.
|