Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Осциллограф, отображающий тактовую частоту(SOS) 
:(
    Опции темы
ForFreedom
Дата 1.8.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.8.2009

Репутация: нет
Всего: нет



Помогите доработать программу, нужно чтобы она реалтайм отображала тактовую частоту процессора и строила график(как осциллограф), 
я дошел до того, что у меня фиксируется текущее значение и строится график по двум точкам.
Мой код: 
#include <vcl.h>
#pragma hdrstop
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Chart"
#pragma link "Series"
#pragma link "TeEngine"
#pragma link "TeeProcs"
#pragma resource "*.dfm"
TForm5 *Form5;
//---------------------------------------------------------------------------
__fastcall TForm5::TForm5(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
double CPUSpeed(void)
  {
    DWORD dwTimerHi, dwTimerLo; 
    asm
     { 
        DW 0x310F
        mov dwTimerLo, EAX
        mov dwTimerHi, EDX
      }
    Sleep (500); 
    asm
     { 
        DW 0x310F 
        sub EAX, dwTimerLo 
        sub EDX, dwTimerHi 
        mov dwTimerLo, EAX 
        mov dwTimerHi, EDX
     } 
    return dwTimerLo/(1000.0*500); 
  }
//---------------------------------------------------------------------------
void __fastcall TForm5::Button1Click(TObject *Sender)
{
Edit1->Text = FloatToStr(CPUSpeed());
for(int i=0;i<31;i++)
{
 Series1->AddXY(i,CPUSpeed(),"",clRed);
}
}
PM MAIL   Вверх
sawfish
Дата 3.8.2009, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2008
Где: Новосибирск

Репутация: 8
Всего: 8



Ваш вопрос непонятен...
Насколько видно из кода, Вы выводите 31 точку по нажатию на кнопку.
Цитата

нужно чтобы она реалтайм отображала тактовую частоту процессора 

На сколько реалтайм?

Могу предложить такой вариант: по таймеру каждую секунду вызывается Ваша функция CPUSpeed и значение выводится в графике.
Сначала набирается 20 значений, потом последние 20 показываются (здесь можете сделать как угодно).
На форме Chart и Timer. У таймера интервал 1000мс. В Chart'е Series типа LineSeries, для нее в закладке General выставлена галочка DateTime. У Chart'а LeftAxis->Automatic=false.

Код

//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
    Series1->Clear();
    Chart1->BottomAxis->DateTimeFormat="hh:nn:ss";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    if (Series1->Count()==20)                           // если следующая точка будет 21-я
        Series1->Delete(0);                             // удаление первой точки
    Series1->AddXY(Now(), CPUSpeed(), "", clRed);
    double dMin=Series1->MinYValue();
    double dMax=Series1->MaxYValue();
    double dPer=(dMax-dMin)*0.1;
    Chart1->LeftAxis->SetMinMax(dMin-dPer, dMax+dPer);
}
//---------------------------------------------------------------------------


Получается вот так:

user posted image
PM MAIL   Вверх
ForFreedom
Дата 8.8.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.8.2009

Репутация: нет
Всего: нет



Спасибо огромное.  А как мне теперь сделать, чтобы пользователь задавал интервал таймера?
PM MAIL   Вверх
hente
Дата 8.8.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.3.2009
Где: Томск

Репутация: нет
Всего: нет



 smile свойста таймера смотри smile 
--------------------
  долой быдло кодеров!!!
PM MAIL   Вверх
Romikgy
Дата 8.8.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Timer1->Interval 
меняй 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ForFreedom
Дата 8.8.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.8.2009

Репутация: нет
Всего: нет



Дак мне нужно эту фичу в интерфейс включить, чтобы пользователь реалтайм регулировал интервал...
PM MAIL   Вверх
sawfish
Дата 8.8.2009, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2008
Где: Новосибирск

Репутация: 8
Всего: 8



На форму (или в отдельное окно) Edit или MaskEdit, рядом кнопочку Применить, по нажатию и выставляете нужный интервал.
PM MAIL   Вверх
ForFreedom
Дата 9.8.2009, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.8.2009

Репутация: нет
Всего: нет



Спасибо!
PM MAIL   Вверх
p486
  Дата 24.8.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



а в чем смысл? тактовая частота ЦП меняется только у ноутбуков! и к ним идут спец. программы которые позволяют управлять этим процессом.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.