Ist dann halt unpraktisch, wenn der µC anderer Meinung ist. Was soll denn das für eine ISR sein, die keine 2 Zyklen mehr verträgt ?
Es gibt rein theoretisch schon eine Möglichkeit, indem man die Konstante in bestimmten Registern vorhält, diese Register dürfen dann aber nicht von Bascom-Code verwendet werden.
Außer den von Bascom für bestimmte Funkionen reservierten Registern gibt's keine Garantie dafür, dass der Compiler ein bestimmtes Register nicht in den Code einbaut. Es gibt aber dezidierte Register, wie z.B. R8/R9, welches als Zeiger für Read verwendet wird, bei dem man sicher sein kann, dass es der Compiler außer für Read für nichts anderes verwendet. Sollte also kein Read im Code vorkommen, so wäre dieser Zeiger frei und man könnte ihn mit der Konstanten vorladen, dann braucht's im Code nur noch 2 STS.
Der Sinn erschließt sich mir wie gesagt jedoch nicht so recht, meist ist der Code noch woanders optimierungsfähig, so dass man diese 2 Takte locker reinbringt und keine solchen Verrenkungen benötigt.
Zeig doch mal, wie die ISR jetzt aussieht.
Lesezeichen