Hallo Ich arbeite mich in wenig in PIC C ein. MPLAP X v1.90 Ist es möglich eine Variable in Assembler zu übergeben. Ich bekomme den Fehler. source\xyz.c:120: error: undefined symbol "TextDaten" void OutDaten(unsigned char TextDaten) { asm("movlw TextDaten"); #asm movlw TextDaten #endasm
Martin Michael schrieb: > movlw TextDaten Move Literal to W-Register! http://www.sprut.de/electronic/pic/assemble/befehle.html#movlw
Du meinst also nicht "in Ass..." sondern an Ass... übergeben und "MOVLW" war nur ein schlechtes Beispiel. Sry ka.
MPLABX..also geht es um den XC8 Compiler!? Versuche mal: #asm BANKSEL(_TextDaten) MOVLW(_TextDaten) ..... ..... #endasm bzw. noch besser: MPLAB XC8 C Compiler User’s Guide 5.12 MIXING C AND ASSEMBLY CODE
Chris B. schrieb: > MPLABX..also geht es um den XC8 Compiler!? Steht auch in der Überschrift. Martin Michael schrieb: > Ist es möglich eine Variable in Assembler > zu übergeben. Was soll der Mist bewirken? Wieso willst du das machen? Es gibt enorm wenige Anwendungen wo man sowas machen sollte. In 99,99999% aller Fälle ist es pfusch. Das macht dir alle Optimierungen des Compilers zu nichte, ist nicht zu debuggen und im Ernstfall zerschießt du dir (z.B. mit solchen Bank-Wechseln) dein ganzes Programm zu einem beliebigen Zeitpunkt nicht reprodzuierbar. Außerdem können die wenigsten Programmierer so effizient arbeiten wie ein C Compiler. Schon garnicht wenn sie nicht mit ASM groß geworden sind.
Danke für die Antworten Im C bin ich ein Frischling und da wäre es eben nun man toll am Anfang noch ein bisschen ASM zu benutzen. Mir ist schon klar das das auf Dauer keinen Sinn macht.
Martin Michael schrieb: > Mir ist schon klar das das auf Dauer keinen Sinn macht. Das macht schon Sinn, aber nur wenn man ganze Funktionen in ASM schreibt (z.B. Zeitverzögerungen, Zugriffe auf das interne EEPROM, extrem zeitkritisches Bit-Banging usw.). Diese Funktionen schreibt man aber nicht in eine C-Datei, sonder direkt in eine eigene ASM-Datei und bindet diese in das Projekt ein. Wie man das macht, ist alles im Handbuch des Compilers beschrieben.
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.