Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > Hallo Wema, > > > > > Und dann habe ich meinen Programmcode optimiert, d.h. sämtliche Teile, die ich nur für das 4x20LCD > > > benötigte, hinausgeschmissen. Da der Code für aämtliche Menüs etc. auf dem eDIP einfacher zu > > > programmieren ist, habe ich eine Menge Code gespart. Mein jetziges Programm hat nur noch eine > > > Größe von rund 18.000Words. Und seit dieser Version habe ich auch die Probleme: Die Touchbuttons > > > reagieren nicht mehr auf jeden Druck, sondern meist nur noch auf den 2. bis 5. Und weiterhin passiert > > > es öfter, dass bei einem Menüpunkt plötzlich ein anderer angezeigt wird, den ich vorher ohne Erfolg > > > betätigt hatte. Ich habe seit 3 Tagen den Code überprüft und keinen Fehler finden können. Ich möchte > > > den Code hier nicht abdrucken (ginge auch gar nicht), hoffe aber dennoch auf Eure Hilfe: Kann es sein, > > > das der Zugriff auf den I2C-Bus durch den geringeren Code zeitlich problematischer geworden ist? > > > > Nein, eigentlich nicht. > > Außer, Du schickst zu viele Daten an das eDIP, so daß diesesnicht hinterherkommt. > > Das kann ich mir aber kaum vorstellen. (Im Zweifelsfall testweise ein paar Sleeps einbauen.) > Hallo Wema, > habe Dein Posting gefunden (wenn auch schon etwas alt), da ich ähnliche Probleme (hoffentlich) > hatte ... Meine Lösung/Ursachenforschung sieht derzeit folgendermaßen aus: > Ich hatte einen freien Touchbereich definiert (ESC "AH") der mir meine ganze Interrupt-Steuerung > (wait not ports.get(14)) durcheinander gebracht hat. Die Untermenüs und Menüaktionen sind - wie > bei dir beschrieben unvorhersehbar gekommen bzw. nicht gekommen ... > Dank des Tipps von Andre (in einem anderen Posting) habe ich eine LED an den Interrupt-Ausgang des EDIPS > gehängt ... und siehe da: sobald man den frei definierten Touchbereich berührt, blinkt diese > mehrmals unregelmäßig auf (vermute mal, dass da das "drag" des Touchbereichs zuschlägt - ist aber > auch egal :-)). Klar, dass meine ganze Logik durcheinander kommt, da bei jedem Aufblitzen > der LED etwas in den Sende-Puffer des edips gestellt wird ... Vielleicht irre ich mich auch ... > Auf jeden Fall habe ich den freien Touchbereich durch einen "normalen" TouchKey (ohne Rahmen) > ersetzt und seitdem funktioniert das ganze: Wenn ich einmal draufdrücke, dann leuchtet die LED > (Interrupt edip) auch nur einmal (und nicht mehrere male). Bis jetzt läuft das ganze ohne Probleme > (zwar erst einen Tag, bin aber zuversichtlich ...). > zusätzlich baue ich einen sleep zwischen 15 und 30 nach jedem edip Befehl ein. Ob das unbedingt > notwendig ist? Jedenfalls "verschluckt" sich das edip kein einziges mal ... > <code> > edip.setTouchFont(edipAddress,6); sleep 15; > edip.setTouchFrame(edipAddress,0,0); sleep 15; > edip.touchKey(edipAddress,1,5,40,120,0,5,1,"R|o|L|a"); sleep 30; > </code> > Für nicht Hardware-Lötkolben-Freaks die Bauanleitung für die LED: > Low current LED (2 mA) mit 1,5 kOhm Widerstand an INT (edip-Platine) und +5 Volt hängen. > Polarität der LED nicht verwechseln (langes Bein: +5 Volt) > > Hoffe, Du hast die Probleme schon selbst gelöst ... aber falls einer mal nach demselben Problem > sucht, wird er hier vielleicht fündig. > Dank an alle, die Ihre Lösungen und Tipps hier im Forum kundtun! > Gruß, RR > > > > > > Muß ich etwa jeden ZUgriff durch das eDIP auf den BUs möglicherweise capturen? Ein ausprobieren > > > wäre für mich mit viel Arbeit (und möglicherweise unnötiger) verbunden. Daher hoffe ich auf einen > > > Hinweis aus Euren Reihen. Reicht zur Kollisionsvermeidung augf dem I2C-Bus nicht bereits, das > > > Andre in seinen Modulen capture-Befehle hat? > > > > I²C-Bus-seitig ist bereits alles gecaptured. > > Hier kann es durch Multithreading zu keinen Problemen kommen. > > Nur, wenn man eine Ebene höher geht, also z.B. dasselbe eDIP aus unterschiedlichen Threads > > anspricht, muß man wieder capturen. > > > > > Hat jemand ähnliche Probleme gehabt und konnte diese lösen?? > > > > Hatte ich bisher leider nicht. Sorry. > > > > Überwache einmal den Interruptausgang des eDIPs beim Drücken einer Taste. > > (Zur Not eine LED anschließen.) > > > > MfG André H.