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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hallo Jürgen, > > > > bin gerade in exakt die selbe Problematik gelaufen und nach ein bisschen Internetrecherche bei > > diesem Forumsposting von dir gelandet. Leider hast du bisher ja keine Antwort auf deine Frage > > bekommen. Jetzt würde mich natürlich interessieren, ob du mittlerweile vielleicht selbst zu einer > > Lösung des Problems gekommen bist? Wenn ja würde ich mich sehr freuen, wenn du deine Erkenntnisse > > mit mir teilen würdest, denn zur Zeit bin ich ziemlich ratlos, warum und wieso das alles passiert > > und was ich dagegen unternehmen könnte. > > > > Bestem Dank im Voraus und LG > > Tom > > > > > > > > Hallo Tom, > > bin zwar nicht Jürgen aber das Problem hat schon eine > Menge Leute beschäftigt. So war ich auch ab einer gewissen > Programmgröße immer wieder davon betroffen. Kann dir hier > mal kurz meine Vorgehensweise beschreiben. Ob es eine > allgemeine Lösung oder nur Zufall ist weiß ich aber nicht. > > Du erstellst mit der C-Control-IDE ein neues Projekt. > Dieses Projekt enthält nur eine Datei und zwar die > mit der main() Funktion. Alle anderen Funktionen werden > auf weitere Dateien, als Module, verteilt welche per #include > eingebunden werden. Keine dieser Module sollte zu groß werden. > Editiert und gespeichert werden diese Module in einer leeren > Projektmappe des Visual-Studios. Um es besser zu Verstehen hier > mal ganz grob der Aufbau. > > <code> > /*** main.cc ***/ > //------------------------------------------------ > > #include "WeatherStation.h" > #include "Display.cc" > #include "SDCard.cc" > #include "CT63Lib\CT63Terminal.cc" > #include "SystemTime.cc" > #include "CollectData.cc" > #include "SensorConditionerLib\SensorConditioner.cc" > #include "HumidityModuleLib\Humidity.cc" > #include "PressureModuleLib\Pressure.cc" > #include "DS2482Lib\DS2482.cc" > #include "DS18S20Lib\DS18S20.cc" > #include "Rainfall.cc" > #include "Level.cc" > #include "I2CLib\I2C.cc" > #include "Relays.cc" > #include "DCF77Time-1.01.cc" > #include "ThreadKeyboard.cc" > #include "ThreadDisplay.cc" > > //------------------------------------------------ > > void main(void) > { > > LCD_Init(); > DisplayResult(true, "Init LCD"); > DisplayResult(SDCardInit(), "SDC Init"); > DisplayResult(CT63Init(), "CT63Init"); > DisplayResult(CurrentLoopInit(), "Cur Loop"); > DisplayResult(I2CSensorsInit(), "I2C Bus "); > DisplayResult(DCF77Init(), "DCF 77 "); > DisplayResult(DCF77SetSystemTime(), "Set Time"); > > Thread_Start(THREAD_KEYBOARD, ThreadKeyboard); > Thread_Start(THREAD_DISPLAY, ThreadDisplay); > > while(1) > { > // bla bla bla > } > > } > > //----------------------------------------------------- > > </code> > > Gruß Torsten > > > > > > > > Hallo, > > > > > > ich habe seit ca. 10 Jahren 8..10 CControl Pro für die Regelung eines pneumatischen Aktuators > > > im Einsatz. Am Application Board sind die Tastatur und ein Display (4Zeilen x 20Zeichen) > > > angeschlossen. Auf dem Display wird ein 10zeiliges Menü dargestellt, durch das man mit den > > > Tasten "2" (up) und "8" (down) durchscrollen kann. Dafür werden die Bibliotheken LCD_lib.cc > > > und Key_lib.cc verwendet. Das komplette Programm läuft in main() in einer Endlosschleife > > > Jetzt das Problem: > > > Seit meiner letzten Softwareerweiterung hängt sich der Prozessor reproduzuierbar beim scrollen > > > durch das Display auf (aber nicht immer an derselben Stelle). > > > Nach mehreren Stunden Fehlersuche habe ich festgestellt, dass das Problem immer dann auftritt > > > wenn mein Bytecode >16kByte wird. Die funktionierende Version hat 16155 Bytes. Die nicht > > > funktionierende hat 16642 Bytes. Wodurch diese 16kB-Grenze überschritten wird scheint unerheblich > > > zu sein. Zum Testen habe ich bei der funktionierenden Version zusätzlichen Code zwischem > > > dem Ende der while-Schleife und vor dem Ende von main() eingefügt. > > > Dieser Code wird nie ausgeführt! > > > main() > > > { > > > while(1) > > > { > > > ... > > > } > > > // Code zum Testen > > > } > > > Das Aufhängen hatte ich auch schon vor dem Softwareupdate wenn ich die Option "CreateDebugCode" > > > aktiviert hatte. Ich habe das damals auf Probleme in Verbindung mit dieser Option geschoben. > > > Mittlerweile ist mir klar, dass es auch an der durch die Option deutlich vergrößerten Binärdatei > > > gelegen hat. Jetzt ist die Option definitiv deaktiviert. > > > > > > Ich bin sehr auf das Ergebnis der Problemsuche gespannt. > > > Vielen Dank schon mal und viel Erfolg. > > > Mit freundlichen Grüßen > > > J. Hooß