Извините, что повторяюсь, но проблемма не решена.
Ядро 2.6.13.
Программа составлена по "Библиотека LDSP для работы с устройствами АЦП/ЦАП. Иван Горинов"
Программа должна измерить напряжение с указанного канала с частотой 10000 Гц.
LDSP_HANDLE dev;
int mask, channel;
short buffer[_fsize];
// fragment_info fragment;
// fragment.frag_size = 100;
// fragment.buf_size = 100;
// ldspInBuf(dev,&fragment);
int st;
char* DevName = "/dev/xdsp0";
if(argc>1) sscanf(argv[1], "%d", &channel);
st = ldspOpen(&dev,DevName,LDSP_ADC);
if(st<0)
{
printf("Cannt open device!!!/n");
return -1;
}
printf("Device opened successfully!!!/n");
int Channels=1;
st = ldspChannels(dev,&Channels);
if(st<0)
{
printf("Error setting Cannels/n");
return -1;
}
printf("Channels setted: Channels= %d/n",Channels);
channel_inf ci;
ci.mode = LCH_DIFFERENTIAL;
ci.input = channel;
ci.gain = 0;
ci.index = -1;
st = ldspSetChannel(dev,&ci);
if(st<0)
{
printf("Error setting ci/n");
return -1;
}
printf("Channel configured: index= %d/n",ci.index);
frame_timing rate;
rate.channel_rate = 10000;
st = ldspSetTiming(dev,&rate);
if(st<0)
{
printf("Error setting timing/n");
return -1;
}
printf("Timing setted: rate= %d/n",rate.channel_rate);
printf("Starting ADC...");
mask = LDSP_MASK_ADC;
st = ldspSetTrigger(dev,&mask);
if(st<0)
{
printf("Error setting Trigger/n");
return -1;
}
printf(" Trigger passed!/n");
st = ldspRead(dev,buffer,_fsize);
if(st<0)
{
printf("Error reading from device/n");
return -1;
}
int i=0;
for(i=0;i<_fsize;i++) printf("%d/n",buffer[i]);
ldspClose(dev);
return 0;
эта прога выдет:
root@dlts:/mnt/data/andy# ./stream 0
Device opened successfully!!!
Channels setted: Channels= 1
Channel configured: index= -1
Timing setted: rate= 10003
Starting ADC... Trigger passed!
и все! дальше она чего-то ждет! выходить приходится по Ctrl-C
Т.е. остановка происходит на сточке
st = ldspRead(dev,buffer,_fsize);
Не могли вы пояснить в чем ошибка или прислать текст простейший текст программы решающей эту задачу?