Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Ungewolltes Anhalten der C-Control Kategorie: C-Control I V1.2/2.0 (von Olaf - 4.07.2007 8:00)
 Als Antwort auf Re: Ungewolltes Anhalten der C-Control von der im Wald steht - 3.07.2007 15:00
Olaf nutzt:  CC1-M-Unit V1.2/2.0
> > 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.

'Definition der Variablen
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
define Bit word                            'Biterstellung aus der Seriellen Datenuebertragung des A/D Wandlers
define Pointer byte                      'Überspringen unnötiger Rechenoperationen nach Fallschirmausloesung
define Bitwert word                      'Umwandlung vom Hoechsten Bit zum Niedrigsten
define Summewert word               'Summierung der Seriellen Bits in ein Datenwort
define erg1 word                          'Beliebiges Ergebniss (Mehrfachverwendung!!!)
define Vario1 word                       'Umgebungsdruckmessung1
define Vario2 word                       'Umgebungsdruckmessung2
define Dvario word                        'Druckabgleich
define Temperatur word                'Temperatur vom Analogeingang
define Counter word                     'Zaehler beim Loggen

'Aus- und Eingaenge definieren
define SDO Port [1]                           'A/D Wandler Datenausgabe
define CS Port [2]                              'A/D Wandler Aktivierung
define SCK Port [3]                            'A/D Wandler Synchronisation
define RELAIS Port [16]                     'Schaltausgang Fallschirmauslösung
define RAMPE Port [9]                       'Eingang "Steht auf Rampe"
define GROUNDED Port [10]              'Eingang "Geborgen und Datenauslesen"
define TEMP AD [1]                           'Analoger Temperatursensor
define LAMPE Port [11]                     'Rechenoperationsanzeige

'Beginn des Programms
#Start
LAMPE=1                                         'Dient der Funktionsüberwachung
pause 50
LAMPE=0
if RAMPE=0 then goto Luft else goto Boden

#Boden                                                 'Am Boden, auf Rampe oder geborgen
if GROUNDED<>0 then goto Ground       'Abfrage: Vor Start oder bereits geborgen?
Vario1=0
Temp=0
gosub Auslesen1                                   'Auslesen des Umgebungsdruckes
Vario1=erg1
Temperatur=0
gosub Auslesen2                                   'Auslesen der Tanktemperatur
gosub DatenausgabeRampe
pause 50
goto Start

#Auslesen2                                           'Auslesen der Temperatur
Temperatur=TEMP
Return

#DatenausgabeRampe                           'Einfach Datenausgeben an die Serielle Schnittstelle
Print Vario1,Temperatur
Return

#Luft                                                     'Nach dem Start
if x>301 then goto break
Vario1=0
Vario2=0
Dvario=0
gosub Auslesen1                                   '1.Druckmessung
Vario1=erg1
pause 27
gosub Auslesen1                                   '2.Druckmessung
Vario2=erg1
Dvario=Vario2-Vario1                              'Druckabgleich: Steigt die Rakete oder fällt sie schon wieder?
gosub log
If Pointer=1 then goto A
If x>5 then gosub FallschirmScharf
#A
x=x+1
goto Start

#Auslesen1                                          'Auslesen des Umgebungsdruckes
SCK=0
CS=1
Cs=0
Wait SDO=0
FOR i=1 to 4
SCK=1
SCK=0
Next
Bitwert=0
Summewert=0
erg1=0
for i=1 to 15
SCK=1
Bit=SDO*-1
a=15-i
Bitwert=Bit SHL a
SCK=0
Summewert=Summewert+Bitwert
Next
erg1=Summewert
CS=1
SCK=0
CS=0
Return

#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

#DatenausgabeBoden                                           'Auslesen der geloggten Flugdaten
open# for read
Print "Ausgabe der Daten:"
Print ""
#Dumpnext
if eof then goto EndOfFile else input# Counter
input# Vario1
input# Vario2
input# Dvario
print Counter,Vario1,Vario2,Dvario
Print ""
goto Dumpnext

#EndOfFile
Print "Daten Ausgelesen"
close#
End

#break
wait GROUNDED<>0
goto Ground

#FallschirmScharf                                         'Verhindert auslösen des Fallschirms vor verlassen der Rampe
if Dvario>15 then gosub Ausloesen
Return

#Ausloesen                                                  'Fallschirmauslösung
RELAIS=1
Pointer=1
return

#Ground                                                       'Rakete geborgen, Auslesegerät angeschlossen
goto DatenausgabeBoden

 Antwort schreiben

Bisherige Antworten:

Re: Ungewolltes Anhalten der C-Control (von Achim - 5.07.2007 3:23)
    Re: Ungewolltes Anhalten der C-Control (von Olaf - 5.07.2007 13:48)
        Re: Ungewolltes Anhalten der C-Control (von Achim - 6.07.2007 3:39)
Re: Ungewolltes Anhalten der C-Control (von hecktor - 4.07.2007 10:53)
    Re: Ungewolltes Anhalten der C-Control (von Achim - 5.07.2007 3:25)
        Re: Ungewolltes Anhalten der C-Control (von hecktor - 5.07.2007 8:33)
            Re: Ungewolltes Anhalten der C-Control (von Achim - 5.07.2007 11:52)
    Re: Ungewolltes Anhalten der C-Control (von Olaf - 4.07.2007 16:26)
        Re: Ungewolltes Anhalten der C-Control (von Hauk - 5.07.2007 14:20)
        Re: Ungewolltes Anhalten der C-Control (von Stefan Süßmann - 4.07.2007 16:44)
            Nachtrag! (von Olaf - 7.07.2007 0:54)
                Re: Nachtrag! (von Achim - 7.07.2007 14:12)
                    Re: Nachtrag! (von Olaf - 9.07.2007 15:10)
                    Re: Nachtrag! (von Hauk - 9.07.2007 0:17)
                    Bekannter Fehler! (von Dietmar - 8.07.2007 20:18)