PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Basic++: SHL oder *2, was ist schneller?



toemchen
07.02.2006, 23:04
Hallo zusammen,

habe mir nun endlich die schon seit einigen Monaten herumliegende neue M-Unit vorgenommen.

Die von Conrad für teuer Geld erworbene CD mit den Tools - eine Frechheit. Sprachreferenz für Basic++: Lücken über Lücken.

Dabei scheint die Sprache einen gewaltigen Sprung nach vorne gemacht zu haben...

Ok, nun die konkrete Frage: Will einen seriellen AD-Wandler auslesen und muß ja dabei den Wandlerwert Bit für Bit hereinschlucken. Das würde ich sinngemäß mit so einer Schleife machen:

Ergebnis = Ergebnis + Wandlerausgangsbit
Clocken
Ergebnis = Ergebnis * 2
und wieder von vorne, bis alle 12 Bits

Ist das umständlich, gibts was praktischeres?
Außer Assembler, da wage ich mich später ran.
Ist Ergebnis = Ergebnis SHL 1 besser, schneller?

Wo gibts noch brauchbare Informationen zur M-Unit 2, außer z.B. beim Entwickler Tappertzhofen, wo die Online-Doku zumindest vollständig ist...

Grüße
Tom.

Tappi
10.02.2006, 17:52
Hallo,

SHL 1 ist schneller als die Multiplikation.

Gruß,

Stefan

toemchen
12.02.2006, 18:01
Dankeschön!

Im Moment bin ich noch bei Methode 1, der Multiplikation. Funktioniert auf jeden Fall.

Da ich ja Clocksignale für den seriellen Wandler generiere, kann ich den Geschwindigkeitsunterschied auch mit dem Oszi messen und werde ihn dann noch hier posten.

Das mit der lückenhaften Doku bitte nicht falsch verstehen...
Aber was gut wäre (und ja auch werbewirksam): Eine Zusammenfassung, was sich gegenüber dem ganz alten CControl in Richtung einer richtigen Programmiersprache verbessert hat. Nur ein Beispiel: if-then-else-endif mit ganzen Anweisungsblöcken dazwischen. Wer je mit dem alten if-gosub-else-gosub in einer Zeile herumstöpselte, freut sich riesig! Aber man muß es fast ausprobieren, aus dem Vorhandensein eines endif schließen oder einfach voraussetzen, denn in der Doku zur if-Anweisung ist es nicht so richtig explizit erwähnt.

Und dann noch etwas, das ich mir wünsche: Konstanten im Quelltext. Also solche, die beim Kompilieren gleich in direkte Zahlen umgesetzt werden (literals oder wie man das nennt, verstehst mich wohl schon) und keinen Speicher auf der CControl verbrauchen. Ist sowas in Planung?

Viele Grüße
Tom.

Tappi
12.02.2006, 18:44
Hallo,

Konstanten werden mit dem CONST Schlüsselwort definiert (wie in VB):

CONST i = 123

Wenn Du den Code noch schneller haben willst kannst Du auch Assembler nehmen.

Gruß,

Stefan

toemchen
12.02.2006, 18:57
Ach so, ich hab' das falsch verstanden: Ich dachte, eine Konstante nimmt vom Variablen-Speicherplatz auf der C-Control was weg.
Sie nimmt aber nur genausoviel Programmspeicher ein wie eine direkt im Quelltext verwendete Zahl.
Dann ists ok.
Danke!
Gruß Tom.