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
Als info, benutzen tue ich einen USB Controller der Firma CYPRESS mit der Kennung AN2131Q MFG CW
*(char xdata *)(AUTOPTRH) = OUT4BUF >> 8; *(char xdata *)(AUTOPTRL) = OUT4BUF; usw. Peter
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.