Raketenmodellbau.org Portal > Forum > Raketen Technik > Nutzlasten & Bergungssysteme > C-Control Pro Mega 32
Du kannst keine neue Antwort schreiben


Autor Thema 
Andreas Jörg

Raketenbauer

Registriert seit: Sep 2005

Wohnort: Apfeltrach (Unterallgäu)

Verein: agm, T2

Beiträge: 186

Status: Offline

Beitrag 6726991 , C-Control Pro Mega 32 [Alter Beitrag04. Februar 2008 um 15:06]

[Melden] Profil von Andreas Jörg anzeigen    Andreas Jörg eine private Nachricht schicken   Andreas Jörg besitzt keine Homepage    Mehr Beiträge von Andreas Jörg finden

Hi,
als Datenlogger für Experimente in Raketen möchte ich eine C-Control Mega 32 verwenden. Ich habe mir das wie folgt vorgestellt: In der Rakete fliegt nur diese Einheit und die Spannungsversorgung mit. Ist die Rakete wieder gelandet, werden alle Pins, außer die Spannungsversorgung und die Messeingänge mit dem Application Board über ein Flachbandkabel, das in eine IC Fassung gelötet ist verbunden. Von diesem Board aus werden dann die Daten über die serielle Schnittstelle ausgelesen. Nun bin ich gerade dabei, ein Programm mit Delphi zu schreiben, das die serielle Schnittstelle ausliest, und die Datein im .csv Format speichert. Letzteres dürfte ich hinbekommen, aber ich weiß nicht, wie man die serielle Schnittstelle ausliest, und 2h googlen brachten auch kein Ergebnis, das für mich verständlich wäre. Die C-Control habe ich wie folgt programmiert, wobei ich den Teil, in dem die Daten gesendet werden von hier übernommen habe.
Dim Daten (1000,3) as Word
Dim a, b as Integer
Dim ADC0_Str(5) As Char
Dim ADC1_Str(5) As Char
Dim ADC2_Str(5) As Char
'ADC über GetAdc auslesen
Sub main()
a= 2
Daten (1, 1)= 0
For 1 = 2 To 1000
Daten (a,1)= Timer_TickCount()+ Daten (a - 1, 1) 'Zeitpunkt der Datenaufzeichnung
Daten (a,2)= GetAdc(1) 'erster Kanal
Daten (a,3)= GetAdc(2) 'zweiter Kanal
AbsDelay(15)
Next
Dim CRC As Byte

'RS232
'10 byte Sende + Empfungspuffer + 6 byte interne FIFO Verwaltung
Dim buffer(46) As Byte ' Array deklariert
Dim StartStr(10) As Char

'RS232
'Init RS232: 19200 bps, 8 Bit, 1 Stop, NP
Serial_Init_IRQ(0,buffer,10,30,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD19200)


For b = 2 To 1000
'Serial_WriteText(byte serport,char text,word offset,byte minwidth)
Str_WriteWord(Daten (b,1),10,ADC0_Str,0,4)
Str_WriteWord(Daten(b,2),10,ADC1_Str,0,4)
Str_WriteWord(Daten(b,3),10,ADC2_Str,0,4)
StartStr = ","
Serial_WriteText(0,ADC0_Str)
Serial_WriteText(0,StartStr)

Serial_WriteText(0,ADC1_Str)
Serial_WriteText(0,StartStr)

Serial_WriteText(0,ADC2_Str)
Serial_WriteText(0,StartStr)

Serial_WriteText(0,ADC3_Str)
Serial_WriteText(0,StartStr)

CRC = ADC_0 Xor ADC_1 Xor ADC_2 Xor ADC_3
Str_WriteWord(CRC,10,StartStr,0,3)

Serial_WriteText(0,StartStr)

AbsDelay(2) '0.5Sek/Div

Next

End Sub
Sub GetAdc(Channel As Byte) As Word
ADC_Set(ADC_VREF_VCC,Channel)
Return ADC_Read()
End Sub

Ich würde mich freuen, wenn mir jemand weiterhelfen könnte.

Es ist so wie es ist, denn wenn es nicht so wäre, könnten wir nicht Fragen, warum es so ist, wie es ist.
Peter

alias James "Pond"


Moderator

Peter

Registriert seit: Sep 2000

Wohnort: D-84034 Landshut

Verein: Solaris-RMB

Beiträge: 2235

Status: Offline

Beitrag 6727905 [Alter Beitrag04. Februar 2008 um 19:33]

[Melden] Profil von Peter anzeigen    Peter eine private Nachricht schicken   Besuche Peter's Homepage    Mehr Beiträge von Peter finden

Hab nicht ganz verstanden, wo genau Dein Problem liegt:

a) Bei der Ausgabe der in C-Control gespeicherten Daten an die serielle Schnittstelle, oder
b) In Delphi beim Empfang dieser Daten?

Ich habe vor etlichen Jahren mal einen Bordcomputer auf C-Control Basis gebaut (M-Unit), das Auslesen der seriellen Daten war da fast mit das einfachste.
Andreas Jörg

Raketenbauer

Registriert seit: Sep 2005

Wohnort: Apfeltrach (Unterallgäu)

Verein: agm, T2

Beiträge: 186

Status: Offline

Beitrag 6727906 [Alter Beitrag04. Februar 2008 um 19:57]

[Melden] Profil von Andreas Jörg anzeigen    Andreas Jörg eine private Nachricht schicken   Andreas Jörg besitzt keine Homepage    Mehr Beiträge von Andreas Jörg finden

Hallo Peter,
mir geht es um das Auslesen der Daten mit Delphi.

Es ist so wie es ist, denn wenn es nicht so wäre, könnten wir nicht Fragen, warum es so ist, wie es ist.
Peter

