mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Assembler-Code 8051


Autor: Christian Wiemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe hier ein Assemblercode-Beispiel füreinen 8051, welcher die
Nutzung eines Autopointers zur Übertragung eines 8-Byte Datenblocks vom
Endpunkt 4 OUT Buffer in den internen 8051 Speicher.

Init: mov dptr,#AUTOPTRH

mov a,#HIGH(OUT4BUF)          ; High portion of OUT4BUF buffer
movx @dptr,a                  ; Load OUTOPTRH
mov dptr,#AUTOPTRL
mov a,#LOW(OUT4BUF)           ; Low portion of OUT4BUF buffer address
movx @dptr,a                  ; Load AUTOPTRL
mov dptr,#AUTODATA            ; point to the ‘fifo’ register
mov r0,#80H              ; store data in upper 128 bytes of 8051 RAM
mov r2,#8                ; loop counter
;
loop: movx a,@dptr            ; get a ‘fifo’ byte
mov @r0,a                     ; store it
inc r0                        ; bump destination pointer
                              ; (NOTE: no ‘inc dptr’ required here)
djnz r2,loop                  ; do it eight times

Meine Frage bezieht sich auf die 2. MOV-Anweisung....
Ich will diesen Code in C realisieren, jedoch ist mir unklar, wie ich
die Anweisung in Zeile 2 "mov  a, #HIGH(OUT4BUF)" in C realisieren
kann, speziell die #HIGH Anweisung. Dasselbe gilt auch für #LOW in
Zeile 5 des Code.

Kann mir da jemand vielleicht einen Tipp geben, wie das mit C
realisiert werden kann.?

Vielen Dank im Voraus....

MFg  Christian Wiemann

Autor: Christian Wiemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als info, benutzen tue ich einen USB Controller der Firma CYPRESS mit
der Kennung AN2131Q


MFG CW

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*(char xdata *)(AUTOPTRH) = OUT4BUF >> 8;
 *(char xdata *)(AUTOPTRL) = OUT4BUF;
usw.


Peter

Autor: Christian Wiemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schonmal Danke für den Typ....

Habe es grad probiert, jedoch hat mir mein Compiler Fehler angezeigt.
Ich benutze den Keil in der Version 4.

Könnte es sein, das die Version den Befehl "Xdata" nicht erkennt, bzw
nicht verarbeiten kann?

P.S. Was bedeuten die Sterne in der Char-Anweisung?

MFG  CW

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.