Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo zusammen, > ich bin auch schon ein paar mal an die Performance Grenzen gestoßen. Ich konnte mir bisher durch > Oprimierung oder ein Stück zusätzliche HW und einem Lötkolben helfen. Ein guter Freund hat mir > gute Erfahrung mit folgendem board gemacht. > > <i> > .... hier kommen Infos zu dem Board: > > http://elmicro.com/de/icnova-ap7000-base.html > > Preis: 79,95 EUR + Verpackung + MWST. Ggf. noch ein > Steckernetzteil bei > Stand-Alone-Betrieb. Ich betreibe es ohne Netzteil zum Testen am > USB-Port. D.h. Power < 500 mA* 5W = < 2,5 W > > Das Board hat alle LED-Signale und jede Menge I/O-Ports auf den > Steckerleisten. In der anliegenden Anleitung steht drin, wie man die > I/O-Ports und die LEDs aus der Linux-Kommandozeile steuert. D.h. Du > bräuchtest zunächst noch nicht einmal die Linux-EW-Umgebung > installieren! > > Vom Steuer-PC aus kannst Du Dich per Script (z.B. per > expect-Skript oder > was anderem) einfach auf dem Linux-Board einloggen, die LEDs / IOs > ein/ausschalten und Dich danach wieder ausloggen. Natürlich kannst Du > auch ein kleines Programm auf dem Linux-Rechner schreiben, welches per > TCP/IP oder per UDP sich vom Steuer-PC ansprechen lässt. Aber wie > gesagt, es geht auch absolut ohne Linux-Programmierung. > > Als Alternative kannst Du natürlich auch bei einem Mini-ITX-Board den > Printerport als Relaisansteuerung nehmen. Aber das > Linux-Board hat mehr > I/O-Pins, braucht sicher erheblich weniger Strom und dürfte > in Bezug auf > Grösse und Preis ebenfalls unschlagbar sein > </i> > > Allerdings hat er für seine Echtzeitsteueraufgaben LINUX Kernal Treiber Programmieren müssen. > Dies ging nach anfänglichen Schwierigkeiten auch dank der vielen LINUX foren dann doch ganz gut. > <b> > Ich selber bin jedoch wirklich auf die Inline Assembler Funktion gespannt, das dürfte die Einsatzmöglichkeit > vom CC-Control vervielfachen. Ich hoffe das diese bald verfügbar sein wird.</b> Nach meiner Erfahrung > reicht in 90% meiner Projekte der Interpreter von der Performance, die Ladezeit und das Debuggen ist gut, > nur für die Restlichen 10% ist das Fehlen des Assembers u.U. ein Showstopper. > > Viele Grüße > > Jo > > > > > > Jetzt wo ihr es sagt. Doch, Interpreter hab ich gelesen aber es hat nicht geklingelt in meinem Kopf ^^ > > mit Assembler hab ich schon mal versucht aber extrem viel zeit verbraten bis es mal funktioniert hat, > > und bei gewissen problemen bin ich nie dahinter gekommen wieso mein Programm mit 20 Hex Ziffern > > einfach nicht zuverlässig das macht was es soll. Daher eher ein Albtraum. Neben den bekannten > > ueberlauf und status registern und wie die alle hiessen, muss es noch unbekannte Bitveschlucker Register > > gehabt haben von denen niemand etwa wusste. > > > > Mein Programm ist eigentlich simpel. ich muss der reihe nach 256 ausgänge schalten, nach einem > > bestimmten Zeitmuster. > > Optimal wäre mittels 3 Taster 3 verschiedene Zeitmuster anzuwählen, die 3 Zeitmuster sind dann > > in 3 Subroutinen fix programmiert. und das wiederholbar. > > Das ist schon alles. > > Aber ich müsste einen minimalen Zeitabstand von 3 mikrosekunden erreichen . > > > > Kann man mit einem trick auf die schnelle so etwas einbauen ? > > > > Gibt es ein Prozessor System das für noobs schnell begreifbar ist und diese zeiten hinkriegt ? > > > > Möglicherweise ein 16 Bit Prozessor ? > > > > MfG Noob > > > > Details: > > > > Mit hilfe von 74HC573 sieht dann das etwa so aus: > > ' Ausgang 1 > > ' 16 bit breiter Datenbus auf ausgänge schreiben > > Port_Write(2,&HFF) ' lower byte von Datenbus auf die anschlussbeine > > Port_Write(3,&HEF) ' hihger byte von Datenbus auf die anschlussbeine > > ' entsprechendes Paar 74HC573 soll Daten vom Bus uebernehmen > > Port_WriteBit(0,1) ' Latch Enable Paar 0 auf High > > Port_WriteBit(0,0) ' Latch Enable Paar 0 auf Low > > ' so schnell es geht > > ' Ausgang 2 > > ' 16 bit breiter Datenbus auf ausgänge schreiben > > Port_Write(2,&HFE) ' lower byte von Datenbus auf die anschlussbeine > > Port_Write(3,&HFF) ' hihger byte von Datenbus auf die anschlussbeine > > ' entsprechendes Paar 74HC573 soll Daten vom Bus uebernehmen > > Port_WriteBit(1,1) ' Latch Enable Paar 0 auf High > > Port_WriteBit(1,0) ' Latch Enable Paar 0 auf Low > > 'gewisse zeit warten > > 'Ausgang 3 > > u.s.w. > > > > > Hallo Noob, > > > > > > es wird demnächst Inline ASM geben, wir werden versuchen > > > dadurch die Ports schneller zu machen. Jedoch versprechen > > > kann ich noch nix. > > > > > > Grüße Ulli > > > > > > > Hallo Noob, > > > > > > > > die C-Control Pro benutzt zur Abarbeitung der Programme einen Interpreter: Ähnlich wie bei Java wird das > > > > Programm in einen Bytecode übersetzt, der vom Interpreter in der Firmware abgearbeitet wird. Genauso > > > > arbeiten auch C-Control I (beide Versionen) und C-Control II von Conrad. > > > > > > > > Es wird im Handbuch an vielen Stellen darauf verwiesen, das ein Bytecode Interpreter benutzt wird. Bitte sag > > > > mir, welche Stellen Du im Handbuch gelesen hast, dann bekomme ich einen Eindruck, wo noch weiter auf > > > > den Einsatz des Interpreters hingewiesen werden kann. > > > > > > > > Warum wurde ein Interpreter benutzt? Die Entwicklung eines Compilers, der effizeinten Assembler Code > > > > erzeugt dauert mehrere Mannjahre. Da Conrad die Software umsonst herausgibt, war dieser Aufwand nicht > > > > möglich, zumal da ja BASIC und C unterstützt werden sollten, hätte es denn Aufwand nochmal verdoppelt. > > > > > > > > Es ist augenfällig, das fast alle Compiler für den Atmel die Assembler erzeugen, nicht auf dem Chip selbst > > > > debuggen können. Oft wird nur ein Simulator mitgeliefert. Die Option wäre der Support von AVR Studio > > > > (das Conrad aus Lizenzgründen nicht mitliefern dürfte), aber da muß man auch noch mindestens einen ISP > > > > Adapter dazu kaufen. > > > > > > > > Am einsteigerfreundlichsten ist halt die Interpreterversion (die übrigens auch beim Speicherüberlauf warnt, > > > > was eine Assemblerversion nicht kann), aber ein Interpreter ist halt nicht so schnell wie richtiger Maschinen- > > > > code. > > > > > > > > Gruss Peter > > > > > > > > > Port_Write oder Port_WriteBit Befehle benötigen etwa 30 bi 36 mikrosekunden um die ports umzuschalten. > > > > > das ist für meine applikation aber mindestens um eine grössenordnung zu langsam. > > > > > > > > > > wie kann man das schneller machen. > > > > > > > > > > ich bin davon ausgegangen dass ein risc prozessor etwa einen takt braucht um so ein port zu ändern. > > > > > das wären dann aber 71 ns.mit 3 oder 4 takten wäre ich zufrieden gewesen. (300ns) > > > > > > > > > > liegt das am compiler ? > > > > > > > > > > ich wäre für einen tip oder trick sehr sehr dankbar da ich bereits etwa 600 Euro in meine Schaltung gesteckt > > > > > habe, für eine abschlussarbeit. 3 mikrosekunden würden gerade noch gehen maximal. > > > > > > > > > > um das festzustellen habe ich eine subroutine geschrieben 1000 mal aufgerufen mal mit 24 Portwrite befehlen > > > > > mal mit 48 und die zeitdifferenz die mir der ide angibt auseinander gerechnet. > > > > > > > > > > etwas geschockt Noob