Hi, ich habe eine CPU- auslastungsanzeige für den USB Port für meine Prüfung der 10. klasse realschule ausgewählt (www.Meierspage.de) Nun hab ich das problem, dass ich die funktion nicht ganz verstehe, die sollte ich allerdings den Prüfern sagen können. Kann mir vielleicht "relativ" einfach erklären wie der IC funktioniert bzw. welche daten er woher bekommt und wie er die umsetzt? Danke für die Hilfe im voraus
Um was geht es genau??? Haste vieleicht einen DIREKTEN Link zu dem Projekt. Um was für einen IC geht es?
http://www.meierspage.net/how2s/elektronik/elektronik_how2s.php Hab genau die Teile bestellt, die Angegeben sind inkl. dem "alten" Microcotroller
Offensichtlich baut das Projekt auf einer Software-USB-Implementierung auf dem 90S2313 auf, vgl. http://cesko.host.sk/IgorPlugUSB_RS232/IgorPlug-USB%20(AVR)%20RS232_eng.htm Ich habe den Eindruck, dass man für so eine Prüfung besser eine Schaltung und Software wählen sollte, die man selbst erstellt hat oder zumindest verstehen kann. Von der USB-Adaptierung ist der Quellcode ja frei herunterladbar, aber den USB-Teil zu verstehen dürfte einige Zeit dauern und nur mit Zusatzliteratur möglich sein. Der Rest an dem Ding ist ja eher simpel. Vielleicht baut der OP besser eine Variante für den seriellen Port, da kann er dann den Quellcode mit etwas Übung selber schreiben und auch erklären. Falls das nicht reicht, kann das Projekt ja beliebig erweitert werden... Johannes
Hallo, hmmm.... welchen Teil der Funktion? Wenn Du auch noch erklären willst/sollst, wie die USB-Software-Geschichte vom Igor funktioniert...... Gruß aus Berlin Michael
Also die eigentliche Steuerung machen die voll in der PC-Software. Der IC (AVR) ist nichts anderes als ein USB-RS232 Wandler in Software (Treibername sagt ja schon alles) und die PC-Software steuert die LED mittels EIN/AUS befehlen über einen "COM-Port"... Das ist der ganze Zauber dieses kleinen Mod-Projekts. Wenn du dir die Sourcen der PC-Software anschaust, wirst du irgendwo serielle Übertragungen finden, wenn du die Steuerbefehle findest, könntest auch selber ein Programm schreiben, das die LEDs für andere Zwecke ansteuert - z.B. Netzwerkauslastung, Speicherauslastung,... Grüße Markus
Nene so genau muss es nicht sein. Ich sollte nur wissen, wie der ic das Signal auf die leds umsetzt. Weil gerade "erweitern" angesprochen wurde: Kann ich auch Jeweils 2 Ultrahell LEDs parallel schalten oder schaft das der ic/usb Port nicht?
Es gibt mehrere Möglichkeiten sowas zu realisieren. 1/ Der µC (AT 90S2313 PDIP) wird mit dem PC eine serielle Datenübertragung aufbauen. Als Daten kann z.B die CPU Auslastung übertragen werden. Z.B. 0 für 0% 13 für 13%.... Die Aufgabe des µC ist jetzt diesen Wert auf die LEDs umzusetzen. 2/ Der µC (AT 90S2313 PDIP) wird mit dem PC eine serielle Datenübertragung aufbauen. Als Daten kommen aber z.B. 8-Bit Werte, die direkt als Zustand der Portpins 0-7 interpretiert werden. D.h. die Umsetzung vom CPU-Wert auf die Anzahl zu schaltender LEDs an diesen Portpins wird bereits auf dem PC gemacht. Ich tendiere dazu, dass 2/ in diesem Projekt benutzt wird. Das USB-Anhängsel ist quasi ein universelles Mehrkanal Schaltmodul, welches von "intelligenter" PC-Software angesteuert wird. Genauer könnte man dies untersuchen, in dem man sich die Visual Basic Source für die CPU-Auslastung ansieht (wird CPU-Last übertragen oder 8-Bit-Wert als Schaltzustand). Programmtechnisch ist die Umsetzung vo CPU-Wert auf Anzahl LEDs nicht so schwer. Du weisst bei 0& CPU ist keine LED aktiv und bei 100% CPU alle LEDs. Im einfachsten Fall benutzt du eine grosse Abfrage mit Vergleich von Schwellenwerten und Umkalierung auf die Anzahl LEDs alle LED aus (LED... = 0) wenn cpu > 100 - 8 * 100/8 dann LED1 an (LED1 = 1) wenn cpu > 100 - 7 * 100/8 dann LED2 an wenn cpu > 100 - 6 * 100/8 dann LED3 an wenn cpu > 100 - 5 * 100/8 dann LED4 an wenn cpu > 100 - 4 * 100/8 dann LED5 an wenn cpu > 100 - 3 * 100/8 dann LED6 an wenn cpu > 100 - 2 * 100/8 dann LED7 an wenn cpu > 100 - 1 * 100/8 dann LED8 an Um von den LED an/aus Werten auf den 8-Bit zu kommen, der als Schaltzustand übertragen wird, werden Einzelbitwerte miteinander logisch verODERt. 8bitwert = LED8 * 2^7 + LED7 * 2^6 + ... Bsp. LED1 = 1 (an) LED2 = 1 (an) LED3 bis LED8 = 0 (aus) 8bitwert = 0 * 2^7 + 0 * 2^6 + ... + 1 * 2^1 + 1 * 2^0 Man kann beide Schritte natürlich auch zusammenfassen und direkt bei der Abfrage die entsprechende Zweiterpotenz auf 8bitwert aufaddieren.
Das klingt schon recht logisch für mich. Wenn ich mir das noch ein bischen durch den kPpf gehen lasse, dürft das duchaus keine blamage in der Prüfung geben. Danke an alle für die Antworten, besonders an Stefan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.