Erst 'mal danke für die vielen Hinweise, die mir aber leider nicht
geholfen haben.
>Gib den offenen Pins einen definierten Zustand.
Mein ursprüngliches Programm hatte alle Ports als digital output
konfiguriert, d.h. bis auf Spannungsversorgung und MCLR (Pin 1) ist da
nichts undefiniert. Das hat aber nichts verändert.
>Könnte ein "read modify write" Problem sein, da die Loop nur eine
>einzige Zeile mit hohem Tempo ausführt. D.h. das entsprechende Register
>wird schon wieder ausgelesen, obwohl es noch gar nicht den definierten
>Zustand hat.
>Die Loop testweise etwas verlangsamen liefert die Antwort, ob es daran
>liegt.
Hat nichts geändert. Das hätte mich auch gewundert, denn laut Datenblatt
ist der neue Wert ca. 1/2 Takt nach Ausführung des writes am Pin
sichtbar. Und die Schleife ist immerhin 3 Takte lang.
>Bei als Ausgang definierten Pins aber nicht. Da ist es eher das
>CCP-Modul bzw Komparator-Modul meine ich.
Stimmt, die Pins sind alle mehrfach genutzt. Bei Port C zum Beispiel für
LCD, CCP, T1OSC, MSSP u.a. Laut Datenblatt sind die ganzen
Spezialfunktionen nach POR aber erstmal ausgeschaltet. D.h. man
initialisert den Port und kann direkt damit arbeiten. So kenne ich es
jedenfalls von diversen anderen PICs.
>Ansich sollte "f" immer als "1" definiert sein, war bei mir jedenfalls
>bisher immer so. Zur Sicherheit probier mal mit 1 direkt. Zudem auch wie
>schon erwähnt die Schleife verlängern bzw eine wartefunktion mit
>reinpacken.
>Messen tust du aber an jedem Pin oder nur an dem gleichen?
F ist 1, habe ich kontrolliert. Und gemessen habe ich alle Pins. Port A
und B funktionieren übrigens auch nicht.