Hallo zusammen,
ich wollte "mal wieder" etwas Assembler in meinen XC8 Code bringen,
dafür wollte ich aber keinen neuen Thread öffnen, daher führe ich das mal hier weiter:
Der XC8 inline Assembler scheint irgendwie überhaupt nicht mit dem XC8-Compiler zu harmonieren.
Ich kann weder auf Variablen noch auf Konstanten zugreifen, es gibt ständig nur Fehlermeldungen.
Hier mal ein Auschnitt des Screenshoots: ich hab mal den Fehlermeldungen daneben geschrieben
Hier ein Ausschnitt des inline Codes:
was mache ich denn falsch ?, das kann doch nicht so kompliziert sein.....Code:#define LED_COUNT 24 unsigned char LedArray[LED_COUNT]; unsigned char byteCount; unsigned char bitCount; void LedShiftOut(void) { asm("BANKSEL LedArray"); asm("LFSR FSR0,LedArray"); asm("BANKSELECT byteCount"); asm("movlw LED_COUNT"); asm("movwf byteCount"); asm("ByteLoop:"); asm("movlw 8"); asm("movwf bitCount"); asm("movwi fsr0++"); asm("BitLoop:"); asm("RRF WREG,F"); asm("btfss STATUS,Z"); asm("goto isOne"); asm("isZero:"); asm("bcf LATA,5"); asm("NOP"); asm("NOP"); asm("goto BitLoop"); asm("isOne:"); asm("bsf LATA,5"); asm("NOP"); asm("NOP"); asm("decfsz bitCount,F"); asm("goto BitLoop"); asm("decfsz byteCount,F"); asm("goto ByteLoop"); // 50us Pause }
Es wird mir wieder Mal nix anderes übrig bleiben als den gesamten Code in Assembler zu programmieren.
[edit]
auf dei Variablen kann ich evtl. zugreifen wenn ich einen Unterstrich benutze, zumindest meckert der Compiler dann nicht.
Es bleiben aber noch genug Probleme übrig...![]()







Zitieren

Lesezeichen