- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Bascom-Entsprechung von x<<y (AVR-C)

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Anzeige

    Praxistest und DIY Projekte
    Zitat Zitat von Goblin
    welche version ist denn schneller?
    Ich hab mal verschiedene Befehle im Simulator angesehen:

    Code:
    Dim X As Word
    Dim I As Byte
    
    X.1 = 1              8 cycles
    I.1 = 1              8
    Set X.1              7
    Set I.1              5
    X = X Or 1          16
    I = I Or 1           7
    Gruß

    Rolf

  2. #12
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    ..klar, ... GCC Compilierzeit ....Bascom nicht.
    Eben. Bascom kann sowas wie
    CONST wert = 1 << 5
    eben nicht, soweit ich weiss. das geht nur zur laufzeit.
    Bestenfalls
    CONST wert = 2 * 2 * 2 * 2 * 2
    das ist aber wohl keine Alternative
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    51
    Beiträge
    2.253
    const wert = &B00100000

    kann Bascom sehrwohl
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  4. #14
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zitat Zitat von Vitis
    const wert = &B00100000
    kann Bascom sehrwohl
    Aber geh, das hätt' ich jetzt nicht gedacht

    Hast du gelesen, worum es geht ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von PicNick
    Bascom kann sowas wie
    CONST wert = 1 << 5
    eben nicht, soweit ich weiss.
    Das liegt ja nur daran, dass es keinen Shift-Operator gibt, sondern nur einen Shift-Befehl. Sowas wie

    CONST wert = 2 + 3

    kann Bascom schon und wertet es auch zur Compilezeit aus.

    Gruß

    Rolf

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    51
    Beiträge
    2.253
    sorry, aber die syntax 1<<5 erscheint mir eh
    hirnrissig wer sich den Käse ausgedacht hat
    hatte sadomasochistische Anwandlungen ...

    wenn ich n bit 5 setzen möchte, dann mach ich
    set variable.5 oder meinetwegen auch
    variable = variable or &B00100000 ...
    aber reinshiften, das dann doch vom compiler als
    set compiliert wird ... sorry, nicht mein Ding.


    dagegen ist asm ja richtig elegant ... SBI
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #17
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Na, da möcht ich aber doch den C verteidigen.
    Bits braucht man (meistens) auf zwei Arten:
    als Maske (&B00100000) für OR und AND
    und als Bit-offset ( 5) für Bit-SET befehle

    ein Port-Pin müßte man also zweifach definieren
    #define V_PB5 5
    #define M_PB5 0x20

    das ist gefährlich bei Projekt Anpassungen etc und vor allem grad bei µC recht umfangreich

    also definiert man nur
    #define V_PB5 5

    und die Maske eben direkt im Befehl
    XXbyte |= (1 << V_PB5) oder
    XXbyte &= ~(1 << V_PB5)

    das ist dann nur Arbeit für den Compiler, zur Laufzeit kost' das nix
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    07.11.2005
    Beiträge
    17
    Hallo,

    ist zwar schon etwas her aber wie wäre es mit dem Befehlen Bits() und NBits() zum stzen oder löschen einzelner Bits? Geht wunderbar und sieht übersichtlich aus.

    zb.: Admux = Bits(adlar , Refs0)

    In wieweit dies mehr Resourcen verbraucht kann ich allerdings nicht sagen.

    Mfg
    OEP

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress