2812,150M下10个uunsigned int数据排序,居然要18ms。有那么慢?
2812,150M下10个unsigned int数据排序,居然要18ms。有那么慢?void sequence(unsigned int a[],int n)
{
int i=0,j=0;
unsigned int temp=0;
TEST_IO=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(a>a)
{
temp=a;
a=a;
a=temp;
}
}
}
TEST_IO=1;
}
用示波器观察TEST_IO电平,有18ms。
各位大侠,指点下啦!不是在仿真下跑的。 怎么可能》? 肯定哪里错了~~~~ 不会,单片机都会比这个快好多,肯定时间没测对 仿真下的设计问题,另外这个排序方法也不是最佳的。 多谢楼上两位大侠热心解答。仿真状态下运行也是要那么长时间。
哪里有问题?能帮忙指点下吗?
其他的都好好的。AD驱动、SCIA驱动都好好的。 你是不是按1M或者什么频率运行的,时钟低速运行?你这个排序即使不优化也不会这么慢啊 冒泡法没这么慢吧?会不会被中断打断了. 你骗鬼呢,上波形看看啊。另外在开始处把中断关掉。 无图无真相 再次感谢楼上几位大侠热心解答。
在做这个排序之前,我已经把COMA 9600波特率、AD驱动做好了。5ms的定时器做好、测试好了。120M的频率是没有问题的。
上午我又测试了下。不知道是我昨天看错了,还是啥问题。现在排序100个数据,是1.6ms。估计是我昨天看错了。
我把总中断关闭后,运行也是1.8ms。
排序100个数据,从低到高排序,而且数据已经是从低到高了,要1.8ms,这个也不正常吧? 确认函数的实参是不是对的
页:
[1]