STM32
直播中

曾盼丽

7年用户 174经验值
私信 关注
[问答]

请问定时时钟硬件调试的时候单步执行时间不准的原因?

1、 问一个问题啊,设定定时时间后,进行硬件调试的时候,在中断处设置一个断点,全速运行调试的时候,时间有时对,有时候不对,不知道什么原因。我已经将TRACE中10M改为72M, ENABLE也选上啦,望高手指教。

2、我最近写一个程序用到排序,数组大小为14320个数据,采用冒泡法排序,运行一下大概需要花费160秒左右,有没有什么好办法可以将运行时间变小啊。我主要是对数据进行排序,然后取中间的数据,主要是数字滤波,望高手能提供一些好方案。

回帖(3)

刘晓燕

2020-7-27 09:03:29
1,这个可能和M3的分支预测有关,硬件可能是准确的,只是有时候结果不完全一致而已.如果想精确计时,自己弄个定时器,就绝对正确了.
2,百度比较好:http://zhidao.baidu.com/question/152644373.html
http://baike.baidu.com/view/115472.htm
C语言程序:
/*    快  速  排  序    */
#include "stdio.h"
void QuickSort(int e[], int first, int end)
{
int i=first,j=end,temp=e[first];
while(i   {
while(i>=temp)
j--;
e=e[j];
while(i><=temp)
i++;
e[j]=e;
  }
e=temp;
  if(first   QuickSort(e,first,i-1);
if(end>i+1)
QuickSort(e,i+1,end);
}
void main()
{
int arr[] = {49, 38, 65, 97, 76, 13, 27, 49};
int len = 8;
int i;
printf("before sortn");
for(i=0; i printf("%d  ", arr);
printf("n");
QuickSort(arr, 0, len-1);
printf("after sortedn");
for(i=0; i> printf("%d  ", arr);
printf("n");
}>
举报

李铭鑫

2020-7-27 09:10:48
试试上面这个算法,需要多久.
举报

张怡

2020-7-27 09:16:22
上面定时我就是用定时器做的啊,还有实验板的例子定时器中断,0.5MS我也试验了一下,软件仿真是正确,硬件仿真时间不对,不知道为何?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分