PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] M-Unit 2 genau so schnell wie M-Unit 1



28.08.2004, 15:25
hallo,

kann das sein?ich habe mit der alten M-Unit und über drei Digi-Ports ein serielles Display angesteuert. Jetzt hab mir die neue M-Unit gekauft, weil versprochen wird, das sie 20 mal schneller ist. Jetzt hatte ich beide am speicherscop und die daten aufzuzeichnen, und stelle fest das die neue genau so schnell ist wie die alte. kann das nun sein, oder mache ich an der neuen etwas falsch. wenn das so ist, wieso hat sie dann ein quarz mit 32 MHz, wenn ich doch mit meinem 4 MHz genau so schnell bin.
und noch eine frage, hat die C-Control irgendwo einen Takt-Ausgang? Vielleicht wird der interne Takt irgendwo rausgefürt.

x-ryder
28.08.2004, 16:16
Hallo,

Bin zwar kein spezi für die CCMU aber das mit dem Display liegt an der Geschwindigkeit des Displays und nicht an der MU...

Martin

28.08.2004, 16:19
hi,
ich habe die beiden M-Units nicht am Display gehabt, sondern zuerst die alte Unit gemessen, dann die neue Unit. Ausgänge waren nicht beschaltet. Mit Display hat das alles also nichts zutun.

x-ryder
28.08.2004, 16:23
Was hast du denn gemessen?

Martin

28.08.2004, 16:32
hab ja gesagt. das display wird über drei leitungen seriel angesteuert. hab also für die alte m unit ein program geschrieben, welches das display über drei digitalports ansteuert. nun hab ich einmal diese drei port bei der alten unit aufgezeichnet und einmal mit dem gleichen program die von der neuen unit. die Zeit ist, bis die units den seriellen bitstrom rausgeben bei beiden gleich. Rausgegeben soll zb. "HALLO"
dem display ist die geschwindigkeit, in einem bestimmten rahmen, egal.

recycle
28.08.2004, 16:47
dem display ist die geschwindigkeit, in einem bestimmten rahmen, egal.

Bist du sicher, dass das so einfach ist? Normalerweise muss bei einer seriellen Verbindung beiden Teilnehmern die Datenübertragungsrate, sprich Geschwindigkeit bekannt sein.
Bei deinem sriellen Anschluss an PC und Microcontroller musst du sie ja auch einstellen.
Wenn die Geschwindigkeit unbekannt ist, müssten die beiden Teilnehmer die Geschwindigkeit über irgendein Protokoll aushandeln. Wenn das bei deinem Display-Programm so sein sollte, wird das aber sicherlich auf die langsamste Geschwindigkeit hinauslaufen, da dein Oszi dieses Protokoll ganz bestimmt nicht beherrscht.

Warum nimmst du zur Messung nicht einen ganz normalen Port und tooglest ihn in einer Endlosschleife?

28.08.2004, 16:59
hi,
das display ist jetzt doch mal egal. und das program sendet auch nur ein bit nach dem anderem. da ist jetzt nichts was irgendwie mit dem empfänger(display) kommuniziert.
sagen wir mal die ccontrol soll einfach an einem digitalport das "hallo" in ascii, seriel rausschicken. So müßte doch die neue M-Unit schneller sein als die alte. Sprich wenn die neue ca. 20 mal schneller ist, dann braucht sie nur 1/20 der Zeit wofür die alte gebraucht hat. Ist das so, oder verstehe ich die Geschwindigkeitsangabe von Conrad falsch.
Bei mir brauchen beide für das gleiche serielle wort, die gleiche zeit.

x-ryder
28.08.2004, 17:48
Was benutzt du für eine Programmiersprache?

Und: Hast du nen Befehl benutzt wie spisend oder sowas?

Martin

God
28.08.2004, 18:00
Schich uns doch ma den Quellcode von dem Programm. Wenn du Befehle wie spisend oder was das in der Sprache dann ist nimmst, ist immer eine Baudrate festgelegt, deshalb is das auch nich schneller.
Oder hast du das Protokoll selbst programmiert mit wait befehlen?

mfg God

28.08.2004, 18:01
Hallo.....
Ich weiss nicht, was du da gemessen hast, aber
die neue Unit ist mehr als 25 mal so schnell.
Und zwar im Wesentlichen wegen dem direkten Zugriff
auf den Speicher (nicht seriell wie früher).
Der Bustakt ist 8MHz genüber 2 Mhz früher

DIE HARD

arthurik
28.08.2004, 18:03
hallo,

das program habe ich in basic geschrieben. also mit der alten software von ccontrol. bei der neuen m-unit gabs keine software dabei. deswegen habe ich probiert ob es mit der alten software geht. und es ging. die neue m-unit tut was es tun soll, nur mit der gleichen geschwindigkeit wie die alte m-unit.
den befehl spisend habe ich nicht benuzt. so ein befehl kenn ich auch nicht. hab auch in der beschreibung von conrad nicht gefunden. was mach der?

arthurik
28.08.2004, 18:13
also nochmal,
für dieses program brauchen beide unit die gleiche zeit:

hab grad gesen ist ein schreibfehler in program, in der zweiten zeil soll es DATA heißen nicht DATAN

28.08.2004, 19:04
Ich habe auf www.c-control-support.de zwei
Benchmarks geladen.
Jeweils für die neue und alte Unit mit Application
Board.
-----------------------------------------------------
Ich habe folgende Werte in deinem Programm gemessen:
alt neu
8ms - 390 us (x20) -> CLOCK TO CLOCK
1070 ms - 37ms (x29) -> TOTAL

DIE HARD

arthurik
28.08.2004, 19:23
was mach ich dann falsch, das bei mir beide gleich schnell sind. muß ich für die neue das andere program zum compelieren nehmen(welches beim neuen programmieradapter dabei ist)?

28.08.2004, 20:23
mh, ich denk ma das liegt am pulse befehl. denn der wird wohl eine bestimmte festgelegte zeit dauern.

mfg

God
28.08.2004, 20:24
war mein post.

28.08.2004, 21:57
haaa, ich habs.

ich hab in meinem programbeispiel die pause vergessen einzutragen, sonst wäre schon einer draufgekommen. meine schleife sieht so aus:

for ii = 1 to 8
pause 1
if (WERT and &h01) = &h01 then DATA = 1 else DATA = 0
pulse CLOCK
WerT = WERT shr 1
next ii

jetzt habe ich die pause rausgenommen und siehe da es läuft nun um einiges schneller.

28.08.2004, 22:04
Hallo...
Das neue Programm liegt auch auf dieser Website.
Das ist aber nicht die Ursache. Es gibt nur die
64 Variablen und die Ext. Ports frei.
Ich denke du machst einen Messfehler.
Was misst denn das Scope für eine Clockfrequenz.
und wie lange misst es die Prog. Laufzeit?

DIE HARD

28.08.2004, 22:14
mit pause messe ich 25 Hz bei der neuen und bei der alten. ohne pause hab ich bei der alten 100 Hz bei der neuen 2 kHz

Tappi
29.08.2004, 11:02
Naja der Pause Befehl ist ja immer noch bei 20 ms * x definiert.