kentawrik

Dma В Микроконтроллерах Nec

3 сообщения в этой теме

kentawrik    0

Такой вопрос:

МК 1146

необходимо выводить 16 бит в порты со стробированием, периодичность вывода строго нормирована.

думаю сделать так:

настроить 2 канала DMA для вывода в нужные порты

настроить таймер 0 для стробирования

сделать триггером для обоих каналов DMA прерывание от таймера 0.

при прерывании от таймера - по идее должны отработать циклы DMA и по таймеру я делаю строб на одном из пинов.

Отсюда вопрос: успеет ли отработать DMA на вывод?

И вообще где узнать каков приоритет обработки данных в МК. (может не настолько силен в английском - но в даташите не нашел)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Migray    5

Если чесно, то не совсем понятно, зачем тут DMA

Данная фича полезна для пересылки больших объемов данных, а на 2 байта ...

Боюсь что больше тормозов получится, со всеми инициализациями. Лады, гляну, по возможности.

Вообще надо будет посмотреть, можно-ли будет одно слово перекинуть в 2 порта сразу.

Тупо воспользоваться тем, что в адресном пространстве специальных регистров они лежат рядом, и объединить их в одну структуру.

Не уверен, что этот номер пройдет, но попробовать можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kentawrik    0

В том-то и дело что надо выводить группу данных кадрами по 4 килобайта и четко через определённые промежутки времени. При этом МК будет заниматься другой работой - готовить следующие кадры.

я посчитал что проще будет через DMA вывод делать. Как раз на производительность более благотворно влиять будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас