Das Problem ist gelöst.
Ich habe eben das Programm direkt in Assembler geschrieben und siehe da, es funktioniert alles richtig.
Das Timing stimmt.
Dann hab ich es wieder in C geschrieben und mir den Assemblercode nochmals genauer angesehen.
Wenn ich NUR Portzugriffe mache, wird dies 1 zu 1 mittels bcf und bsf in Assembler umgesetzt.
Wenn ich aber einen NOP() mit einbaue, dann erzeugt der C-Compiler hinter einem NOP einen zusätzliches Bankselect Befehl.
Gibt zwar keinen Sinn, aber so macht er es ebenda sind dann meine zusätzlichen 500 Nanosekunden.
Also muss ich mich selbst revidieren, er erzeugt doch einen BANKSELCT, den ich uebersehen habe.
Siro
Lesezeichen