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 > > 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