Железо известно: комп на Core i7 с Windows 7/8, ft232 + attiny2313, ft-шка передает тиньке частоту четырьмя байтами по rx-tx. Если писать под МК я уже умею, то до винды я еще не дорос, так что вопрос - как это реализовать со стороны компа? Представляю, что нужна программа, читающая частоту ЦП и отправляющая это на девайс ft0 по usb. (Или можно сделать вообще без юсб?)
Индикатор частоты ЦП
Захотелось вот сделать такую штуку на семисегментниках, чтобы показывало текущую частоту проца в МГц - как это раньше на древних компах делали.
Железо известно: комп на Core i7 с Windows 7/8, ft232 + attiny2313, ft-шка передает тиньке частоту четырьмя байтами по rx-tx. Если писать под МК я уже умею, то до винды я еще не дорос, так что вопрос - как это реализовать со стороны компа? Представляю, что нужна программа, читающая частоту ЦП и отправляющая это на девайс ft0 по usb. (Или можно сделать вообще без юсб?)
Железо известно: комп на 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 скачивания
Я так понял эта программа не опрашивает частоту в цикле, а значит, что если в нее дописать код отправки данных по юсб, то и отправлять не будет в цикле... так ведь?
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
А что мешает дописать цикл?
Код: Выделить всё
Repeat
MessageRequester("Частота ЦП", Str(GetCpuMhz())+" МГц.")
ForEver

