求助:PCI-DASK, PCI-7200例子中的7200file.c 的问题 点击:849 | 回复:1



刘丽

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 0回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2004年8月20日
发表于:2004-12-01 11:14:00
楼主
运行一下,得到的结果全部为FFFFFFFF。 仔细查了一下,发现问题在于语句: err = DO_ContWritePort(card, 0, DoBuf, read_count, 1, (F64)sample_rate, ASYNCH_OP); 即使将DoBuf改为0,照样能得到结果:全部为FFFFFFFF。也就是,这个函数根本就没从设置好的DoBuf中读取数据。 有人遇到过同样的情况吗?为什么会这样? 附上整个文件: #include <windows.h> #include <stdio.h> #include <conio.h> #include "dask.h" U32 DoBuf[2000]; char *file_name="7200d"; U32 read_count=2000; F64 sample_rate=10000; main() { I16 card, err, card_num; BOOLEAN bStopped; U32 count, i; printf("This program inputs and outputs %d data by PCI-7200 in %d Hz simultaneously, and store input data to file '%s.dat'.\n\nPress any key to start the operation.\n", read_count, (int)sample_rate, file_name); printf("Please input a card number: "); scanf(" %d", &card_num); //getch(); if ((card=Register_Card (PCI_7200, card_num)) <0 ) { printf("Register_Card error=%d\n", card); exit(1); } for (i=0; i<read_count; i++) //DoBuf[i] = (U32)(sin((double)i/500)*0x7fff)+0x8000; DoBuf[i] = i; err = DI_7200_Config(card, TRIG_INT_PACER, DI_NOWAITING, DI_TRIG_FALLING, IREQ_FALLING); if (err!=0) { printf("DI_7200_Config error=%d", err); exit(1); } err = DO_7200_Config(card, TRIG_INT_PACER, OREQ_DISABLE, OTRIG_LOW); if (err!=0) { printf("DO_7200_Config error=%d", err); exit(1); } err = DI_AsyncDblBufferMode(card, 0); if (err!=0) { printf("DI_DblBufferMode error=%d", err); exit(1); } //err = DO_ContWritePort(card, 0, DoBuf, read_count, 1, (F64)sample_rate, ———————————————————————————————————————— ASYNCH_OP); 改为 —————————— err = DO_ContWritePort(card, 0, 0, read_count, 1, (F64)sample_rate, ASYNCH_OP);一样可以运行!!! -------------------------------------------------------------------------- if (err!=0) { printf("DO_ContWritePort error=%d", err); } err = DI_ContReadPortToFile(card, 0, file_name, read_count, (F64)sample_rate, ASYNCH_OP); if (err!=0) { printf("DI_ContReadPort error=%d", err); exit(1); } do { DI_AsyncCheck(card, &bStopped, &count); } while (!bStopped); DI_AsyncClear(card, &count); DO_AsyncClear(card, &count); Release_Card(card); printf("\n\nThe input data is already stored in file '%s.dat'.\n", file_name); printf("\nPress ENTER to exit the program. "); getch(); }



scq20082008

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2013年9月27日
发表于:2013-09-27 10:17:04
1楼

你好 你这个问题解决了吗 求


热门招聘
相关主题

官方公众号

智造工程师