Gast
#5299448
Schon am Anfang meiner Abenteuer mit Mikroprozessor habe ich bemerkt etwas seltsames. Beim Beruhigen mit Finger vom Gehäuse vom meinem PIC18F2680 kam zum seltsamen verschiedenen Störungen. Mein „System“ wuchs ständig. Letzte Erweiterung war Multiplexer dankt dem habe ich zu Verfügung genug I/O´s (16 digitale Ausgänge, 8 Analoge und 8 digitale Eingänge). Fast alle Ports meines Mikroprozessor waren im Einsatz. Von Störungen war nicht zu merken. In der letzte Zeit habe ich auch Temperaturmessung mit MAX6675 Modul integriert. Der Dialog per SPI mit MAX6675 lief einwandfrei. Jetzt wollte ich mein Mikroprozessorsystem für Steuerung von einem Elektroofen verwenden. Ich brauchte nicht so viele IO´s und als erste habe ich alles was den Multiplexer steuert (Pins vom Port A...) vom Programmcode entfernt. Und... Jetzt funktionierte Temperaturmessung über MAX6675 Modul nicht mehr richtig. Es kamen richtige Messwerte aber dazwischen auch viele Fehler. Einfluss von „beruhigenden Finger „ war wider da...Analyse... Signal PinNoSelect für MAX6675 kommt von PORT A. Andere Pins von PORT A waren vorher für Multiplexer verwendet. Jetzt waren sie i Programmcode nicht mehr da und hardwaremäßig in der „Luft“. Defaultmäßig waren sie als Eingänge definiert. Die Lösung: Am Anfang muss man alle Ports vom Mikroprozessorsystem als Ausgänge definieren und sie auf 0 setzen. So schließt man das System gegen Störungen. Und meinen Anfänger Fehler kann man auch so verstehen. Man sieht nur die Pins die man braucht... Meine main Funktion wird immer so aussehen: void main(void) { //Deklarationen LATA=0; TRISA=0; LATB= 0; TRISB = 0; LATC = 0; TRISC = 0; ...