Hi, ich habe eine ganz simple Schaltung mit einem Atmega32, bei dem die Ports A,B und C zusammen mit den Pins 2-7 von Port D eine Matrix aufspannen, mit der dann (natürlich mit Dioden gegen Rückstrom) 144 Schalter ausgelesen werden können. Dazu Schaltet eine Timer-ISR jeweils einen der Pins von D auf Low, die anderen bleiben High, und checkt danach die Ports A-C. Um die Matrix etwas übersichtlicher zu machen, habe ich sie auf eine zweite Platine ausgelagert, die mit der AVR Platine mit 0,5mm² Kabeln in 2,54mm Phoenix-Schraubklemmen verbunden ist. Die Schalter sind Mil-Spec Switches von Cole; ich habe sie mal durchgemessen, sie schalten sauber durch mit nahezu 0 Ohm. Die übrigen beiden Pins von PortD verwende ich für den UART. Nun wird im Program einfach ein Array von der Timer-Routine mit den Werten der Ports A-C gefüttert und von der Main ausgelesen und mit einem zweiten Array "old data" verglichen. Wenn ein unterschied besteht, dann wird die Bit-Nummer und der zustand per UART verschickt. Das funktioniert auch bereits bei einem Bord mit einem einzelnen Schalter wunderbar, bei einem zweiten Board mit 10 Schaltern habe ich aber das Problem, daß, anfangs nur alle paar Sekunden, danach immer häufiger, "Blindwerte" geschickt werden, also auch wenn ich keinen der Schalter berühre. Meist ist es die Bitnummer eines einzelnen Schalters. Schalte ich diesen, passiert manchmal gar nichts, schalte ich dann einen anderen, wird es viel schlimmer. Die verwendeten Kabel sind ca 20cm cm lang, sind alle durchgemessen. Die abtastrate liegt bei ca 300Hz. Habt Ihr eine Idee, woran sowas grundsätzlich liegen kann? Softwarefehler kann ich denke ich ausschließen, da das Problem nur dann auftritt, wenn die Schalter angeschlossen sind.
Die SW besitzt einen Fehler in Zeile 42. Bei Bauteil 42 tritt Fehler 42 auf. Bernhard
Danke für die Hilfreichen Antworten. Das Projekt ist zu umfangreich um den Quelltext zu posten, der Schaltplan sieht einfach so aus, daß die Pins direkt auf eine Phoenix-Klemme gehn, von wo aus sie dann per Kabel (~10cm) mit der zweiten Platine verbunden sind. Dort wieder eine Klemme und die verbindung auf die Matrix K----------|----------|-------------| (Klemme zu einem Pin von PA-PC) | | | ^ ^ ^ (Dioden) | | | KK KK KK (Klemmen, zw. jedem Paar ein Schalter) | | | K---------|----------|-------------| (Klemme zu einem der Pins von PD) Dass eine Ferndiagnose bei einem speziellen Problem nicht geht ist mir schon klar, ich habe einfach bei Weitem nicht so viel Erfahrung in der Elektronik wie so manch anderer User dieses Forums, vielleicht gibt es bei solchen Schaltungen ja bekannte Probleme und Standardlösungen, die ich einfach nicht kenne. Darauf ziehlt das ganze ab. vuyfv frage nach Kapazitäten, gibt es eine Möglichkeit, herauszufinden ob es daran liegt?nn
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.