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

UptoLike

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

Переменная 'AdDmm' определяет режим работы контроллера ПДП компьютера. Она
должна быть равна
0 для однократной передачи заказанного блока данных и 1 для
циклического ввода. Аналогично переменная '
DaDmm' определяет режим вывода на
ЦАП (однократный или циклический).
Параметры:
1. AdDataадрес буфера, в который будут помещаться вводимые данные с
АЦП;
2.
AdNkadrчисло вводимых кадров;
3.
Channelsцелочисленный массив с номерами каналов АЦП;
4.
Nchчисло каналов АЦП;
5.
Rateинтервал ввода-вывода;
6.
AdDmmвключение автоинициализации канала ПДП АЦП;
7.
DaDataадрес массива, из которого будут считываться данные, выводимые
на ЦАП;
8.
DaNkadrразмер массива, выводимого на ЦАП;
9.
DaDmmвключение автоинициализации канала ПДП ЦАП;
10.
DaNumberзарезервирован.
Пример
:
//В примере осуществляется ввод с четырех каналов АЦП одновременно с генерированием
//синусоидального сигнала на выходе ЦАПа с интервалом 100 мкс
#include <math.h>
main()
{
int I, *Data, Npoint=500, Channels[16]={0,1,2,3};
int Nch=4, Rate=100, DaNKadr=1000, DaNumber=0;
int AdDmm=1, DaDmm=1;
// установим указатель на старшую страницу памяти
Data=(int far *) 0õ90000000;
// генерируем синусоидальный сигнал
for(I=0, I < 1000, I++) Data[I]=2000.*sin(I*M_PI/80. );
// запустим ввод с АЦП одновременно с выводом на ЦАП
DMA_ALL_DA(Data+1000, Npoint, Channels, Nch, Rate, AdDmm, Data, DaNKadr, DaDmm,
DaNumber);
// ждем нажатия на клавишу
while (!kbhit());
// выключим контроллер ПДП
DMA_OFF();
}
5.7.6. Синхронный вывод на ЦАП по каналу ПДП
void DADMASTREAM(int *Data, int Npoint, int Rate, int Dmm );
Назначение. Выводит массив отсчетов из массива Data на установленный ЦАП по
каналу ПДП.
Параметры:
1.
Data - целочисленный массив для данных;
2. Npoint - число выводимых отсчетов (1 <= NPoint <= 32768);
3. Rate
- интервал вывода (от 1 до Oxffff);
4. Dmm
- параметр, включающий режим автоинициализации. Если режим