Индикатор частоты ЦП

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 176
Зарегистрирован: Чт май 05, 2011 12:58:32
Откуда: Екатеринбург

Сообщение loshvitalik »

Захотелось вот сделать такую штуку на семисегментниках, чтобы показывало текущую частоту проца в МГц - как это раньше на древних компах делали.
Железо известно: комп на Core i7 с Windows 7/8, ft232 + attiny2313, ft-шка передает тиньке частоту четырьмя байтами по rx-tx. Если писать под МК я уже умею, то до винды я еще не дорос, так что вопрос - как это реализовать со стороны компа? Представляю, что нужна программа, читающая частоту ЦП и отправляющая это на девайс ft0 по usb. (Или можно сделать вообще без юсб?)
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

loshvitalik писал(а):вопрос - как это реализовать со стороны компа?
Как-то так:

Код: Выделить всё

CompilerIf Defined(LARGE_INTEGER, #PB_Structure)=0
  Structure LARGE_INTEGER
    lowpart.l
    highpart.l
  EndStructure
CompilerEndIf

Procedure.l GetCpuMhz()
  Protected int64val.LARGE_INTEGER
  !FINIT
  !rdtsc
  !MOV dword [p.v_int64val+4],Edx
  !MOV dword [p.v_int64val],Eax
  !FILD qword [p.v_int64val]
  Delay(1000)
  !rdtsc
  !MOV dword [p.v_int64val+4],Edx
  !MOV dword [p.v_int64val],Eax
  !FILD qword [p.v_int64val]
  !FSUBR st1,st0
  int64val\HighPart=0
  int64val\LowPart=1000000
  !FILD qword [p.v_int64val]
  !FDIVR st0,st2
  !fistp qword [p.v_int64val]
  ProcedureReturn int64val\LowPart
EndProcedure

MessageRequester("Частота ЦП", Str(GetCpuMhz())+" МГц.")
Во вложении этот исходник и скомпилированная программа.
Компилировал в этой среде программирования. http://purebasic.com/download.php

Передать данные можно как через комп порт. http://purebasic.ru/manual.php?id=1148&lng=rus
Так и через USB. http://purebasic.mybb.ru/viewtopic.php?id=211
http://purebasic.mybb.ru/viewtopic.php?id=46
http://pure-basic.narod.ru/article/pickit2.html
http://www.radioman-portal.ru/pages/1698/index.shtml
Вложения
CPU.rar
(4.32 КБ) 173 скачивания
Реклама
Нашел транзистор. Понюхал.
Сообщения: 176
Зарегистрирован: Чт май 05, 2011 12:58:32
Откуда: Екатеринбург

Сообщение loshvitalik »

Я так понял эта программа не опрашивает частоту в цикле, а значит, что если в нее дописать код отправки данных по юсб, то и отправлять не будет в цикле... так ведь?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

А что мешает дописать цикл?

Код: Выделить всё

Repeat
  MessageRequester("Частота ЦП", Str(GetCpuMhz())+" МГц.")
ForEver
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «Интеграция с ПК»