alias James "Pond"


Moderator

Peter

Registriert seit: Sep 2000

Wohnort: D-84034 Landshut

Verein: Solaris-RMB

Beiträge: 2235

Status: Offline

Beitrag 6727913 [Alter Beitrag04. Februar 2008 um 21:30]

[Melden] Profil von Peter anzeigen    Peter eine private Nachricht schicken   Besuche Peter's Homepage    Mehr Beiträge von Peter finden

Zitat:
Original geschrieben von Andreas Jörg
mir geht es um das Auslesen der Daten mit Delphi.

Hab ich fast befürchtet. In VB6 wird das gut unterstützt, aber Delphi hab ich noch nie verwendet.
Scorpion_XIII

Poseidon

Scorpion_XIII

Registriert seit: Jun 2005

Wohnort:

Verein:

Beiträge: 1154

Status: Offline

Beitrag 6727915 [Alter Beitrag04. Februar 2008 um 23:39]

[Melden] Profil von Scorpion_XIII anzeigen    Scorpion_XIII eine private Nachricht schicken   Besuche Scorpion_XIII's Homepage    Mehr Beiträge von Scorpion_XIII finden

Hallo,

unter Delphi Daten zu empfangen geht eigentlich recht "einfach" wink
Anstatt die ganzen Kommunikationsroutinen selbst zu schreiben, benutze ich eine Komponente die das für mich macht. Funktioniert super!
Nennt sich SerialNG auf http://www.domis.de

Gruß
Scorpion_XIII

t(h)rust in GARDENA
Andreas Jörg

Raketenbauer

Registriert seit: Sep 2005

Wohnort: Apfeltrach (Unterallgäu)

Verein: agm, T2

Beiträge: 186

Status: Offline

Beitrag 6728913 [Alter Beitrag06. Februar 2008 um 14:24]

[Melden] Profil von Andreas Jörg anzeigen    Andreas Jörg eine private Nachricht schicken   Andreas Jörg besitzt keine Homepage    Mehr Beiträge von Andreas Jörg finden

Hallo Scorpion,
Danke für den Tipp, ich habe es mir mal heruntergeladen! Leider kommen bei mir wenn ich den Quellcode unter Delphi 6 öffne viele Fehlermeldungen, liegt aber an meinem Delphi, ist nämlich bei sehr vielen Dateien der Fall.
Wie hast du deine Empfangssoftware, bzw. Sendesoftware gelöst? Nach welchem Muster sendest du die Werte, wie speicherst du sie oder stellst sie dar?

Es ist so wie es ist, denn wenn es nicht so wäre, könnten wir nicht Fragen, warum es so ist, wie es ist.
Scorpion_XIII

Poseidon

Scorpion_XIII

Registriert seit: Jun 2005

Wohnort:

Verein:

Beiträge: 1154

Status: Offline

Beitrag 6728929 [Alter Beitrag06. Februar 2008 um 17:36]

[Melden] Profil von Scorpion_XIII anzeigen    Scorpion_XIII eine private Nachricht schicken   Besuche Scorpion_XIII's Homepage    Mehr Beiträge von Scorpion_XIII finden

Hi,

generell mache ich die Kommunikation so, dass nach jedem Wert ein Sonderzeichen oä. gesendet wird und am Ende des Datensatzes kommt ein anderes Zeichen als Endmarke.
Im (Delphi)Programm kann man dann z.B. immer abfragen ob was kommt (ist glaube ich ein String) und verarbeitet dann die Daten indem man sie in ein Array, eine Tabelle, eine externe Datei... speichert.
So habe ich z.B. die Software für den Tischkicker realisiert wink

Bei der Messbox gehe ich einen noch einfacheren Weg, da war ich zu faul ein extra Programm zu schreiben.
Der Atmel sendet die Werte nacheinander (jeder Wert in neuer Zeile). Und im Hyperterminal von Windows speichere ich das als Textfile ab. Excel kann dann super die Werte importieren und tata smile schon hab ich eine Kurve.

t(h)rust in GARDENA
Andreas Jörg

Raketenbauer

Registriert seit: Sep 2005

Wohnort: Apfeltrach (Unterallgäu)

Verein: agm, T2

Beiträge: 186

Status: Offline

Beitrag 6728942 [Alter Beitrag06. Februar 2008 um 21:04]

[Melden] Profil von Andreas Jörg anzeigen    Andreas Jörg eine private Nachricht schicken   Andreas Jörg besitzt keine Homepage    Mehr Beiträge von Andreas Jörg finden

Danke, Danke, Danke! Hyperterminal, das ist es! Ansonsten war ich grad dabei mir ein Visual Basic Programm zu schreiben, in VB ist das nämlich in der Tat relativ einfach gelöst.

Es ist so wie es ist, denn wenn es nicht so wäre, könnten wir nicht Fragen, warum es so ist, wie es ist.
Neil

99.9% harmless nerd


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 6728951 [Alter Beitrag07. Februar 2008 um 07:25]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

Zitat:
Bei der Messbox gehe ich einen noch einfacheren Weg, da war ich zu faul ein extra Programm zu schreiben.



Bei dem ATMEL habe ich so die komplette Steuerung und Datenspeicherung realisiert. Das klappt sehr gut. Man hat dann in der Datei ein komplettes Protokol der Messung. Auch mit dem was man selber getippt hat.
Zumindest kann man mit HT kontrollieren was gesendet wird. Ich tendiere daher auch dazu im Klartext zu senden anstatt Byte koddiert. Ist besser verständlich, hat aber mehr Datenrate zur Folge.

Gruß

Neil

Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu.


[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben