Also, wenn ich die Register manuell schreibe, läufts. Aber sobald ich die Sub CANWRITE benutze, ist Reg_val immer null ?! Die Variable wird nicht übergeben...

/edit/

Ich habe es nochmals getestet. Schreibe ich CNF1 manuell, d.h. ohne nutzen der Subroutine, funktioniert es bestens, ich lese den geschriebenen Wert wieder aus. Sobald ich die Subroutine verwende, ist immer Reg_val &H00, egal, welchen Wert ich übergebe. Nach mehrfachem durchlesen und vergleichen checke ich einfach nicht, warum das so ist. Die anderen Variablen werden korrekt übergeben ....