-         

Ergebnis 1 bis 5 von 5

Thema: Basic++: SHL oder *2, was ist schneller?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2004
    Ort
    München
    Alter
    49
    Beiträge
    444

    Basic++: SHL oder *2, was ist schneller?

    Anzeige

    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.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.06.2004
    Ort
    Düsseldorf
    Alter
    33
    Beiträge
    158
    Hallo,

    SHL 1 ist schneller als die Multiplikation.

    Gruß,

    Stefan
    http://www.tappertzhofen.eu/bpp2

    Basic++ Programmiersprache
    für den C-Control I Mikrocontroller

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2004
    Ort
    München
    Alter
    49
    Beiträge
    444
    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.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.06.2004
    Ort
    Düsseldorf
    Alter
    33
    Beiträge
    158
    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
    http://www.tappertzhofen.eu/bpp2

    Basic++ Programmiersprache
    für den C-Control I Mikrocontroller

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2004
    Ort
    München
    Alter
    49
    Beiträge
    444
    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •