Re: ports zu langsam Kategorie: Sonstige Hardware (von ThomasO - 29.04.2008 17:18) | ||
Als Antwort auf Re: ports zu langsam von UlliS - 25.04.2008 21:09 | ||
| ||
Hallo Ulli, Inline Assembler wäre klasse und würde sicher einigen helfen. Auch mein Problem im Posting "48 x PWM" wäre sicher durch eine kleine ASM-Routine zu lösen. Also schön am Ball bleiben mit ASM ;-) Gru� Thomas > 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 | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum