Eher richtig machen, weniger "optimieren".
1) Warum glaubst Du, dass XL/XH nicht durch anderen Code verändert wird ? Du lädst X nicht in der ISR, sondern addierst nur fleissig dazu, das geht so gar nicht.
2) Anderer Code wird nicht mehr arbeiten, wenn Du XL/XH verwendest ohne den beim ISR-Eintritt zu sichern, XH kann verändert werden, wenn eine Bytegrenze überschritten wird.
3) Du kannst Dir nur sparen das Carry per ADC auf XH aufzuaddieren, wenn Du sicher bist, dass die absolute SRam-Adresse des Arrays vom Compiler nicht an eine Bytegrenze gelegt wird. Beispiel für Word:
Index 1: HB/LB = &h01 &hFC
Index 2: &h01 &hFE
Index 2: &h02 &h00
4) SREG wird nicht gesichert.
Abschließend vielleicht noch die Frage an Dich, warum ich Dir denn eigentlich Beispiele geschrieben habe, wenn Du die weitestgehend ignorierst ?
Lesezeichen