-         

Ergebnis 1 bis 8 von 8

Thema: Word-Konstante in Inline-Assembler lesen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143

    Word-Konstante in Inline-Assembler lesen

    Anzeige

    Hallo,

    kurze Frage.
    Ich verwende BascomAVR und schreibe ein paar Inline-Assembler-Routinen für ATMega-Controller.

    Ich stehe vor dem Problem, eine in Basic definierte Konstante (16 Bit)
    in der Assembler-Routine in die Register einzulesen.

    AVR Studio macht das so
    ldi r24,Low(Konstant_Name)
    ldi r25,High(Konstant_Name)

    Leider funktioniert das Low() und High() mit Konstanten in Bascom nicht.
    Wie macht man das in nun Bascom?

    Mitch.

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ich weiss im Moment nix Besseres, aber immerhin, es funzt
    Code:
    Const Konstant_name = 20000
    
    Const Kons_h = Konstant_name / 256
    
       $asm
       ldi   r24, Konstant_name
       ldi   r25, kons_h
       $end Asm
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    Die Idee ist ja schon mal brauchbar!
    Naja besser als kein High-Byte.

    Mir wäre als Alternative noch eingefallen, anstelle der Konstanten eine Variablen zu verwenden:

    Code:
    Dim Var_Konstante as Word
    
    Var_Konstante=&h1234
    
    LDI r24,{Var_Konstante}
    LDI r25,{Var_Konstante+1}

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Logo, geht auch, braucht aber Memory und Code.

    Der Bascom-Assembler ist halt eine dünne Sache.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    nimm doch overlay variablen ?
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    eigentlich wollte ich eine Konstante verwenden.
    Aber ist auch eine Möglichkeit um ans Ziel zu kommen.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    In BASCOM-Inline-Assembler kann/muss man LByte und HByte verwenden, also z.B.:

    Code:
    Const c1 = &H1234
    
    ldi r16, lbyte(c1)
    ldi r17, hbyte(c1)
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    Super!!!

    Genau das habe ich gesucht! Vielen Dank.
    Es funzt wunderbar!

Berechtigungen

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