源码下载地址:http://download.csdn.net/detail/sailor_luo/9866168
定时器:
多窗口—定时器与直流电机控制
#include "dialog1.h"
#include "ui_dialog1.h"
#include <QTimer>
#include <QtCore>
#include<dialog1.h>
Dialog1::Dialog1(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog1)
{
ui->setupUi(this);
QTimer *timer =new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timerupdate()));
timer->start(1000);
}
Dialog1::~Dialog1()
{
delete ui;
}
void Dialog1::timerupdate()
{
QDateTime time=QDateTime::currentDateTime();
QString str =time.toString("yyyy-MM-dd hh:mm:ss dddd");
ui->label->setText(str);
}
驱动电机;
#include "dialog2.h"
#include "ui_dialog2.h"
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/ioctl.h>
#include <pthread.h>
#include <fcntl.h>
#include <fcntl.h>
#include <string.h>
#include <sys/ioctl.h>
#include <QtGui/QApplication>
#define DCM_IOCTRL_SETPWM (0x10)
#define DCM_TCNTB0 (16384)
int flag=1;
static int dcm_fd = -1;
char *DCM_DEV="/dev/s3c2440-dc-motor0";
Dialog2::Dialog2(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog2)
{
ui->setupUi(this);
}
Dialog2::~Dialog2()
{
delete ui;
}
void Delay(int t)
{
int i;
for(;t>0;t--)
for(i=0;i<400;i++);
}
void Dialog2::on_pushButton_clicked()
{
int setpwm = 512;
int factor = DCM_TCNTB0/1024;
if((dcm_fd=::open(DCM_DEV, O_WRONLY))<0){
printf("Error opening %s device\n", DCM_DEV);
}
if(flag==0)
{
::ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (1000 * factor));
ui->pushButton->setText("close");
}
else if(flag==1)
{
::close(dcm_fd);
ui->pushButton->setText("open");
}
printf("setpwm = %d \n", setpwm);
}