ВУЗ:
Составители:
6.4.5.Пример программы:
//Данный пример осуществляет ввод и запись на диск в реальном масштабе
//времени 16 каналов платы АЦП в течении 4 секунд на частоте ввода 5 кГц
//(интервал ввода 200 мкс)
main()
{
int i, *Data, Channels[16], NPoint=2000, Rate=200;
int Dmm=1, counter, Nch=16;
FILE *fp;
// откроем файл (желательно на нефрагментированном диске)
fp=fopen("test.dat", "wb");
if(fp==NULL) exit(1);
// установим указатель на старшую страницу памяти
Data=(int far *) 0õ90000000,
// запустим ПДП на ввод 16 каналов АЦП с интервалом
// 200 мкс между кадрами
DMAALL(Data, NPoint, Channels, Nch, Rate, Dmm);
// вводим 2000*10*200мкс=4секунды
for(counter=0, counter < 10, counter++)
{
// ждем заполнения первой половины буфера
while(DMA_COUNTER() > 1000*16);
// сохраним первую половину в файл
fwrite(Data, 1000*16, 2, fp);
// ждем заполнения второй половины буфера
while(DMA_COUNTER() < 1000*16);
// запишем в файл
fwrite(Data+1000*16, 1000*16,2, fp);
}
// выключим плату и контроллер ПДП
DMA_OFF();
fclose(fp);
}
6.5. Организация ввода-вывода дискретных сигналов
6.5.1. С помощью тестовой заглушки проверить работу каналов ввода-вывода
дискретных (цифровых) сигналов.
6.5.2. Разработать программы, осуществляющие следующий обмен: