PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie schnell ist eine c-control-unit ?



TypeLift
29.11.2004, 15:17
hallo leute,

ich gehöre noch nicht zum kreis der c-control-nutzer. ich würde aber gerne einsteigen.

bis jetzt konnte mir noch niemand sagen, wie schnell so eine unit ist!
eine anfrage in der cc2-gruppe "high-speed-thread für 128 LED" hat mir noch keine erkenntnis über den durchsatz einer cc2 gegeben.

[highlight=red:1811536cbe]wie sieht es mit der control-unit-1 / m-unit aus ?[/highlight:1811536cbe]

kann mir hier jemand sagen, wie schnell man 8-bit-paralleldaten auf die ports ausgeben kann, wenn man ansonsten nicht viel auf der unit verarbeitet ?

:arrow: wie schnell wäre etwa ein programm, das in basic geschrieben wird ?
:arrow: oder wie schnell wäre es etwa in assembler ?

mein programm soll pro umlauf 16 bytes (je 8 bit) aus dem speicher lesen und einfach auf die ports1-8 ausgeben.
also 16 x (1x byte lesen, 1x auf port1-8 schreiben, 1x schleifenvariable inkrementieren, loop)

gruss und besten dank falls jemand ahnung hat

martin

TypeLift
17.12.2004, 20:45
hallo leute,

also ein wenig enttäuscht bin ich natürlich schon, dass keiner der experten in diesem forum die geschwindigkeit einer c-control-unit abschätzen kann!!
aber gut...

ich habe jetzt eben doch eine m-unit2.0 zum testen gekauft und den durchsatz damit selbst ermittelt.
unten sind die ergebnisse meines benchmarktest angegeben, falls jemand ebenfalls mit der performance der c-control-unit zu tun hat.

für meine anwendung muss ich nacheinander 16 bytes auf die ports schreiben und jeweils noch einen pulse auf ein schieberegister (ca. 33µs elektronisch verzögert) geben, damit die richtige zeile angesprochen wird, wenn die parallelen daten anstehen.

das macht also im minimum 16 x write + 16 x pulse + 1 x goto
= 16 x 33 + 16 x 25 + 17 = 945 µs ==> 1058 Hz wiederholrate.
das ist ausreichend und bei tageslicht flimmerfrei!

das lesen aus dem flash-speicher lasse ich lieber sein. weil das zusätzliche 16 x 94 µs kostet.
überhaupt habe ich festgestellt, dass zugriffe auf konstanten (if a=1 then) geringfügig langsamer sind als zugriffe auf variablen (if a=b then).


hier die testergebnisse:


Benchmarktest M-Unit 2.0 mit Standard-CCBasic

Portausgabe_____________Dauer in µs
Tog (Flankenwechsel)___________25
Pulse (2 Flankenwechsel)___________25
Write Byte (=8 Bit)___________33
Write Bit ___________45
Write Bit const___________49
Branch
Goto #Marke___________17
If False (=Byte) Then ___________80
If False (=Word) Then ___________84
If False (>Word) Then ___________91
If False (Bit=const) Then___________98
If False (Bit=Bit) Then ___________108
If True (>Word) Goto #Marke___________101
Unterprogrammaufruf
Gosub...Return___________37
If True (=Byte) Gosub...Return___________115
If True (>Word) Gosub...Return___________120
Zähler
i=i+x (Byte)___________70
i=i+x (Word)___________72
i=i+1 (Byte)___________74
i=i+1 (Word)___________79
Schleifen
For-Next Byte___________85
For-Next Word ___________98
Datei
1 Word aus Flash-Datei lesen (inkl. EOF Check )___________94

pebisoft
17.12.2004, 22:01
warum stellts du fragen, die du nachher selber beantwortest. versteh ich nicht...!!!!.
mfg pebisoft

Tappi
17.12.2004, 22:38
warum stellts du fragen, die du nachher selber beantwortest. versteh ich nicht...!!!!.
mfg pebisoftVermutlich weil keiner die Antwort wußte, er aber eine Lösung gesucht hat und diese jetzt dem breiteren Publikum zur Verfügung gestellt hat.

Gruß,

Stefan