Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

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 !  

> So Erich, > > langsam reichts mir !! > So etwas, wie Netiquette sagt Dir sicher nichts. > Denn dann würdest Du nicht unzählige neue Threads zum selben Thema aufmachen. > Deshalb habe ich dieses Posting auch in einen vorhandenen Thread verschoben. > Jetzt können sich ein paar Kunden bei Dir bedanken, daß ihre Bestellungen > heute nichtmehr rausgehen, da ich im Forum posten muß! > > Ich habe Dein gemailtes Programm gestern Abend auf eine Unit geladen. > Es lief über Nach auch am Morgen noch einwandfrei ohne irgendwelche Änderungen > der Geschwindigkeit, ohne irgendein Aufhängen oder anderer Dinge. > Hier nochmal Dein Programm: > <code> > //------------ > thread main > //------------ > { > int i, bool; > string s; > long z; > lcdext.init(); > i = 0; > bool = 0; > > plm.settimebase(0,0); > plm.setmode(0,0); > plm.setperiod(0,3000); > > plm.settimebase(1,0); > plm.setmode(1,0); > plm.setperiod(1,3000); > > plm.settimebase(2,0); > plm.setmode(2,0); > plm.setperiod(2,3000); > > loop > { > if i >= 3000 > bool = 1; > if i <= 0 > bool = 0; > > if bool == 0 > i = i + 50; > if bool == 1 > i = i - 50; > > plm.out(1, i); > plm.out(0, i); > plm.out(2, i); > > s=""; > str.putlong(s, ports.getcount(1)); > lcdext.goto(1,0); > lcdext.print(s); > lcdext.goto(2,0); > lcdext.print("Trallala"); > sleep 500; > lcdext.clear(); > > s=""; > str.putlong(s, ports.getcount(2)); > lcdext.goto(1,0); > lcdext.print(s); > lcdext.goto(2,0); > > lcdext.print(" und "); > sleep 500; > lcdext.clear(); > > s=""; > str.putlong(s, ports.getcount(3)); > lcdext.goto(1,0); > lcdext.print(s); > lcdext.goto(2,0); > lcdext.print("Hoppsasa"); > sleep 500; > lcdext.clear(); > } > quit 1; > }</code> > > Ich habe nur ein <code>quit 1;</code> nach der Schleife eingefügt, um erkennen zu können, > falls die Schleife verlassen wird, was erwartungsgemäß nicht geschehen ist. > Übrigens kann man das Programm noch um einiges kompakter und optimierter schreiben. > > Ich glaube Dein Hauptproblem liegt immernoch im Ignorieren sämtlicher Dokumentation. > Prüfe daher bitte einmal, ob Du vielleicht mehrere Softwareversionen der Module, der IDE > und HEX-Dateien gemischt hast. > Denn das wäre der einzige Grund, warum es z.B. zu einem Stackunderflow oder > Stackoverflow kommen könnte, wenn die Einsprungadressen von älteren Modulen > zu neueren HEX-Dateien oder von neueren Modulen zu älteren HEX-Dateien genutzt. > > D.h. in Deinem Fall, daß Du folgende Schritte jetzt vornimmst: > - Deinstalliere die IDE > - Lade die aktuelle IDE mit SP herunter und installieren diese > - Lade nun alle Module herunter, die seit erscheinen des letzten SP erschienen sind > und kopiere diese entsprechend in die Lib-und UserLib-Verzeichnisse > - Lade Dir OSOPT V3.1b1 herunter und lade es mit dem CC2Net.de-Download-Tool in die CC2. > - Lade nun sys0002.hex mit vorherigen Löschen von Segment 3 in die CC2. > > Wenn Du das geschafft hast, reden wir weiter. > > Was den Stack angeht, so kannst Du hier nichts konfigurieren. > Der komplette restliche RAM, der nicht für Globale Variablen verwendet wird, wird als Stack verwendet. > > Und was Du jetzt mit den Long-Variablen hast, kann ich auch nicht verstehen. > Long-Variablen haben einen 32Bit Bereich. Und hier gibt es keine Probleme. > Du mußt nur eine Kleinigkeit beachten, wenn Du Integer und Long-Berechnungen mischt. > Aber das steht auch in den FAQ. > > <b>Und, um es nochmal klipp und klar zu sagen: > Die einzigen Bugs, die die CC2 derzeit hat, liegen im Bereich von HWCOM > beim Empfang sehr großer Datenmengen an einem Stück. > Aber selbst das tritt nur sehr selten in Einzelfällen auf, so daß ich das nur sehr schwer reproduzieren kann. > Ansonsten sind keinerlei anderen Bugs bekannt. > Meinst Du nicht, daß solche Dinge, die Du beschreibst, nicht auch anderen auffallen müssten ?? > Jedoch gab es in den letzten 6 Jahren keine einzige solche Meldung. > Dabei sei noch angemerkt, daß viele Programme größer 50kB VM-Code sind. > Ich habe auch einige eigene und auch Kundenprojekte, die sogar über 100kB VM-Code, > unzähle Threads haben und sehr viel RAM benötigen. > > Aber solange Du so voreingenommen auftrittst, daß "Du unfehlbar bist und es > nur am System/Controller liegen kann", kann Dir kein Mensch mehr helfen.</b> > > Und nochetwas, weißt Du warum ich in meiner Signatur stehen habe, daß ich > auf keine Mails von Forenpostings antworte ? > Denn sonst hätte ich den gesamten Tag nichts anderes mehr zu tuen, außer > auf Mails zu antworten.. > > > Also, bevor noch weitere Postings von Dir kommen, die angebliche Bugs der CC2 > zeigen sollen, die einfach nicht existieren, prüfe ersteinmal alles andere. > Denn ich arbeite tagtäglich mit der CC2, habe bei vielen Kundenprojekten mitgewirkt > und betreue auch einiges an Software. > Meinst Du nicht, daß ein solcher nicht existierender Bug, wie Du ihn beschreibst, > mir irgendwie in den letzten Jahren aufgefallen wäre ?? > > > André > > > > > Also nachdem mir ein Mikrocontrollerfachmann den Tipp gegeben hatte, alle unnötigen Variablen > > (also die, die eigentlich der Lesbarkeit dienen und für den gleichen Wert an mehreren Stellen sorgen) > > rauszuschmeißen, weil alles auf einen Stack-Überlauf hindeutet - vor allem, dass das Programm > > weiterkommt, seit ich das gemacht habe, bestätigt dies. Da es sich um ein multithreading-System > > handelt, ist jedem thread ja eine default-Größe zugeordnet. Ich habe sinnigerweise aber nur einen > > thread und von daher wäre es schön, wenn mir jemand sagen könnte, wie ich die "stack size" > > erhöhe. > > > > In meinem kleinen Testprogramm wird die loop-Routine ja immer langsamer und hängt sich zum > > Schluss auf: > > auch ein Zeichen. > > Da dort aber nicht so viele Variablen vorkommen, führe ich das auf einen Bug zurück. > > Die Pulsereien gehen einzeln. Allerdings geht das irgendwann schief, sobald das Display dazukommt. > > Im Moment bin ich am Testen: ich lasse eine long-Variable hochzählen und ausgeben. > > Interessant ist, dass long bei CC2 von -32768 bis 32767 geht :) So ein Quatsch ;)
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB