Board und Software verbinden (r232)
Hallo Community , nachdem ich nun das eine oder andere Problem gelöst bekommen habe und auch den Verdacht hege das anscheinend alles so funktioniert wie ich es mir vorstelle möchte ich nun das meine Software den Inhalt meiner ausgelesenen Daten an den Atmega sendet.
Mein System:
Visual Studio 2008 // Anfängerkenntnisse
Bascom // Anfängerkenntnisse
Atmega16 @ 16Mhz
Avrisp Mk2
max232
Ich habe nun soviel gesucht im Netz zu serial r232 register etc. aber ganz ehrlich gesagt verstanden habe ich es nicht! Irgendwie setzten alle Seiten ein Grundwissen in C#/c++ vorraus. Und genau hier bin ich nun und weiss nimmer weiter.
Ich habe einen Flugsimulator aus dem Shared Memory des Flugsimulators lese ich nun gewisse Daten aus. z.B.Lichter,Flaps,... und auch als Beispiel ob das Fahrwerk ein oder ausgefahren ist.
Beispiel:
Ist das Fahrwerk eingefahren ist der Wert = 0
Ist das Fahrwerk eingefahren ist der Wert = 1
Ausschnitt von c#
Code:
if ((data.lightBits3 & 0x10000) != 0)
{
txtNoseGear.Text = "1";
}
else
{
txtNoseGear.Text = "0";
}
if ((data.lightBits3 & 0x20000) != 0)
{
txtLeftGear.Text = "1";
}
else
{
txtLeftGear.Text = "0";
}
if ((data.lightBits3 & 0x40000) != 0)
{
txtRightGear.Text = "1";
}
else
{
txtRightGear.Text = "0";
}
if ((data.lightBits & 0x8000) != 0)
{
txtRefuelRDY.Text = "ON";
}
else
{
txtRefuelRDY.Text = "OFF";
}
if (data != null)//make sure we got something
{
//assign shared memory values to our text boxes so we can see
//what's in there!
txtFTIT.Text = data.ftit.ToString();
txtNozzle.Text = data.nozzlePos.ToString();
txtOil.Text = data.oilPressure.ToString();
txtRPM.Text = data.rpm.ToString();
//txtNoseGear.Text = data.gearPos.ToString();
//txtRefuelRDY.Text = data.lightBits.ToString()
}
else
{
txtFTIT.Text = "UNAVAILABLE";
txtNozzle.Text = "UNAVAILABLE";
txtOil.Text = "UNAVAILABLE";
txtRPM.Text = "UNAVAILABLE";
txtNoseGear.Text = "UNAVAILABLE";
txtRefuelRDY.Text = "UNAVAILABLE";
}
Wie man nun sehen kann habe ich viele Ausgaben.
NoseGear = 1 oder 0
LeftGear = 1 oder 0
RightGear = 1 oder 0
RefuelRDY = 1 oder 0
FTIT = Variaber Werte // Analoginstrument Info
Nozzle = Variaber Werte // Analoginstrument Info
Oil = Variaber Werte // Analoginstrument Info
RPM = Variaber Werte // Analoginstrument Info
Diese Werte möchte ich nun gern an meinen Atmega senden und z.B wenn das Gear ausgefahren ist das eine LED angeht und genau da weiss ich nichtmal einen Ansatz wie ich das machen soll. An dieser Stelle bin ich einfach überfordert.
Die Komunikation zwischen Mega und PC steht eine Verbindung mit Hterm ist möglich es kann zwischen den Geräten komuniziert werden. Ergo fehlt es mir in meiner Software eigentlich nur an einer Serialinplementierung und das zusammenfassen meiner Daten.
Auch hier weiss ich nicht wie sich das gestalten soll wenn ich mal fertig bin möchte ich alle meine aus Flugsimulator ausgelesenen Daten (bis zu 200 Datensätze) im 100ms Takt an den Mega senden und dieser soll das dann verarbeiten und meine Leds z.B. ein oder auschalten. Muss das alles als ein paket an den Mega gesendet werden oder alles in Einzelschritten hintereinander,... eigentlich habe ich tausende Fragen aber das würde den Rahmen sicherlich hier sprengen. Wie würdet Ihr das machen?
Ich wäre sehr über Hilfe dankbar.
Edit: Da es hier sicherlich keine Musterlösung geben wird denke ich darüber nach, ob mir jemand meine Software um diese Serialgeschichte programmiern könnte (Mir ist bewusst das es nicht umsonst ist). Allerdings in diesem Bereich weiss ich nicht, was das kostet und ob sich jemand überhaupt dafür findet. :/ am Ende muss auch ich das ja ein Bischen verstehen was passiert damit ich an meinem Projekt weiterarbeiten kann.