Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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
Ich nutze:
C-Control Pro Mega128, eigenes Board
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: