由于手机电视项目接收数据出现问题(每帧数据后半部分有丢失,并且每隔一帧就会有几帧丢失),无法在手机上正常播放,原因很可能与SPI接口的速率(与接口驱动相关)与硬件速率不匹配造成的。为此,需要测量接收每个复用子帧所需要的时间。我在www.cplusplus.com网站上找到了一个可用的例子,例子在附录部分附上。另外,在网上搜到了如下的代码,可以实现毫秒级的定时,用于测试程序执行所需要的时间。
#include #include #include
int main( void )
{
long i = 10000000L;
clock_t start, finish;
double duration;
/* 测量一个事件持续的时间*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i-- )
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds/n", duration );
system("pause");
}
程序执行结果:
Time to do 10000000 empty loops is 0.421000 seconds
请按任意键继续...
基于上面的例子,我把附录中的程序进行了简单的修改,可以实现毫秒级的延时。
程序代码如下:
#inc