ВУЗ:
Составители:
автоинициализации будет включен, после вывода NPoint отсчетов плата вновь
продолжит вывод из буфера, начиная с адреса
Data до тех пор, пока канал ПДП
и плата не будут остановлены при помощи функции
DMA_OFF().
Пример:
main()
{
int i, *Data, Chan=0, NPoint=10000, Rate=10, Dmm=1;
//установим указатель на старшую страницу памяти
Data=(int far *) 0õ90000000;
// генерируем синусоидальный сигнал
for(i=0; i < Npoint; i++) Data[i]=2000.*sin(i*М_РI/80.);
// установим первый ЦАП
SET_DA_NUMBER(0, 0);
// запустим ПДП на вывод на ЦАП
DADMASTREAM (Data, Npoint, Chan, Rate, Dmm);
// поскольку DMM = 1 ПДП будет выводить вечно на ЦАП
// пока его не остановят
// выводим до тех пор, пока не будет нажата клавиша
while (!kbhit());
// выключим плату и контроллер ПДП
DMA OFF();
}
5.7.7. Функция выключения контроллера ПДП
void DMA_OFF(void);
Назначение. Функция для выключения контроллера ПДП. Ее необходимо
вызывать, когда работа с контроллером ПДП завершена. Если контроллер был переведен
в режим ввода с автоинициализацией и не был выключен, то после выхода из
программы, скорее всего, произойдет зависание компьютера.
5.7.8. Функция проверки завершения ввода по ПДП
int DMA_TEST(void);
Назначение. Возвращает ноль, если ввод по ПДП не завершен и единицу — в
противном случае. Данную функцию можно применять только при вводе с
выключенным режимом автоинициализации. При выключенном режиме
автоинициализации счетчик канала ПДП устанавливается в
-1 после завершения ввода,
функция
DMA_TEST() проверяет значение счетчика на -1 и, если оно не равно -1, то
возвращает ноль. При включенном режиме автоинициализации счетчик ПДП никогда не
становится равным
-1, поэтому в этом режиме функция DMA_TEST() будет всегда
возвращать ноль.
5.7.9.Проверка базового адреса буфера для ПДП
int DMA_ADDRESS_TEST(int *Data, int NPoint);
Назначение. Функция возвращает ноль, если буфер с базовым адресом Data и
размером
NPoint слов не пересекает страницу ПДП.
Параметры:
1. Data — проверяемый базовый адрес буфера;
2.
Npoint — размер буфера.
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »