problem whit TRIG_INT

Hi,
I am using this code to start a writing by a NI6713 but when I insert my 
module (i'm working in kernel space) the command return always -1.
int do_cmd(void)
{
 int ret, i, n; 
 double s;
 comedi_cmd cmd;
 unsigned int chanlist[N_WRITE];
 comedi_insn insn;
 lsampl_t data_insn[1]; 
 sampl_t preload;
 
 memset(&cmd,0,sizeof(cmd));

 /* Set up channel list */
 for (i = 0; i < N_WRITE; i++) {
  chanlist[i] = CR_PACK(BUF_WRITE[i],4,AREF_GROUND);
 } 

 cmd.subdev = subdev;
 cmd.flags= TRIG_WAKE_EOS;
 
 cmd.start_src = TRIG_INT;
 cmd.start_arg = 0; 

 cmd.scan_begin_src = TRIG_TIMER;
 cmd.scan_begin_arg = SAMP_TIME; 

 cmd.convert_src = TRIG_NOW;
 cmd.convert_arg = 0; 

 cmd.scan_end_src = TRIG_COUNT;
 cmd.scan_end_arg = N_WRITE; 

 cmd.stop_src = TRIG_NONE;
 cmd.stop_arg = 0;
 
 cmd.chanlist = chanlist;
 cmd.chanlist_len = N_WRITE; 

// cmd.data=map;
// cmd.data_len=sizeof(sampl_t); 

 ret = comedi_command_test(dev,&cmd);
 printk("1st command test returned %d\n",ret); 

 ret = comedi_command_test(dev,&cmd);  
 printk("2nd command test returned %d\n",ret);
 printk("CONVERT ARG: %d\n", cmd.convert_arg); 

 if (ret) {
  return ret;
 } 

 ret = comedi_command(dev,&cmd);
 printk("command returned %d\n",ret);
 
// preload[0] = 1;
/* for (n = 0; n < BUFSIZE; n++) {
  s = (1. - range_min)/(range_max - range_min)*maxdata;
  preload = (sampl_t)(floor(s+0.5));
  comedi_data_write(dev, subdev, n , 0, AREF_GROUND, preload);}*/
  
// n = N_WRITE * sizeof(sampl_t);  
// write(comedi_fileno(dev), (void *)preload, n);
 
 memset(&insn, 0, sizeof(comedi_insn));
 
 data_insn[0]=0; 

 insn.insn = INSN_INTTRIG;
 insn.n = 1;
 insn.subdev = subdev;
 insn.data = data_insn;
 insn.chanspec=CR_PACK(BUF_WRITE[0],4,AREF_GROUND);
 ret = comedi_do_insn(dev, &insn);
  
 if(ret<0){ 
  comedi_perror("no cazzo internal trigger\n");
 } 

 return 0;
}
using > insmod signal_generator.o && dmesg
 -I recive this message
 -1st command test returned 0
 -2nd command test returned 0
 -CONVERT ARG: 0
 -command returned 0
 -ni_mio_common: DMA underrun
 -comedi2: ni_pcimio: timed out waiting for dma load
 -: unknown error 

somebody can help me?
thanks
walter

Received on 2004-11-10Z15:25:06