片翼的猪 发表于 2008-6-14 12:55:42

请问在CVI中如何实现每秒产生一个随机数?

请问在CVI中如何实现每秒产生一个随机数?谢谢~

偶是新手,只知道应该要用到TIMER。但不知道编写的随机数程序该放进TIMER的什么位置,还望各位高手多多指教下~

int CVICALLBACK DrawToCanvas (int panel, int control, int event,
                void *callbackData, int eventData1, int eventData2)
{
        switch (event)
        {
                case EVENT_TIMER_TICK:

                        break;
        }
        return 0;
}

[ 本帖最后由 片翼的猪 于 2008-6-14 13:21 编辑 ]

cpubbs 发表于 2008-6-14 13:22:08

Computes a pseudorandom integer in the range 0 to RAND_MAX.

NoteIf this function is called before any call to srand, the seed value will default to 1.


Prototype

int rand (void);


在TIMER里面调用它!您的函数应该还没有产生TIMER的回调函数!

片翼的猪 发表于 2008-6-14 13:30:59

谢谢楼上的指教~allqq-mogudiandian-32all

cpubbs 发表于 2008-6-14 13:37:51

定时器的例子,如果兄弟没有做过,可以看我们的采集卡的示例程序!或者看CPUVIEW区提供的一些下载程序!一般采集都要用它,这样方便些,定时自动采集!

sunshuai03 发表于 2008-6-14 17:16:52

来解释一下这个回调函数吧。CVI的事件机制是基于回调函数的,就是某个控件的事件发生了,系统就会调用相应的回调行数。下面这个就是Timer的回调函数。
int CVICALLBACK DrawToCanvas (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{
      switch (event)                        //标准的switch结构,表示是控件的什么事件,一个控件不仅仅可以响应一个事件,比如鼠标的单击和双击就可以不一样,
      {
                case EVENT_TIMER_TICK:               //case 表示什么事件,后面是一个常量,控件所有的事件都有一个很形象的常量,可以查看帮助得到,
                                                                                        //case 和 break 之间就是响应事件的执行代码的地方,lz要产生一个随机数就是在这里产生。
                        break;
      }
      return 0;
}
页: [1]
查看完整版本: 请问在CVI中如何实现每秒产生一个随机数?