嵌入式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以上。求达人解释。
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28