реклама на сайте
подробности

 
 
> Как работать с PDC у SAM7S?
Pasha 111
сообщение Jul 18 2006, 07:13
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Как я понял, для каждого контроллера (например usart'а) есть 2 буфера приёма и 2 буфера отправки.

Приём данных я делаю так:
Сначала указываю макс. размер данных и адрес памяти, куда класть.
Потом, при приёме данных, смотрю, на сколько изменилось число (на сколько уменьшилось) в регистре, куда я макс. размер данных положил.
Считываю это число байт слева от текущего места записи (т.е. ели массив имеет адрес 0x100, а записалось уже 8 байт, то считываю память по адресу 0x100-0x108).
Также делаю прерывание по переполнению буфера, где переношу указатель справа налево (т.е. зацикливаю запись по кругу). При считывании данных из буфера также учитываю этот момент.

А что делать с записью данных? Писать-то нужно их справа от текущего указателя, а он постоянно и независимо от меня, перемещается. Т.е. я могу записать данные, а часть байт останутся слева от указателя. Как вообще грамотно организовать работу с этими буферами приёма и отправки и зачем сделано по 2 таких буфера?

Сообщение отредактировал Pasha 111 - Jul 18 2006, 07:14
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 21:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01323 секунд с 7
ELECTRONIX ©2004-2016