+ -
当前位置:首页 → 问答吧 → 嵌入式linux的 波形刷新频率问题

嵌入式linux的 波形刷新频率问题

时间:2011-02-22

来源:互联网

我用的硬件是 基于CS3C2440 的ARM开发板。软件是嵌入式linux 程序开发平台是QT4.6。 我写了一个波形绘图 程序,利用的是定时器的方式刷新波形。发现如果定时器 时间小于100MS时,刷新速度几乎不变了,波形刷新速度很慢。如下是我写的程序的框架:
  timer = new QTimer(this);
  timer->setInterval(10);
  connect(timer, SIGNAL(timeout()), this, SLOT(drawGraph()));
  timer->start();

void trypixmap::drawGraph()
{
  ......

  QVector<QPointF> polyline(buffer.count());

  for (int j = 0; j < buffer.count(); ++j) {
  double dx = buffer[j].x() - settings.minX;
  double dy = buffer[j].y() - settings.minY;

  double x = rect.left() + (dx * (rect.width() - 1)/ settings.spanX());
  double y = rect.bottom() - (dy * (rect.height() - 1)/ settings.spanY());
  polyline[j] = QPointF(x, y);
  if (j>0)
  painter->drawLine(polyline[j-1],polyline[j]);
else
  painter->drawPoint(x,y);
}

我本来设置的是10MS的间隔,但是在开发板上实际的刷新速度远远大于10MS,估计有100MS以上。求达人解释。

作者: ssh_2008   发布时间: 2011-02-22

硬件定时器能达到这个效果,软件上根本不行,一个tick就10ms了,调度精度没那么高吧。

作者: EZWORD   发布时间: 2011-02-22