
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> > > > Hallo, ich benutze eine C-Control I 1.2 und diese soll als Bordcomputer für eine von Studenten entwickelte Höhenrakete verwendet werden. Hierfür soll der Prozessor die Temperatur im Tank und den Luftdruck überwachen. Während die Rakete auf der Rampe steht sollen diese beiden Informationen kontinuierlich an einen angeschlossenen PC übertragen werden. Nach dem Start sollen die beiden Werte im internen Speicher abgelegt und nach der Bergung ausgelesen werden. Das Programm habe ich fertig und die Platine existiert auch schon. Leider habe ich das Problem das das Programm zwar sehr gut funktioniert, jedoch nach 31 Messzyklen immer eine 300 und dann 5000 ausgibt und dann seine komplette arbeit einstellt. Woran kann das liegen? Ich benutze ja auf der Rampe den Speicher nicht, weshalb dieser auch nicht voll sein kann. Die Zahl 31 taucht in meiner gesamten Programmierung überhaupt nicht auf. Hilfe! Bitte! > > > > > > ein Programmlisting könnte unter Umständen hilfreich sein. :-] > > > > Okay, dann mal hier das Listing. Ich dachte das währe zu lang um es hier rein zu setzen. > > Im Prinzip richtig. Aber ein "Mein Programm geht nicht." ist eben zu kurz. ;-) Schon mal ein Programm debugged? Wäre vielleicht angebracht. Baue mehr prints ein, um Programmablauf und Variablenwerte zu verfolgen. > > > define a byte 'Verschiebebyte um die Seriellen Daten hintereinander zu schalten > > define i byte 'Zaehlbyte der Uebertragenen Daten des A/D Wandlers > > define x word 'Messzyklenzaehler > > Sprechendere Variablennamen können Aussenstehenden das Lesen erleichtern. > > > #Luft 'Nach dem Start > > if x>301 then goto break > > x wird nirgends initialisiert, wenn ich das richtig sehe. > > > #log 'Speichern der Daten im internen Speicher > > open# for append > > if filefree then print# Counter else gosub filefull > > print# Vario1 > > print# Vario2 > > print# Dvario > > close# > > Counter = Counter+1 > > return > > > > #filefull > > close# > > return > > Wenn NOT filefree gilt, machst Du gosub filefull, das returned und dann machst Du munter mit print# Vario1 etc. weiter. Das ist nicht, was Du willst. > > Hält das Programm auch an, wenn Du alle externe Beschaltung abklemmst? Vielleicht gibt es einen Verdrahtungsfehler. > > Bye > Achim Hallo, ich habe die vorgeschlagenen Änderungen durchgeführt und sie haben auch einen Fehler behoben den ich hier noch nicht reingepostet hatte. Vielen Dank das ihr euch damit beschäftigt habt. Die unverständlichen Variablen bitte ich zu entschuldigen aber dies ist mein erstes Programm für C-Control und als Maschinenbauer entdecke ich gerade erst meine liebe zum programmieren ;-) Der hauptfehler wurde jedoch durch diese Änderungen nicht beseitigt, dieser lang nämlich beim Subprogramm #Boden. Dort habe ich nämlich geschrieben Temp=0, da Temp jedoch ein A/D Eingang ist, kam das Programm nicht damit zurecht das ich ihm vorzuschreiben versuche das der Eingang (an dem ja ein Signal anliegt) kein Signal hat. Vielen Dank an alle die sich damit beschäftigt haben, vor allem an Achim. Mit deinen Tips habe ich Fehler behoben von denen ich gar nicht wusste das sie da waren. Nochmal Danke! |
| Antwort schreiben |