Устройства ввода-вывода аналоговых и дискретных сигналов для компьютерных систем. Засов В.А - 32 стр.

UptoLike

Составители: 

while(!DMA_TEST());
// выключим плату и контроллер ПДП
DMA_OFF();
}
5.7.4. Многоканальный ввод в режиме ПДП
void DMAALL(int *Data, int NPoint, int *Channels, int Nch, int Rate, int Dmm);
Назначение. Инициализирует контроллер ПДП и плату АЦП в режим
многоканального ввода с
Nch каналов, указанных в массиве Channels, числа NPoint
кадров в массив
Data. После выхода из функции плата начинает вводить данные по
каналу ПДП. Для проверки завершения ввода и доступа к счетчику контроллера ПДП,
позволяющего узнать, сколько данных было введено, используются функции
DMA_TEST() или DMA_COUNTER().
Параметры:
1. Dataцелочисленный массив для данных;
2. Npointчисло вводимых кадров (1 <= NPoint*Nch<= 0xffff);
3. Channelsцелочисленный массив, содержащий номера каналов АЦП, с
которых будет производится ввод;
4.
Nchчисло вводимых каналов;
5. Rateинтервал ввода (от 1 до 0xffff);
6.
Dmmпараметр, включающий режим автоинициализации. В случае, если
режим автоинициализации будет включен, после ввода
NPoint кадров плата
вновь продолжит ввод в буфер, начиная с адреса Data, до тех пор, пока канал
ПДП и плата не будут остановлены при помощи функции
DMA_OFF().
Пример:
//Ввод по ПДП по четырем каналам
main()
{
int i, *Data, Channels[16]={0,1,2,3}, Npoint =100, Rate=20;
int Dmm=0, Nch=4;
// установим указатель на старшую страницу памяти
Data=(int far *) 0õ90000000,
// запустим ПДП на ввод 4 каналов АЦП с интервалом
// 20 мкс между кадрами
DMAALL(Data, NPoint, Channels, Nch, Rate, Dmm);
//дождемся завершения ввода
while(!DMA_TEST());
// выключим плату и контроллер ПДП
DMA_OFF();
}
5.7.5. Одновременный ввод с АЦП и вывод на ЦАП
void DMA_ALL_DA( int *AdData, int AdNkadr, int *Channels, int Nch, int Rate, int
AdDmm, int *DaData, int DaNkadr, int DaDmm, int DaNumber);
Назначение. Функция покадрового считывания ‘AdNkadr кадров с аналоговых
каналов в буфер ОЗУ по адресу
AdData с первых 'Nch' каналов АЦП в массиве Channels
с интервалом '
Rate' мкс между кадрами использует канал ПДП с одновременным
выводом на ЦАП
'DaNumber' массива DaData размером DaNkadr по каналу ПДП.