Wichtig!! Division durch Null killd meinen Mega32 Kategorie: CC-Pro Unit & Appl.Board (von Hannes - 19.08.2006 16:47) | ||
| ||
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 } | ||
Antwort schreiben Antworten: Re: Wichtig!! Division durch Null killd meinen Mega32 (von PeterS - 20.08.2006 10:05) Re: Wichtig!! Division durch Null killt meinen Mega32 (von Hannes - 21.08.2006 8:41) Re: Wichtig!! Division durch Null killt meinen Mega32 (von PeterS - 21.08.2006 10:05) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum