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 Hannes, > > eine Division "killt" das System nicht. Die Rechenoperation ist danach undefiniert, es gibt > aber keine weiteren Auswirkungen. Wie sollte es auch? Der Interpreter kann nicht in das > Flash schreiben! > > Das Onboard EEPROM könnte vielleicht noch ein Problem sein, aber in den EEPROM Schreib- > routinen wird der Zugriff auf den dort geschützten Bereich unterbunden. Ein Booten mit SW1 > gedrückt geht aber immer in den Bootloader. > > Das ganze ist reine Koindzidenz. Wäre das Modul ausgefallen wenn Du auf das LCD ausgegeben > hättest, wäre die Überschrift gewesen: "LCD Zugriff killt Mega32!". Aber ich habe um ganz sicherzugehen > tatsächlich Deinen Code ausprobiert, und wie erwartet keinerlei Ausfall gehabt. > > Entweder das Board ist von alleine ausgefallen, dann ist es ein Garantiefall, oder Du hast selber einen > Kurzschluß oder Überspannung erzeugt. > > Schick doch vielleicht Dein Programm an ccpro@gmx.de, und ich schau mir an, ob mir sonst etwas > auffällt. Mehr kann ich leider nicht sagen. > > Gruss Peter > > > > > Ich schreibe gerade an ein Reglerprogr. für einen PI-Regler. Das ganze Programm hat > > einen Bytecode von ca. 2kB. Das Programm soll die Temp. von "Irgendwas" regeln, die > > Regelparameter werden am LCD angezeigt, T_Soll, Kp, Tn können während der Regelung > > mit einem Drehimpulsgeber beliebig verändert werden. > > > > Die Funktion "PI_Regler_Heizen" wird alle 500ms aufgerufen und Xd, Xds und Y werden > > jedesmal neu berechnet. > > > > Das Programm ist super gelaufen, bis ich Tn auf " 0 " gesetzt habe. > > Das LCD hat dann nach ein paar Sekunden nur noch wirre Zeichen angezeigt und dachte jetzt > > ist er abgestürtzt. Seitem ist das Modul tot! Es startet das Programm nicht mehr, > > und auch der Bootloader Modus beim Einschalten + SW1 kann nicht mehr aktiviert werden. > > Das Modul meldet sich nicht mehr. > > > > Ich weis, eine Division durch Null ist nicht definiert, das sollte aber das Modul nicht > > killen! Ich denke, dass dieser undefinierte Zustand irgendwas im System überschrieben hat. > > Wie reglet das System diesen speziellen Fall???????? > > > > Kann ich jetzt das Modul umtauschen? Einen 40EUR Verlust kann ich in diesem Fall nicht > > akzeptieren. > > > > Gruss > > > > > > > > // hier die relevanten Programmdaten: > > > > float T_Ist, T_Soll, Xd, Xds, Kp, Tn, Ta, Y; // globale Variablen > > > > // Startwerte > > Ta = 0.5; // Abtastzeit > > Kp = 10; // Proportionalitätsfaktor > > Tn = 1; // Nachstellzeit > > T_Soll = 30; // Solltemperatur > > // T_Ist wird von ADC0 eingelesen > > > > > > > > void PI_Regler_Heizen(void) // Aufruf alle 500ms > > { > > Xd = T_Soll - T_Ist; // Xd = Regeldifferenz > > > > Xds = Xds+Xd; // Xds = Summe aller Xd > > > > Y = Kp*Xd + Kp*(Ta/Tn)*Xds; // Y = Stellgrösse > > > > > > } > > > >