Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Программирование под L1250

Вы не вошли.

 Поиск | Регистрация | Вход 

Arpal
18.05.2001 08:47:43
#1

Гость

Программирование под L1250

Помогите решить проблемму.
Программирую под DOS(точно следуя руководству):
main()
{
   int *Data, Channels[1]={0};   
   int NPoint=2000, Rate=250;
   int Dmm=1, Nch=1;
   FILE *fp;
   fp=fopen("data.dat", "wb");
   if(fp==NULL) exit(1);
   Data=(int far*)0x90000000;
   SET_TIMER_SCALE(10);
  DMAALL (Data, NPoint, Channels, Nch, Rate, Dmm);
   for(int i=0; i<100; i++)
   {
     while (DMA_COUNTER()>1000);
     fwrite(Data, 2, 1000, fp);
     while (DMA_COUNTER()<1000);
     fwrite(Data, 2, 1000, fp);
   }
   DMA_OFF();
   fclose(fp);
}
АЦП должно работать на запись 2000*250*100 мксек,
т.е. 50 сек, а практически работает 20 сек. ?!
Пишу простую синусоиду, в записаном файле чётко ввидно 200 обрывов сигнала(пропуск более 10мс). Получается, что при записи на диск половины буфера плата прерывает свою работу. ?!

Заранее спасибо...
   

Vlad
18.05.2001 12:17:14
#2

Гость

Re: Программирование под L1250

Сразу видна одна ошибка -

while (DMA_COUNTER()>1000);
fwrite(Data, 2, 1000, fp);
while (DMA_COUNTER()<1000);

fwrite(Data, 2, 1000, fp); //???
надо: fwrite(&Data[1000], 2, 1000, fp);

Попробуйте исправить и проверить на пропуски.

Arpal
19.05.2001 12:08:45
#3

Гость

Re: Программирование под L1250

Большое спасибо !
Всё заработало.
Невнимательно руководство прочёл.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск