Skocz do zawartości
AlexB

Wskaznik Analogowy Uzycia Cpu

Rekomendowane odpowiedzi

Witam.

 

Ludzie podlaczaja do swoich printerportow jakies wyswietlacze od nokii, panele od starych laptopow i inne dziwactwa, to dlaczego ja mam byc gorszy - tez sobie cos podlaczylem :D.

Ostatnio wpadl mi w rece moj stary covox, dla tych ktorzy nie wiedza o co chodzi, byla to namiastka karty dzwiekowej z czasow procow 286, proste urzadenie podlaczane do printerportu.

 

No wiec pomyslalem, ze mozna tym wysterowac wskaznik wychylowy. W ramach odstresowania sie postanowilem sprawdzic co da sie z tego zrobic. Po kilku chwilach powstalo takie cos:

FOTO #1

Dołączona grafika

 

 

zblizenie na cud techniki :lol:

Dołączona grafika

 

 

Uzylem do tego wskaznika z decka unitry bo taki mialem pod reka. Wypadalo by zminic tarcze ale to szczegol.

 

Zeby to dzialalo potrzebny jest jeszcze soft, z tym bylo troche gorzej, dalem rade, chociaz to tylko prototyp. :)

A na koniec jeszcze wyprodukowalem krotki film divx5, waga 944K. :wink:

Edytowane przez AlexB

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość _ANTEK_

ta jakas reklama ,

 

tez kiedys o takim wskazniku myslalem, lepsze to niz jakies amatorskie diody, a jak z Unitry to przynajmniej Oldschoolowe :)

 

podlaczam sie do prosby o schemacik

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Z filmem to musze jakis inny serwer poszukac :mur:

 

Tu schemat:

Dołączona grafika

 

 

 

 

w mojej drabince rezystory nie sa idealne, generalnie zasada jest taka: patrzac od gory kazdy R powinien miec o polowe mniejszy opor - sprobujcie takie w sklepie dostac :lol:

 

lpt.cpp

include <windows.h>#include <stdio.h>#include "01.h"#include <winbase.h>int main(){		hKernel = LoadLibrary("Kernel32.dll");	if(hKernel)GetSystemTimes = (GetSystemTimesType) GetProcAddress(hKernel, "GetSystemTimes");	else printf("Błąd przy ładowaniu pliku 'Kernel32.dll'.");			hIO = LoadLibrary("inpout32.dll");	if(hIO)OutPort = (OutPortType) GetProcAddress(hIO, "Out32");	else printf("Błąd przy ładowaniu pliku 'inpout32.dll'.");		SYSTEMTIME stKernel, LstKernel;	FILETIME idleTime, kernelTime, userTime;	FILETIME LidleTime, LkernelTime, LuserTime;	DWORD i,j;	DWORD idl, ker, usr, sys;	USHORT cpu;	USHORT PortAddress;	for(j=0;j<500;j++){		GetSystemTimes( &LidleTime, &LkernelTime, &LuserTime );	FileTimeToSystemTime(&LkernelTime, &LstKernel);		printf(" \a");	for(i=0;i<500;i++)printf("%d \r",i);//	printf("\n \a");		GetSystemTimes( &idleTime, &kernelTime, &userTime );	FileTimeToSystemTime(&kernelTime, &stKernel);			usr = userTime.dwLowDateTime - LuserTime.dwLowDateTime;	ker = kernelTime.dwLowDateTime - LkernelTime.dwLowDateTime;	idl = idleTime.dwLowDateTime - LidleTime.dwLowDateTime;		sys = ker + usr;//	cpu = int( (sys - idl) *100 / sys );	cpu = int( (sys - idl) *255 / sys );		   	printf("%d		\r\a",int( (sys - idl) *100 / sys ));		PortAddress = 0x378;			OutPort(PortAddress, cpu); };	OutPort(PortAddress, 0);	}

 

i 01.h

