0x0A16 ist eine Byte-Adresse und 0x050B ist die dazugehörige
Word-Adresse (gerade die Hälfte). Es ist korrekt, die Byteadresse beim
CALL anzugeben.
Bei der Anzeige im Debugger kann es sein, dass die Word-Adresse
angezeigt wird, weil der Flash wortweise organisiert ist.
Also zuerst z.B. durch Disassemblieren prüfen, welcher Code bei
Word:0x050B liegt. Das ist möglicherweise der gleiche Code wie an
Byte:0x0A16. Ein gutes Gefühl für die Anzeige bekommt man, wenn man sich
die Interruptvektortabelle ab 0x0000 mal ansieht. Dann wird klar, ob die
Adressen in +1 Schritten hochzählen oder in +2 Schritten. Man kann sich
auch die <projekt>.LSS Datei des AVR-GCC mit dem ASM-C-Mix ansehen.
Wenn nicht, dann ist zu prüfen, wie du den Code an die Byte:0x0A16
Adresse geschafft hast und ob er wirklich dort gelandet ist. Wenn du
beim Code-Hochladen an Word:0x0A16 geschrieben hast, liegt dein Code bei
Byte:0x142C