INSTANCE hIO;//typedef USHORT _stdcall (*InPortType) (USHORT BasePort);typedef void   _stdcall (*OutPortType)(USHORT BasePort, USHORT value);//InPortType InPort;OutPortType OutPort;HINSTANCE hKernel;typedef void _stdcall (*GetSystemTimesType) (LPFILETIME, LPFILETIME, LPFILETIME);GetSystemTimesType GetSystemTimes;

Ale zaznaczam ze to jest totalna prowizorka.

 

Kompilowane w dev-cpp. do tego potrzebna jest jeszcze ta biblioteka ta biblioteka, ktora nalezy umiescic razem z plikiem programu.

 

 

 

[edit]

 

serwer do filmu zmieniony. (film)

Edytowane przez AlexB

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

fajna sprawa taki wskaźnik chodzący w rytm muzy :) ale nasuwaja się pytania :P

czy można jakiś schemacik ??? znalazłeś do tego soft ??

heh.. a czy nie prosciej w tym przypadku po prostu podłączyć wskaźnik przez rezystor i diodę do wyjscia karty muzycznej?...

 

Czemu ludzie wybierają skomplikowane rozwiazania jak są proste sprawdzone od wieków :)

 

ja bede w swoim kompie robił wskaźniki najprawdopodobniej temperatury analogowe... Co do covoxa.. to imho trochę nieoptymalne rozwiazanie... Zużywasz w ten sposób 8 bitów danych na sterowanie 1 wskazówką.. mozna to zrobić na 1 bicie :) modulacją PWM chociażby... W tym przypadku to jest imho marnowanie portu LPT.. Co innego gdybyś podłączył z 8 wskaźników.. no to było by już godne uwagi... :) chociaż 4 :).. zrób coś z tym, a zasłyniesz :wink: bo na razie jak mówię.. strata portu LPT, już lepiej było by wykorzystać nieuzywany zazwyczaj COM1 (RS232)

 

ale i tak plus za próby poszukiwana nowych rozwiązań... :)

Edytowane przez PelzaK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Czemu ludzie wybierają skomplikowane rozwiazania jak są proste sprawdzone od wieków :)

 

ja bede w swoim kompie robił wskaźniki najprawdopodobniej temperatury analogowe... Co do covoxa.. to imho trochę nieoptymalne rozwiazanie... Zużywasz w ten sposób 8 bitów danych na sterowanie 1 wskazówką.. mozna to zrobić na 1 bicie :) modulacją PWM chociażby...

Zapomniałes o dodaniu małego kondensatorka+dioda prostownicza B)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

mianowicie do czego? :) od biedy sam goły czysty pwm bez układu całkującego też by starszył zeby móć sterować wskazówką... któa jak wiadomo swoją bezwałdność ma... a zatem namiastke ukłądu całkującego :) (odpowiednik kondensatora)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nie chce chodzić to dosyć skompe określenie tego co się dzieje... może gdybyś opisał bardziej szczegółowo to moglibyśmy Ci pomóc :)

mi tez niechce na wskazniku skazów po włonczeniu kompa i dzie całkiem na góre w prawa strone ale opisz kolego to bardziej zrozumiale i dokładnie napisz na zwe tego programu co idzie do niego

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

mi tez niechce na wskazniku skazów po włonczeniu kompa i dzie całkiem na góre w prawa strone ale opisz kolego to bardziej zrozumiale i dokładnie napisz na zwe tego programu co idzie do niego

Dzizys @!#^%$@# ja @^%@#^%$!! Chlopie, ile ty masz lat?? Co ty miałeś z interpunkcji??

 

Wiem za OT, ale takie posty wypadają moje oczy...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

o :lol:

po drugim Twoim poście to ja już w ogóle nie rozumiem nic... nie dość że mam problem ze zrozumieniem syntaktyki to i z semantyką tego zdania też coś nie teges chyba :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...